複利リスクパーセントではなく、証拠金の増減に対して自動でLotを増減できるようにしたいのですが、その際のソースコードはどのようなものになるでしょうか?
MAXポジション数の設定は、[1~5]まで選択できるようにします。
ナンピン・マーチンゲールは無しのEAです。(MAXポジション数は5まで設定できますが、それぞれのポジションがナンピンEAのように関連して決済されることはありません。例えば、それぞれのポジションはTP:20pips、SL:100pipsのように決済されます。)
下記は、パラメータで、MAXポジション数を5と設定した時の、複利運用の際の証拠金の額とLotの対応表です。
合計MAXロットが0.05Lot(内訳:0.01Lot×5)→<1ポジ分のロットが0.01Lot>の時の<推奨証拠金は5万円>
合計MAXロットが0.1Lot(内訳:0.02Lot×5)→<1ポジ分のロットが0.02Lot>の時の<推奨証拠金は10万円>→なので、証拠金が10万円に届いたら、次に取るポジションは0.02Lotになるようにプログラミングする。
合計MAXロットが0.15Lot(内訳:0.03Lot×5)→<1ポジ分のロットが0.03Lot>の時の<推奨証拠金は15万円>→なので、証拠金が15万円に届いたら、次に取るポジションは0.03Lotになるようにプログラミングする。
合計MAXロットが0.2Lot(内訳:0.04Lot×5)→<1ポジ分のロットが0.04Lot>の時の<推奨証拠金は20万円>→なので、証拠金が20万円に届いたら、次に取るポジションは0.04Lotになるようにプログラミングする。
合計MAXロットが0.25Lot(内訳:0.05Lot×5)→<1ポジ分のロットが0.05Lot>の時の<推奨証拠金は25万円>→なので、証拠金が25万円に届いたら、次に取るポジションは0.05Lotになるようにプログラミングする。
合計MAXロットが0.3Lot(内訳:0.06Lot×5)→<1ポジ分のロットが0.06Lot>の時の<推奨証拠金は30万円>→なので、証拠金が30万円に届いたら、次に取るポジションは0.06Lotになるようにプログラミングする。
合計MAXロットが0.35Lot(内訳:0.07Lot×5)→<1ポジ分のロットが0.07Lot>の時の<推奨証拠金は35万円>→なので、証拠金が35万円に届いたら、次に取るポジションは0.07Lotになるようにプログラミングする。
合計MAXロットが0.4Lot(内訳:0.08Lot×5)→<1ポジ分のロットが0.08Lot>の時の<推奨証拠金は40万円>→なので、証拠金が40万円に届いたら、次に取るポジションは0.08Lotになるようにプログラミングする。
合計MAXロットが0.45Lot(内訳:0.09Lot×5)→<1ポジ分のロットが0.09Lot>の時の<推奨証拠金は45万円>→なので、証拠金が45万円に届いたら、次に取るポジションは0.09Lotになるようにプログラミングする。
合計MAXロットが0.5Lot(内訳:0.1Lot×5)→<1ポジ分のロットが0.1Lot>の時の<推奨証拠金は50万円>→なので、証拠金が50万円に届いたら、次に取るポジションは0.1Lotになるようにプログラミングする。
合計MAXロットが0.55Lot(内訳:0.11Lot×5)→<1ポジ分のロットが0.11Lot>の時の<推奨証拠金は55万円>→なので、証拠金が55万円に届いたら、次に取るポジションは0.11Lotになるようにプログラミングする。
合計MAXロットが0.6Lot(内訳:0.12Lot×5)→<1ポジ分のロットが0.12Lot>の時の<推奨証拠金は60万円>→なので、証拠金が60万円に届いたら、次に取るポジションは0.12Lotになるようにプログラミングする。
合計MAXロットが0.65Lot(内訳:0.13Lot×5)→<1ポジ分のロットが0.13Lot>の時の<推奨証拠金は65万円>→なので、証拠金が65万円に届いたら、次に取るポジションは0.13Lotになるようにプログラミングする。
合計MAXロットが0.7Lot(内訳:0.14Lot×5)→<1ポジ分のロットが0.14Lot>の時の<推奨証拠金は70万円>→なので、証拠金が70万円に届いたら、次に取るポジションは0.14Lotになるようにプログラミングする。
合計MAXロットが0.75Lot(内訳:0.15Lot×5)→<1ポジ分のロットが0.15Lot>の時の<推奨証拠金は75万円>→なので、証拠金が75万円に届いたら、次に取るポジションは0.15Lotになるようにプログラミングする。
合計MAXロットが0.8Lot(内訳:0.16Lot×5)→<1ポジ分のロットが0.16Lot>の時の<推奨証拠金は80万円>→なので、証拠金が80万円に届いたら、次に取るポジションは0.16Lotになるようにプログラミングする。
合計MAXロットが0.85Lot(内訳:0.17Lot×5)→<1ポジ分のロットが0.17Lot>の時の<推奨証拠金は85万円>→なので、証拠金が85万円に届いたら、次に取るポジションは0.17Lotになるようにプログラミングする。
合計MAXロットが0.9Lot(内訳:0.18Lot×5)→<1ポジ分のロットが0.18Lot>の時の<推奨証拠金は90万円>→なので、証拠金が90万円に届いたら、次に取るポジションは0.18Lotになるようにプログラミングする。
合計MAXロットが0.95Lot(内訳:0.19Lot×5)→<1ポジ分のロットが0.19Lot>の時の<推奨証拠金は95万円>→なので、証拠金が95万円に届いたら、次に取るポジションは0.19Lotになるようにプログラミングする。
合計MAXロットが1Lot(内訳:0.2Lot×5)→<1ポジ分のロットが0.2Lot>の時の<推奨証拠金は100万円>→なので、証拠金が100万円に届いたら、次に取るポジションは0.2Lotになるようにプログラミングする。
便宜上、ここから下は1ポジ分のロットを0.1Lot刻みにします。(ただし、実際はここから↓も、(複利運用設定でも、単利固定ロット設定でも)0.01ロット単位で設定される/できるようにする。)
合計MAXロットが1.5Lot(内訳:0.3Lot×5)→<1ポジ分のロットが0.3Lot>の時の<推奨証拠金は150万円>→なので、証拠金が150万円に届いたら、次に取るポジションは0.3Lotになるようにプログラミングする。
合計MAXロットが2Lot(内訳:0.4Lot×5)→<1ポジ分のロットが0.4Lot>の時の<推奨証拠金は200万円>→なので、証拠金が200万円に届いたら、次に取るポジションは0.4Lotになるようにプログラミングする。
合計MAXロットが2.5Lot(内訳:0.5Lot×5)→<1ポジ分のロットが0.5Lot>の時の<推奨証拠金は250万円>→なので、証拠金が250万円に届いたら、次に取るポジションは0.5Lotになるようにプログラミングする。
合計MAXロットが3Lot(内訳:0.6Lot×5)→<1ポジ分のロットが0.6Lot>の時の<推奨証拠金は300万円>→なので、証拠金が300万円に届いたら、次に取るポジションは0.6Lotになるようにプログラミングする。
合計MAXロットが3.5Lot(内訳:0.7Lot×5)→<1ポジ分のロットが0.7Lot>の時の<推奨証拠金は350万円>→なので、証拠金が350万円に届いたら、次に取るポジションは0.7Lotになるようにプログラミングする。
合計MAXロットが4Lot(内訳:0.8Lot×5)→<1ポジ分のロットが0.8Lot>の時の<推奨証拠金は400万円>→なので、証拠金が400万円に届いたら、次に取るポジションは0.8Lotになるようにプログラミングする。
合計MAXロットが4.5Lot(内訳:0.9Lot×5)→<1ポジ分のロットが0.9Lot>の時の<推奨証拠金は450万円>→なので、証拠金が450万円に届いたら、次に取るポジションは0.9Lotになるようにプログラミングする。
合計MAXロットが5Lot(内訳:1Lot×5)→<1ポジ分のロットが1Lot>の時の<推奨証拠金は500万円>→なので、証拠金が500万円に届いたら、次に取るポジションは1Lotになるようにプログラミングする。
パラメータで、MAXポジション数を3と設定した場合。
合計MAXロットが0.03Lot(内訳:0.01Lot×3)→<1ポジ分のロットが0.01Lot>の時の<推奨証拠金は3万円>
合計MAXロットが0.06Lot(内訳:0.02Lot×3)→<1ポジ分のロットが0.02Lot>の時の<推奨証拠金は6万円>→なので、証拠金が6万円に届いたら、次に取るポジションは0.02Lotになるようにプログラミングする。
以下は、MAXポジション数を5と設定した場合と同じ考え方です。
よろしくお願いいたします。
検索結果がありません。 |
検索結果がありません。 |
推奨証拠金をE
最大ポジション数をN
1ポジ分のロットをLとすると、
> 合計MAXロットが0.05Lot(内訳:0.01Lot×5)→<1ポジ分のロットが0.01Lot>の時の<推奨証拠金は5万円>
の関係から
すなわち
の関係が成立します。
有効証拠金は
AccountEquity()
という関数で取得できますので、Lをlots
, NをNumMaxPosition
という変数にすればとなり、このコードを利用してロットの更新ができます。
通常通りEAをご作成いただいた後、ソースコードを次のようにご修正ください。
変数の定義
最大ポジション数を表す変数
NumMaxPosition
を定義します。マジックナンバーの定義の下に、初期値を5として記載しておきます。
【修正前】
【修正後】
lotsを更新する処理の追加
全ての エントリーの直前に、前述のコードを追加します。
※下記では、例として
Magic1
に関する修正例を記載しています。【修正前】
【修正後】
以上でございます。
ご参考になりましたら幸いです。
ありがとうございました。