見出し画像

自動売買BOTの改良 その4

今回はATRを追加してみようと思います。

まずはMACDのパラメータを以下のように設定してください。
2月6日以降に購入された方はそのままで大丈夫です。

macd, macdsignal, macdhist = ta.MACD(cl, fastperiod=9, slowperiod=26, signalperiod=9)

以下のURLのTA-Libのドキュメントの中に

こういうとこがあると思います。
このVolatility Indicatorsというのをクリックしてください。

このような画面が出ると思います。
ここのATRのreal=以降の部分をコピーします。

real = ATR(high, low, close, timeperiod=14)

それをBOTのコードの以下の部分にペーストします。
さらにhigh, low, closeの部分を hi, lo, cl,に書き換えます。

macd, macdsignal, macdhist = ta.MACD(cl, fastperiod=9, slowperiod=26, signalperiod=9)
slowk, slowd = ta.STOCH(hi, lo, cl, fastk_period=14, slowk_period=3, slowk_matype=0, slowd_period=3, slowd_matype=0)
fastk, fastd = ta.STOCHF(hi, lo, cl, fastk_period=14, fastd_period=3, fastd_matype=0)
upperband, middleband, lowerband = ta.BBANDS(cl, timeperiod=21, nbdevup=2, nbdevdn=2, matype=0)
real = ta.ATR(hi, lo, cl, timeperiod=14)

以上のようになれば大丈夫です。

次は条件式を書き換えていきましょう。
ATRは値幅を使ったテクニカル指標ですのでATRの値が一定の値以下の値幅の時にエントリーするようにします。
今回はATRの値が10000以下の時にエントリーするようにします。

買いの条件式は以下。

if(macd[-2] > macdsignal[-2] and macd[-1] < macdsignal[-1] and real[-1] < 10000 and posi == "BUY"):

売りの条件式

if(macd[-2] < macdsignal[-2] and macd[-1] > macdsignal[-1] and real[-1] < 10000 and posi == "SELL"):

これでATR値幅が10000以下の時にだけMACDの条件式を実行するようになりました。

今回は以上です。

この記事が気に入ったらサポートをしてみませんか?