MT4のEAでの一括決済について。 はじめまして。MT4のEAにて、複数ポジションの…

MT4のEAでの一括決済について。

はじめまして。MT4のEAにて、複数ポジションのトータル利益がプラスの際に一括決済するロジックで行き詰まっております。

具体的には、複数のポジションを

立てている時に、トータルでの利益がプラスであれば、全決済したいのですが、たまたまオープンポジションの条件と重なり新規ポジションが立ってしまったり、一部が未決済になってしまったりと、上手く行きません。

打開策をご存知の皆様、どうかお助けください。

回答1

詳細がわからないのではずしてしまうかもしれませんが,
質問者様と同じような条件で決済するロジックを組んでます.

私の場合は,EA中のあるポジション群のTotal利益がある設定値を
越えたらそのポジション群の全ポジションを決済する方法です.
設定値を0にすれば質問者様と同じ条件になります.

私がやっているのは,まず,Positionを立てるとき,1つごとに
MagicNumberを連番で変えてます.
一括決済するPosition群の先頭のMagicNumberから最後の
MagicNumberまでの利益をOrderSelect命令でTotalします.
Total利益が条件を満たせばフラグを立てます.そしてフラグが
たてばそれらのポジション群を全決済するという方法です.
start関数内で利益計算→決済→新規エントリー判定の順序で
命令を並べておけばよいと思います.

それから,Orde rSelect命令で順にpositionを決済していくときは,
id番号の逆順でOrderSelect命令を発する必要があります.そうし
ないと,決済後id番号がひとつ繰り上がるので,抜かしてしまう
からです.

for( int ic0 = 0; ic0 <= OrdersTotal()-1; ic0++ )
{
if( !OrderSelect(ic0, SELECT_BY_POS) ) return(GetLastError());
(以下略)
ではなく,
for( int ic0 = OrdersTotal()-1; ic0 >=0 ; ic0– )
{
if( !OrderSelect(ic0, SELECT_BY_POS) ) return(GetLastError());
(以下略)

とすべきです.

EAの作り方が多分違うと思いますのであまり当てにならないかも
しれませんが参考までに.

回答2

オープンの条件が揃ってもエントリーしないようにしたいってこと?
でもそうするとエントリーされないから決済する必要もない…

あなたのロジックはデッドロッ クしてる。


回答3

脳足りんなの〜〜?

そんなチキンなEAに何の意味があるんだ?ボケナス


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA