昨天看了股票大作手,里面说到当股价突破整数关口的时候,会上冲一次,今天突发奇想写了个脚本模拟下操作,我用通信达导出12号-14号上证指数的分钟级数据,然后处理一下,开始模拟,以下是代码脚本
import pandas as pd
import math
df = pd.read_excel('数据.xlsx')
df2 = df.drop(df.tail(1).index)
df2 = df2.iloc[:,0:5]
df2 = df2.sort_values(by = df.columns[0],ascending=True)
list_test = df2.values.tolist()
zhuangtai = 0 #三种状态,第一种,未入场,第二种,入场未出场,状态变为记录止盈止损区间
person = 0
yinli_qujian = 40 #盈利区间
sunshi_qujian = 30 #损失区间
success = 0
fail = 0
for meta in list_test:
#破整点机会,入场
if zhuangtai == 0 and math.floor(meta[2]/100)*100-math.floor(meta[1]/100)*100 == 100 :
if meta[2] - math.floor(meta[2]/100)*100 >=yinli_qujian : #是否能盈利
person+=yinli_qujian
success+=1
print(str(meta[0])+'收入'+str(meta[2]))
elif math.floor(meta[2]/100)*100 - meta[3]>=sunshi_qujian: #没有盈利,只有两种情况,第2种未结束,第1种,已经止损,看最小值
person -= sunshi_qujian
fail += 1
print(str(meta[0]) + '损失'+str(meta[2]))
else:#未结束
zhuangtai = math.floor(meta[2]/100)*100
print(meta[0]+"入场未出场")
elif zhuangtai !=0 :
if meta[2] - zhuangtai >=yinli_qujian : #是否能盈利
person+=yinli_qujian
success += 1
print(str(meta[0])+" _标记" +str(meta[2])+" ;debug:"+str(zhuangtai)+ ' ;收入+初始化'+str(meta[2]))
zhuangtai=0
elif zhuangtai - meta[3]>=sunshi_qujian: #是否止损
person -= sunshi_qujian
fail += 1
print(str(meta[0]) + '损失+初始化'+str(meta[2]))
zhuangtai = 0
else:#未结束
zhuangtai = math.floor(meta[2]/100)*100
print("最终收益为"+str(person*10))
print("成功"+str(success))
print("失败"+str(fail))
print('胜率'+str(success/(success+fail)))
运行结果:
image.png
不过我人工试了试天齐锂业这个股票,结果亏了!!!!这个模型虽然胜率还行,但是并不靠谱,因为没有扣除手续费,人工盯盘的成本太高了,而且会滑点,手滑等等,看来投资真的很难呢!
网友评论