我嘗試在 rsi 如果 > 30 和 0 如果前一期如果 < 30 時采用 1 por 交易策略
data['rsi_compra'] = 1 if data.rsi > 30 & data.rsi.shift(periods = 1) < 30 else 0
提出這個錯誤
無法使用 dtyped [float64] 陣列和 [bool] 型別的標量執行“rand_”
uj5u.com熱心網友回復:
如果你只是想這樣做,如果 >30 是 1 one <30 as 0
data['rsi_compra'] = (data.rsi > 30 ).astype(int)
如果你像你提到的那樣想要 peroid 試試這個
data['rsi_compra'] = ((data.rsi > 30) & (data.rsi.shift(periods=1) < 30)).astype(int)
uj5u.com熱心網友回復:
試試這個:
data['rsi_compra'] = ((data.rsi > 30) & (data.rsi.shift(periods=1) < 30)).map(int)
您應該記住,您使用的是熊貓系列而不是標量值,而 & 運算元適用于該系列中的單個專案,為此目的需要使用括號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/400551.html
上一篇:最佳實踐請求np.where()避免了np.where物件的雙重取消參考
下一篇:根據索引更改Numpy陣列中的值
