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()

##金叉死叉法二
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 @ 2024-05-07 17:16  MinyX  阅读(3)  评论(0编辑  收藏  举报