タイトルが入力されていません。
コンテンツがありません。
There have no category
There have no subcategory
複利機能を3万で0.01ロット毎上がるコードを教えてほしいです。 また、パラメーター設定で金額を自由にいじれると尚うれしいです!
証拠金の増減に対してロット数を変更するという解釈でよろしいでしょうか?
「証拠金1万に対して0.01ロット」の場合はこちらのQAにおいてN=1としたものです。(詳しい原理の説明についてはこちらをご参照ください。)
金額の部分を自由にいじれるようにということで、そのパラメータをEquityとして作成してみます。
Equity
【修正前】
input int Magic1 = 1;
【修正後】
input int Magic1 = 1; input int Equity = 30000;
if(openPosition(signal, lots, take_profit, stop_loss, Magic1)) { bars1 = Bars; }
lots = AccountEquity() / (100 * Equity); // この行を追加 if(openPosition(signal, lots, take_profit, stop_loss, Magic1)) { bars1 = Bars; }
以上でございます。 参考になりましたら幸いです。
お世話になります。こちらですが、3万円で複利設定しても4万や5万円でも0.02ロットになります。おそらく初期ロットが邪魔しているのかなとは思います。可能であれば、3万0.01ロット6万0.02としたいです。パラメーターで変更できるのは変わらず修正案あれば宜しくお願い致します。
ロット数の計算値に0.01未満の端数が出た場合に、それを切り捨てる方法で実現します。 ただし、30000円未満の場合にロット数が「0」とならないように、最低値を0.01とする必要がありますね。
前回の回答の「lotsを更新する処理の追加」で修正する行を、次のコードに置き換えてお試しいただければと存じます。
lots = MathMax(0.01, MathFloor(AccountEquity() / (100 * Equity) * 100) / 100);
‘Equity’ - undeclared identifier こちらのエラーが出てしまいます
解決いたしました!
コメント文がありません。
証拠金の増減に対してロット数を変更するという解釈でよろしいでしょうか?
「証拠金1万に対して0.01ロット」の場合はこちらのQAにおいてN=1としたものです。(詳しい原理の説明についてはこちらをご参照ください。)
金額の部分を自由にいじれるようにということで、そのパラメータを
変数の定義Equity
として作成してみます。【修正前】
【修正後】
lotsを更新する処理の追加【修正前】
【修正後】
以上でございます。
参考になりましたら幸いです。
お世話になります。こちらですが、3万円で複利設定しても4万や5万円でも0.02ロットになります。おそらく初期ロットが邪魔しているのかなとは思います。可能であれば、3万0.01ロット6万0.02としたいです。パラメーターで変更できるのは変わらず修正案あれば宜しくお願い致します。
ロット数の計算値に0.01未満の端数が出た場合に、それを切り捨てる方法で実現します。
ただし、30000円未満の場合にロット数が「0」とならないように、最低値を0.01とする必要がありますね。
前回の回答の「lotsを更新する処理の追加」で修正する行を、次のコードに置き換えてお試しいただければと存じます。
‘Equity’ - undeclared identifier こちらのエラーが出てしまいます
解決いたしました!