炒股:上证指数的破整模型

昨天看了股票大作手,里面说到当股价突破整数关口的时候,会上冲一次,今天突发奇想写了个脚本模拟下操作,我用通信达导出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

不过我人工试了试天齐锂业这个股票,结果亏了!!!!这个模型虽然胜率还行,但是并不靠谱,因为没有扣除手续费,人工盯盘的成本太高了,而且会滑点,手滑等等,看来投资真的很难呢!

你可能感兴趣的:(炒股:上证指数的破整模型)