今回のアップデート(Ver4.0.0)で追加された機能で、条件式の途中やエントリー後に任意の値を保存し条件として使うことができる機能です。
この機能により、今まではTP、SL等も基本的な数値でしか設定できなかったのが、複雑な条件で組めるようになりました。
※今回のアプデにより前回(Ver3.0.0)で追加したフラッグ機能は削除しました。(同じことがカスタム変数でできるため)
カスタム変数の条件設定はOninitやOntickの最初に代入するパターンと、条件の間に代入する2種類があります。
まずOninitやOntickの最初に代入するパターンから説明していきます。
アプリを開いて右上にカスタム変数という枠があります。
ここをクリックするとカスタム変数の初期設定を行う画面が現れます。
こちらの初期設定でしか設定できないのは赤枠で囲った3つの部分です
名前の通りカスタム変数を何個用意するかを入力してください。
使わない場合は特に変更せず初期値のままで大丈夫です。
あまり多く増やしすぎるとコードが多少重くなる可能性があるので、必要な分だけ用意してください。
こちらにチェックを入れるとOninit(時間足の移動やEAを入れた時に動作)やOntick(毎ティックごとに動作)の最初にカスタム変数に値を代入することができます。
②の初期値代入ONOFFにチェックを入れると現れます。
こちらにチェックが入っているとOntickに、入っていないとOninitでカスタム変数を代入します。
Oninitで代入する場合は、特に変化が不要なもの。
Ontickで代入する場合は、毎ティックデータとして更新がるものを代入するのがオススメです。
ただ、使い方は多岐にわたるのでその時の自分がしてほしい動作に合わせて利用してください。
カスタム変数を条件の中で設定する場合は条件設定画面の一番下に赤枠のような箇所が追加されています。
これをONにするとカスタム変数代入内容というボタンが出てくるので、ここをクリックするとカスタム変数の編集画面が現れます。
基本的に初期設定画面と条件設定する画面は同じなので説明は省きます。
カスタム変数でのみ追加された条件がロットという選択肢です。
ここでは、「単利」、「複利」、「マーチン」、「モンテカルロ」の4種類があり、カスタム変数に代入することができます。
あまり使い道はないかもしれませんが、ある条件を満たしたらマーチン、それまでは単利、みたいなロジックを作ることができます。
カスタム変数の使い道の1つ目としては、画像のように比較条件の一部として使うことができます。
例えば、RSI>70になったらカスタム変数にtrueを代入してあげて、画像のようにカスタム変数がtrueになったら条件を通すみたいなことができます。
エントリー後にカスタム変数をfalseに戻してあげれば、前回のアプデにあったフラッグ処理と同じに当たります。
カスタム変数は何でも入れられるので、エントリー時の終値を保存しておいて、その値を使って決済処理の条件を作る見たいなことも可能です。
カスタム変数の使い道の2つ目としては、画像のようにTPやSLにカスタム変数を入れることができます。
今までは数値でしか入力できなかったのですが、今回のアプデで数値を入れる入力欄をクリックすると画像のようにカスタム変数の選択欄でます。
そこで使いたいカスタム変数をクリックすると、CustomVariables[〇]という配列名が入力されます。
カスタム変数を使う際は必ず選択欄をクリックして利用してください。
また、従来通り数値を入力したい場合は入力欄を選択後、数値を入力するとそのまま反映されます。
TPに過去100本の最高値を使いたい場合は、カスタム変数に過去100本の最高値をOntickで代入してあげて、TPでカスタム変数を選択することで変動するTPを作ったりすることができます。
カスタム変数に代入した際にそれまでの条件との関わりはどうなるのかを説明していきます。
まず青枠の部分は1つ目の条件をクリアした後に2つ目の条件をクリアすることでカスタム変数に値が代入されます。
コード上だとこの部分ですね。
ポジション数が1未満でRSI>70になったらカスタム変数1にtrueが入っています。
その後、カスタム変数がtrueならエントリーという条件になっています。
そのためカスタム変数を設定する条件よりも前の部分も、条件として含まれるの注意してください。
次に赤枠の部分はカスタム変数に代入する条件のみとなっています。
カスタム変数代入後の条件がないため、その場合はエントリーせずカスタム変数に代入だけして条件が終了します。
コードだとこの部分ですね。見ての通りエントリーに関する記載が何もありません。
カスタム変数に代入するだけの条件を組みたい場合は、列の一番最後の条件にカスタム変数を代入してください。
カスタム変数の説明に関しては以上です。
画像のように条件の一番下に条件式のコードが出るようにしました。
値の変化にリアルタイムで対応してくれるのでこの数値を変えると、ここが変わるのかなどコードの勉強にもなります。
ロットタイプを複数選択できるようにしました。
複数選択するとEAのパラメータ画面で切り替えられるようになり、単利と複利の使い分けなどができるようになりました。
配布などをする際はロットの選択ができるようになっているとユーザビリティが高まるのでオススメです。