手動エントリー、自動でナンピン及び利確

2024/10/04 12:43
310

手動で入ったら自動でナンピンしてくれるかつ、利益が出たら決済してくれるEAを作りたいです。

200ポイントごとにナンピン、倍率は1.5倍。
ナンピン3回目の時は最新のポジから400ポイントで利確。
ナンピン6回目の時は最新のポジから550ポイントで利確のように設定したいです。

手動でエントリー、自動でナンピン、ある程度の利益が出たらオール決済できるEAをできたらなと思います。

コメント

GogoJungle
2024/10/06 20:40

マジックナンバーを0にすることで、決済用EAの作成が可能でございます。
こちらの記事が参考になることと存じます。
https://www.gogojungle.co.jp/finance/navi/articles/71322

ナンピンにつきましては、通常の「オプション」でご設定いただけます。
ナンピンの回数によって利確の条件を変化させるには、取引条件の「ポジション数」をご利用いただくことで実現可能であると考えられます。

kazusa
2024/10/11 22:13

回答ありがとうございます。

仮にナンピン1回目は10PIPS、2回目は18PIPS。3回目は20PIPSで利確をしたい場合は
取引条件で「ポジション1」で条件を設定。
ナンピン2回目の利確を設定するには「ポジション2」で条件を設定していくという流れでよろしいでしょうか?

20PIPS間隔で13回ナンピンした後に13回目のナンピンから20PIPS逆行したら損切を入れたい場合の設定はどうすべきですか?

また、最新のナンピンポジションから○○PIPSで利確という条件を加えたい場合は条件設定でどういう選択指定すればよろしいでしょうか?

GogoJungle
2024/10/15 18:46

買いポジションのみを持つ場合を例にご説明いたします。
全て「ポジション1」にてご設定いただきます。

全体像

赤枠で囲った部分が「ナンピン1回目は10pips、2回目は18pips、3回目は20pipsで利確」
緑枠で囲った部分が「13回目のナンピンから20pips逆行で損切」
青枠で囲った部分が「最新のナンピンポジションから○○(例として50)pipsで利確」
の条件となっています。

LABO_1948_1.png

「ナンピン1回目は10pips、2回目は18pips、3回目は20pipsで利確」

・ポジション数 = 1 かつ 損益 > 10pips ⇒ 決済(条件1, 条件2)
・ポジション数 = 2 かつ 損益 > 18pips ⇒ 決済(条件3, 条件4)
・ポジション数 = 3 かつ 損益 > 20pips ⇒ 決済(条件5, 条件6)

となります。条件1,2の詳細は下記の画像の通りです。
条件3~6につきましては、条件1,2をご設定後に「複製」し、数値をご変更ください。

LABO_1948_2.png
LABO_1948_3.png

「13回目のナンピンから20pips逆行で損切」

・ポジション数 ≧ 13 かつ 現在の価格+20 < 最終エントリー足の価格 ⇒ 決済(条件7, 条件8)

とします。※13を超えるポジションを持つと、「13回目のナンピンから」という条件が無視され、「最後のエントリーから」となる点、ご注意ください。

条件7,8の詳細は下記の画像の通りです。

LABO_1948_4.png
LABO_1948_5.png

「最新のナンピンポジションから○○(例として50)pipsで利確」

・現在の価格-50 > 最終エントリー足の価格 ⇒ 決済(条件9)

とします。条件9の詳細は下記の画像の通りです。

LABO_1948_6.png

以上となります。
ご参考になりましたら幸いでございます。

kazusa
2024/10/16 17:16

dfa7efbecedee789a0f4478b9c3e6f2b.png
dbb5579b8848732a0f111c8862e1ae26.png
int signal = 0;
double lots = Lots;
double take_profit = TakeProfit;
double stop_loss = StopLoss;
Trade = true;

if(isNanpin == true) NanpinLogic(NanpinCount, NanpinCustom, NanpinLots, NanpinInterval, NanpinMult, NanpinTP, NanpinSL, NanpinAdd, NanpinMax, magic_array);

if(Trade == false) return;
lots = Lots;
take_profit = TakeProfit;
stop_loss = StopLoss;
signal = 0;
if( == Number_value_1_1_2
&& > Number_value_1_2_2) signal = 1;
if(signal != 0 && getOpenLots(Magic1, OP_BUY) != 0) {
closePosition(Magic1, OP_BUY);
}
lots = Lots;
take_profit = TakeProfit;
stop_loss = StopLoss;
signal = 0;
if( == Number_value_1_3_2
&& > Number_value_1_4_2) signal = -1;
if(signal != 0 && getOpenLots(Magic1, OP_SELL) != 0) {
closePosition(Magic1, OP_SELL);
}

こちらコードの一部抜粋です。
エラーがこのように表示されます。
’ - operand expected GOLDorder.mq4 239 9
‘>’ - operand expected GOLDorder.m
'
’ - operand expected GOLDorder.mq4 248 9
‘>’ - operand expected GOLDorder.mq4 249 10

手動で買いや売りをやったときにそこから自動でナンピンのみを行うように作りましたが、コンパイルしてもエラーが起きてしまいます。
どこの設定を間違っていますでしょうか?
 
845a227e76e374ab9d8d3f90b599ade0.png
e0305581d4093b4f32fa5c81bc8ea955.png
9388e93b84a9365ded2fae5dba91cbb0.png
dfcb29d2c56c08b6f7b51d99db8b30c4.png

GogoJungle
2024/10/16 17:56

大変失礼いたしました。
前回の回答では「ポジション」の欄が「0」となっておりましたが、正しくは「1」をご入力ください。

LABO_1948_7.png

「0」とご設定いただくのは、MT4の「パラメーターの入力」タブにおけるマジックナンバーでございました。

LABO_1948_8.png

お手数おかけしお詫び申し上げます。

kazusa
2024/10/16 20:42

c2db1bb5dfa4536f8234c1e53d942504.png

添削ありがとうございます。
教えて頂きました通り、設定の方が完了しコンパイルも無事にとおったのですがEAを稼働させても
自動で決済をすることが出来なかったです。

マジックナンバーは0にしているので問題ないとは思うのですが、修正点などはございますでしょうか。

また、パラメータ入力欄の2行目に「Lots」がございますがここの設定が「0.1」ならば必ずエントリーする時は0.1にしなければならないのでしょうか?
それとも、最初のロットに対してナンピンが自動に課されていきますか?
念のため、パラメータ通りに手動でエントリー。パラメータ設定した以外の数値でもエントリーしましたがどちらも反応がなかったです。

GogoJungle
2024/10/17 18:04

デモ取引にて、条件を簡単にした状態ので実験をお願いいたします。

例えば、決済の条件として

「ポジション数 >= 2 かつ 損益 > 10pips ⇒ 決済」
「ポジション数 >= 2 かつ 損益 < -10pips ⇒ 決済」

の2つのみをご設定いただいた場合、ポジションを2つ以上持った状態かつ損益の絶対値が10pipsを超えた場合に決済されますでしょうか?
(実験を効率的に行うため、「エントリー間隔」を狭くするとよいでしょう。)

これが正常に動作する場合は、同じ方法で条件を増やしていけば上手くできることと存じます。
正常に動作しなかった場合は、ご入力状況がわかるスクリーンショットをいただければアドバイスいたします。

パラメータ入力欄の2行目の「Lots」につきまして、この値通りに初回のエントリーを行っていただく必要はございません。こちらはあくまでEA自体にエントリーするロジックが組み込まれている場合に利用する値ですので、手動のみでエントリーする場合は動作に関係のない変数となります。

kazusa
2024/10/17 23:58

オプションで「全決済マジックナンバー0」「ナンピン」機能の両方を搭載するとナンピンがされなくなります。
「全決済マジックナンバー1,2,3,4」等に修正すると、ナンピンが機能しました。
全決済はマジックナンバー0にするのは適正ではないのでしょうか?
以下からはマジックナンバー1,2,3,4と指定した状態で進めさせていただきます。

取引条件を先ほどご教授して頂いた通りに条件1.2を設定したらナンピンは機能しますが決済がされません。
また、ここから条件3.4を設定するとナンピンも機能しなくなります。

GogoJungle
2024/10/18 16:24

詳細なご説明、誠にありがとうございます。

同じくkazusa様からのご質問ですが、こちら
https://labo.gogojungle.co.jp/articles/1951?comment=4818
にて回答させていただいた通り、マジックナンバーが0の場合は全決済オプションが使用できないことが判明いたしました。

全決済オプションを利用しない形でのご作成をお試しいただければ幸いです。

kazusa
2024/10/19 20:36

全決済オプションを利用せずに上手く実現させるためにはどういう条件を加えればよろしいでしょうか?

GogoJungle
2024/10/21 20:57

買い・売り両方の決済について、同一の条件をご設定いただくことで実現いたします。
例えば、

ポジション数 = 1 かつ 損益 > 10pips ⇒ 買いポジション決済
ポジション数 = 1 かつ 損益 > 10pips ⇒ 売りポジション決済

のように、「⇒」の先以外の条件が全く同じ命令文を買い・売り両方に対して準備することで、全決済が行われたのと同じ動作をさせることが可能となります。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。