注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

且行且记录

点滴记录,行的更远!

 
 
 

日志

 
 

股票交易py脚本v0.2  

2016-03-10 10:59:14|  分类: 股票 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
这个脚本比较简单,去年做的,今天小修改增加时间处理,之前不会py的时间怎么用,拼凑了几个函数,终于完成。
功能很简单,实时获取股票价格,当满足赢利3%卖出,满足-3%买入,做日内T+0交易。
作为交易软件的外挂辅助判断条件。只能交易一个股票,条件只能定死。之后版本考虑多股票交易。

#trade.py
#!/usr/bin/env python
# -*- coding:gb2312 -*-
# hcper@2016.3.10 v0.2 增加时间处理
import os
import sys
import time
import datetime
import random
import urllib.request

htdir = 'c:\\temp\\huatai\\'

# 成本价及数量
#######['s_s*??????', 代码, 成本, 可卖, 可买]
stks = ['s_s*??????', '??????', 0.00, 0, 0]  #stks[4]保存再买入数量

#有可用先卖后买+/-3%
def trade(code, price):
if code == stks[1]:
if stks[3] > 0 and price > round(stks[2]*1.03, 2):
#dosell
cmd = htdir + 'sell '+ stks[1] + ' ' + repr(round(price-0.05, 2)) + ' ' + repr(stks[3])
print(cmd)
os.system(cmd)
stks[4] += stks[3] 
stks[3] = 0
if stks[4] > 0 and price < round(stks[2]*0.97, 2):
#dobuy
cmd = htdir + 'buy '+ stks[1] + ' ' + repr(round(price+0.05, 2)) + ' ' + repr(stks[4])
print(cmd)
os.system(cmd)
stks[4] = 0

if len(sys.argv) < 5:
print('help:\ttrade.py code price ksnum kbnum')
print('help:\ttrade.py 002100 10.18 1500 0')
print('交易股票002100,成本10.18,可卖1500,可买0,按3%卖,-3%买')
sys.exit(0)

x = sys.argv[1]
if x[0]=='0' or  x[0]=='3':
stks[0] = 's_sz' + x
elif x[0]=='6':
stks[0] = 's_sh' + x

stks[1] = sys.argv[1]
stks[2] = float(sys.argv[2])
stks[3] = int(sys.argv[3])
stks[4] = int(sys.argv[4])

d = datetime.datetime.now()
print(d)
str_today = d.strftime("%Y-%m-%d")
tsk = time.strptime(str_today + ' 09:30:00', '%Y-%m-%d %H:%M:%S') #上午开始
tst = time.strptime(str_today + ' 11:30:00', '%Y-%m-%d %H:%M:%S') #上午停止
txk = time.strptime(str_today + ' 13:00:00', '%Y-%m-%d %H:%M:%S') #下午开始
txt = time.strptime(str_today + ' 15:00:00', '%Y-%m-%d %H:%M:%S') #下午停止

nsk = time.mktime(tsk)
nst = time.mktime(tst)
nxk = time.mktime(txk)
nxt = time.mktime(txt)

while True:
now = time.time()
if now > nxt:
print('[-] 交易时间已过!')
sys.exit(0)

if now < nsk:
print('[*] 时间未到正在等待...')
time.sleep(nsk - now + 5)

if now > nst and now < nxk:
print('[*] 中午休市正在等待...')
time.sleep(nxk - now + 5)

try:
print('代码','当前','名称',sep='\t')
r = repr(random.random())
f = urllib.request.urlopen('http://qt.gtimg.cn/r='+r+'&q='+stks[0])
t = f.read()
t = t.decode('gb2312')
ss = t.split(';')
for ent in ss[:1]:
s = ent.split('~')
if len(s) < 3: break
print(s[2], s[3], s[1], sep='\t')
if float(s[3])==0.0:
print('[-] ERROR! 状态:停牌')
sys.exit(0)
trade(s[2], float(s[3]))
f.close()

time.sleep(5+5*random.random())
except KeyboardInterrupt:
print('终止查询')
break

  评论这张
 
阅读(19)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017