BTCでトラリピEAを動かしてみたいPart3【潤奈FX日記】

FX日記

さて、前回の記事では買いポジションを握りしめて下落に耐えているバックテストの結果で終わっていました( ・Д・)

これについて何故そのようになっているのかと、解決方法を確認して行きましょう。

↓以前の記事はこちら
BTCでトラリピEAを動かしてみたいPart1
BTCでトラリピEAを動かしてみたいPart2

前回の設定したTPとSLのプログラムを見返します。

赤枠部分に注目します。

TPは、エントリー価格からパラメーター設定のtakeprofit値だけ上にTP値を設定。

SLは、エントリー価格からパラメーター設定のstoploss値だけ下にSL値を設定していますね。

※売りポジションについては符号を逆で設定しています。

この注文変更はエントリーした足の、次の足で動作する条件を黄色マーカー部分で記述しています。

ただこの場合、次の足が出現した時点でパラメーター設定しているtakeprofit値とstoploss値を超える価格変動が発生した時、

TPとSLの注文変更が通らないという事になります。

これが以下のグラフの緑線の有効証拠金が下に大きく下がっている部分に表れています。

つまりエントリーした後の足でSLを設定しようとしたけど、設定するはずのSL値より価格が下落している為、

結局SLを設定出来ずに利確するまでor価格が戻ってくるまでポジションを持ち続けているという結果になっています。

それは凄く怖いですよね。。。

という事で以下のようにプログラムを変更しました。

上の赤枠(買いポジション)の説明です。(下の枠は符号が違うぐらいです)

まずTPにエントリー価格へtakeprofit値を足した価格を代入します。

前準備としてj変数をint型で宣言し、2を代入します。

次にwhileループ処理を使用します。

これはwhile(式)の式が正しい(true)であれば、その式が正しくない(false)になるまで処理を繰り返す文です。

つまり、そのTP値より現在の売値(Bid)が上にある場合、TP値が現在の売値より上になるまで中の式を繰り返し処理をする事になります。

では中の式を見てみましょう。

TP値にエントリー価格へtakeprofit値を足していますが、takeprofit値にjを掛けています。

前準備としてjには2を代入していますので、takeprofit値の2倍した値を足す事になります。

次の為にj変数に+1をして3にしておきます。(これは上の場所にあった方が自然だったかな?・・・)

そしてそのTP値が現在の売値(Bid)を超えていなかった場合、

次はtakeprofit値を3倍にしてTP値を求めて、現在の売値(Bid)を超えるまでを繰り返します。

SLも同様の仕組みになっています。

これでTPとSLが設定されないという問題は解決されたと思います。

バックテストした結果がこちらです!

ちゃんとSLが設定される為にガタガタのグラフになっています。

そもそも次の足時点の価格からSL値を設定しているようなものなので、あって無いような気がしますがw

とりあえず前に進んでみましょう!

前進あるのみ!( ・Д・)ウォォォォォー

続く

↓次回記事

BTCでトラリピEAを動かしてみたいPart4【潤奈FX日記】
...

コメント

タイトルとURLをコピーしました