{
if(OrdersTotal()==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMin (up,down) < Bid )
OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
}
}
これは解決策ではありますが、先に進めばわかるように、最善の解決策ではありません。
しかし、現時点ではお役に立てるでしょう。
それは解決策ですが、あなたが続ければ学ぶように、それは最善の解決策ではありません。
しかし、それはこの時点であなたを助けることができます。
はい、それはトピックの問題を解決しましたが、それが閉じるとき、それはまだ雲の上にある場合は、新しい順序を作成します。この新しい問題を解決するために私を助けてもらえますか?
どのようにブロックすべての新しい注文は、最初の閉じるに成功した後?
フラグを作成することができます。
そして、注文が行われたときに、その値を1に設定することができます。
{
if(order==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMin (up,down) < Bid )
OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
order=1;
}
}
でも、ordersend関数の 戻り値をチェックする必要があるという警告が出るので
{
if(order==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMin (up,down) < Bid )
int ticket=OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
{
if(ticket!=-1)
{
order=1;
}
}
}
}
注文が成功したかどうかでフラグを設定するのはどうでしょう?
その場合、もし注文が失敗しても試行錯誤を続けます。
はい、それはトピックの問題を解決しましたが、それが閉じるとき、それはまだ雲の上にある場合は、新しい順序を作成します。この新しい問題を解決するために私を助けてもらえますか?
どのようにブロックすべての新しい注文は、正常に最初の閉鎖後?
マルコがすでに言及しているように、おそらく他の問題にぶつかるでしょう。
他のシンボルに未決済の注文がある場合はどうでしょうか?
他のEAで制御されている注文があったらどうでしょう?
保留中の 注文がある場合はどうでしょうか?
最初のトリガーを閉じたときに、そのトリガーがまだ有効であったらどうでしょうか?
後者に対しては、Marcoが提案したようにフラグを使うことができます。ただ、フラグをリセットするタイミングを決めないと、EAが二度と取引をしなくなることを忘れないでください。
あるいは、雲の下/上から、クロス/状態の変化をチェック することもできます。
あなたのコードを入れたら、チケットがundleclaredと言われたので、それを宣言しましたが、今、コードはちょうど前のように、複数の注文を開く、今どのように続行しますか?
{
bool order= 0;
int ticket;
if(order==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMax (up,down) < Bid )
int ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
{
if( ticket!=1)
{
order=1;
}
}
}
}
あなたのコードを入れたら、チケットがundleclaredと言われたので、それを宣言しましたが、今、コードはちょうど前のように、複数の注文を開く、今どのように続行しますか?
{
bool order= 0;
int ticket;
if(order==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMax (up,down) < Bid )
int ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
{
if( ticket!=1)
{
order=1;
}
}
}
}
それはおそらく変数の範囲について 読むのに役立つだろう。
注文の 値は、各ティックにどうなりますか?
さて、それではbooleanフラグを持つチケットを宣言します。
int ticket;
そして
{
if(order==0)
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMax (up,down) < Bid )
ticket= OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
{
if( ticket>0)
{
order=1;
}
}
}
}
OnTick()で宣言することはできません。もちろん、チケットの値はtick ごとにリセットされるからです。
また、OrderSendはチケット番号を返すか、失敗した場合は-1マイナス1することに注意してください。
を入れた。
ブールオーダーと
int ticket
をグローバル変数に、残りのコードをOnTickに置きましたが、それでもまだ何も入力されません。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
私はmql4の初心者です。このコードは複数の注文を開きますが、どうすればそれを避けることができますか?
どうすればいいのでしょうか?
ありがとうございます。
{
double up= iIchimoku (NULL, 5,9,26,52,3,0);
double down= iIchimoku (NULL,5,9,26,52,4,0);
if (MathMin (up,down) < Bid )
OrderSend (NULL,0,0.01,Ask,3, Bid-150*Point, Bid+100*Point);
}