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)