2024-05-07笔记

df['date'].shift(1)

###向下位移1格

df.resample("M").first()  

###每月的第一天(first),最后一天(last)

 

双均线:金叉(五日均线比三十日均线高,买入),死叉(五日均线比三十日均线低,卖出)

五日均线df['ma5']=df['close'].rolling(5).mean()

三十日均线df['m30']=df['close'].rolling(30).mean()

1
2
3
4
5
6
7
##金叉死叉法二
sr1=df1['ma5']>df1['ma30']   
sr2=df1['ma5']>df1['ma30']  
 
death_cross = df1[sr1 & sr2.shift(1)].index
gloden_cross = df1[-(sr1 | sr2.shift(1))].index
gloden_cross

 TTTTTFFFFFTTTTT            TTTTTFFFFFTTTTT

 FFFFFTTTTTFFFFF                     --------------->    FFFFFTTTTTFFFFF

复制代码
 1 first_money = 100000
 2 money = first_money
 3 hold = 0  #起始持股
 4 sr1 = pd.Series(1,index=gloden_cross)
 5 sr2 = pd.Series(0,index=death_cross)
 6 sr = sr1.append(sr2).sort_index()
 7 
 8 for i in range(0,len(sr)):
 9     price = df1['open'][sr.index[i]]
10     if sr.iloc[i] == 1:
11         #金叉
12         buy = (money // (100 * price))
13         hold += buy*100
14         money -= buy*100*price
15     else:
16         money += hold*price
17         hold = 0
18 price = df1['open'][-1]
19 now_money = hold * price + money
20 print(now_money - first_money)
复制代码

 

posted @   MinyX  阅读(5)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示