初心者パックバックテスト

ここでは、バックテストのコードを分析する。

 

note.com

 

使えるリストはだいたいわかってきて

Python_基本操作1.ipynb

Python_基本操作2.ipynb

Python3_ライブラリの利用-datetime-.ipynb

ライブラリの利用-glob-.ipynb

numpy.ipynb

pandas.ipynb

 

でここでは以下を勉強する。

python_analize_backtest.ipynb

 

df = pd.read_csv("Data/60min_Bybit_BTCUSD_2021-12-01 to 2022-01-29.csv", parse_dates=["open_time"])

このデータを使うので、

elif "open_time" in df.columns:
        timestamp = df.open_time.values

を追加

最近できたRSIのコードを追加。

def make_RSI(df, span=14):
    df["diff"] = df["close"].diff() # 価格の変化幅を計算
    up, down = df["diff"].copy(), df["diff"].copy()
    up[up < 0] = 0
    down[down > 0] = 0
    A = up.rolling(span, center=False).mean()         # 上昇幅
    B = down.abs().rolling(span, center=False).mean() # 下落幅
    RS = A / B
    RSI = 100 - (100/(1 + RS))
    df[f"rsi_{span}"] = RSI
    return df

でバックテスト。

f:id:motiofx:20220409152357p:plain

まあ上に向くようになった。

 

【課題】パラメータを変えてfor文を回すようにした場合どうなるでしょうか。

 

。。。んううむ

まあRSIの数字を1から変えてってそれぞれ結果を出せばいいんだよ。多分。

で一番成績のいいやつがわかれば。いいんだよ。 ??

 

ううむ、イベント参加でやはりこのコード理解しないと前に進まない気がしてきた。