[python]沪深龙虎榜数据导入通达信的自选板块并标注于k线图上

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[python]沪深龙虎榜数据导入通达信的自选板块,并标注于
K线图上
1 #coding=utf-8
2
3 #读取'[paint]'开头的csv文件
4 #copyright @ WangXinsheng
5 #/wangxinsheng/
6 import os
7 import struct
8 import time
9 import datetime
10
11 def getPRiceByte(infile,arg,code,ss,day):
12 dirc = {"-5":-3,"-3":-2,"-1":-
1,"1":1,"3":2,"5":3,"7":4,"9":5,"11":6}
13 first = 0
14 second = 0
15 a = float(arg)
16 for i in [-5,-3,-1,1,3,5,7,9,11]:
17 ib = i - 2
18 if(a>=2**ib and a<2**i):
19
#print(str(a)+":["+str(2**ib)+","+str(2**i)+"]"+"i:"+str(i)+" ib:"+str(ib))
20 first = ib
21 break;
22 #print(first)
23 chushu = 2**first
24 if(arg >= chushu*2):
25 second = arg / chushu
26 #print(second)
27 second = int(second*64)
28 else:
29 second = arg / chushu -1
30 #print(second)
31 second = int(second*128)
32
33 if(first<0):
34 first = 64 + dirc[str(first)]
35 else:
36 first = 63 + dirc[str(first)]
37 '''
38 print(first)
39 print(second)
40 print(struct.pack('B',first))
41 print(struct.pack('B',second))
42 '''
43 #print(struct.pack('B',first))
44 #print(struct.pack('B',second))
45
46 infile.write(struct.pack('B',ss))
47 infile.write(code.encode())
48
infile.write(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00')
49 infile.write(b'\x03')
50 infile.write('STANDK'.encode())
51
infile.write(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00')
52 infile.write(b'\x04')
53 infile.write(b'\x00')
54 infile.write(b'\x1a\x10\x00\x00')
55 infile.write(struct.pack('i',int(day)))
56 infile.write(b'\x00\x00')
57 infile.write(struct.pack('B',second))
58 infile.write(struct.pack('B',first))
59
infile.write(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\xdcz3\x01\x01\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0
0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00')
60
61 print(str(code)+':已在'+day+"日,价格:
"+str(arg)+"加入标记")
62 #infile = open("tdxline.eld","rw")
63 #getPriceByte(5.55)
64 file = open("WXSline.eld","wb")
65 zxg = ''
66 path=r'.'
67 files = os.listdir(path)
68 files.sort()
69 j=0
70 for f in files:
71 if(f.startswith('[paint]') and f.endswith('.csv')):
72 print('读取文件:'+path+'/'+f)
73
74 f=open(path+'/'+f,'rt')
75 infos = f.readlines()
76 f.close()
77 i=0
78 for info in infos:
79 if(i==0):
80 i=i+1
81 continue
82 tmp = info.split(',')
83 if(len(tmp)<2):
84 continue
85 code =
str(tmp[1].replace('"','').replace("'",""))
86 if(code.startswith('6')):
87 ss = 1
88 else:
89 ss = 0
90 addzxg = ''
91 try:
92 zxg.index(str(ss)+code)
93 except:
94 addzxg = str(ss)+code+"\n"
95
96 if(addzxg!=''):
97 zxg = zxg + str(ss)+code+"\n"
98 if(len(tmp)<10):
99 continue
100
101 days = tmp[0].split('-')
102 if(len(days)<2):
103 days = tmp[0].split('/')
104
105 if(len(days)<2):
106 continue
107
108 if(len(days[1])<2):
109 days[1] = '0'+days[1]
110 if(len(days[2])<2):
111 days[2] = '0'+days[2]
112 day = days[0]+days[1]+days[2]
113 #print(day)
114
115 priceArr = tmp[9].replace('"','').split('%') 116 if(len(priceArr)<2):
117 continue
118 a =
float(priceArr[1].replace('[','').replace(']',''))*(1-float(priceArr[0].replace('%',''))/100)
119 a = round(a,2)
120 code =
str(tmp[1].replace('"','').replace("'",""))
121 if(code.startswith('6')):
122 ss = 1
123 else:
124 ss = 0
125
126 getPriceByte(file,a,code,ss,day) 127 '''
128 if(j>3):
129 break
130 else:
131 j=j+1
132 '''
133
134 fileA = open("WXS条件股.ebk","w")
135 fileA.write(zxg)
136 fileA.close()
137 file.close()
138 print('处理完了\n画图文件地址:./WXSline.eld') 139 print('\n板块文件地址:./WXS条件股.ebk')。

相关文档
最新文档