if (a=true && b=true) { int OrderCount = OrdersTotal(); if (OrderCount>1) return(0); ticket1=OrderSend(Symbol()、OP_BUYSTOP、getLot()、PriceOpen_Buy、slippage、PriceOpen_Sell、0、0、Green)。 Sleep(1000)です。
for (int i=OrdersTotal()-1; i>=0; i--) { if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break; if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket()); if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket()); if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask, slippage); if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage); }
午後
a=trueとb=trueの条件で2つの保留注文(BuyStopとSellStop)を開くコードを書き、しばらくしてEAが両方の注文を閉じ、新しいシグナルが現れるまで、しかし時々EAは同じ方向に2つの保留注文を開くのです。なぜこのようなことが起こるのか、この「バグ」を回避する方法は?
if (a=true && b=true)
{
int OrderCount = OrdersTotal();
if (OrderCount>1) return(0);
ticket1=OrderSend(Symbol()、OP_BUYSTOP、getLot()、PriceOpen_Buy、slippage、PriceOpen_Sell、0、0、Green)。
Sleep(1000)です。
ticket2=OrderSend(Symbol()、OP_SELLSTOP、getLot()、PriceOpen_Sell、slippage、PriceOpen_Buy、0、0、Green)。
Sleep(1000*59*TimeFrame);
for (int i=OrdersTotal()-1; i>=0; i--)
{
if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) break;
if (OrderType()==OP_BUYSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELLSTOP ) OrderDelete(OrderTicket());
if (OrderType()==OP_SELL ) OrderClose(OrderTicket(),OrderLots(),Ask, slippage);
if (OrderType()==OP_BUY ) OrderClose(OrderTicket(),OrderLots(),Bid,slippage);
}
return(0)です。
}
ヒントを教えてください。
ありがとうございました。
こんにちは。
設定で1:1の固定ウェイトでスケジュールを入力することは可能でしょうか?
可能であれば、その方法を教えてください。
ありがとうございました。
このライブラリは、できます。
3.3 チャートのプロパティを設定する関数」関数ServiceSetScaleFix1To1()。
このライブラリは、ロシア語と英語のローカライゼーションでのみ動作します。あなたのところでも使えるかもしれません。
ここでは、注文受付機能を紹介します。
以下は、パラメータのプリントアウトです。
ここでは、TPとSLがそれぞれAskとBidの下と上にあること、つまりすべてが正しいことがはっきりとわかります。しかし、なぜかstopがおかしいので修正エラーが 出ます。どうしてですか?
ここでは、注文受付機能を紹介します。
以下は、パラメータのプリントアウトです。
ここでは、TPとSLがそれぞれAskとBidの下と上にあること、つまりすべてが正しいことがはっきりとわかります。しかし、なぜかstopがおかしいので修正エラーが出ます。どうしてですか?
叱られている内容も読んでいるのでしょうか?
わからないことがあったら、他の人と一緒に解決しよう......。
ZZY。保留注文を 出すと、文字列
if (price < Bid)
保留中の注文を出すときは、この文字列はかなり関係ないはずです。MarketInfo(Symbol(), MODE_STOPLEVEL)で設定した最小許容距離との対応関係を確認する必要がある。まず、すぐに目に飛び込んできたのは
2つ目は、注文が設定された価格を表示することです。ストップとテイクは、アスクとビッドに対してではなく、注文設定価格に対して設定する必要があります。
このライブラリは、できます。
3.3 グラフプロパティ設定関数」関数ServiceSetScaleFix1To1()。
このライブラリは、ロシア語と英語のローカライズにのみ対応しています。あなたのところでも使えるかもしれません。
叱られている内容も読んでいるのでしょうか?
呼び出された関数に渡されたパラメータを見る。 全く何もわからなくなったら、平和に解決しよう...。
もちろん読んでいますよ、だから気になるんです。 入力パラメータをすべてアンリンクしてみました。
これが、私が手に入れたものです。
以下はログの内容です。
注文は変更されるものとされないものがあります。冒頭のND(TP),ND(SL)の値をランダムな値に戻した。なぜ?
ちなみに、正規化機能は私の ものです。
叱られている内容も読んでいるのでしょうか?
呼び出される関数に渡されるパラメータをご覧ください。まったく何もわからないときは、世界と一緒に整理する...。
ZS 保留注文を出すと、ライン
if (price < Bid)
これはちょっと適切ではありませんね。最小許容距離が MarketInfo(Symbol(), MODE_STOPLEVEL)で指定されたものと一致するか確認する必要があります。まず、すぐに目に飛び込んできたのが、この商品です。
このようなチェックは、通常、注文の変更では発生しますが、開封の際には発生しません。もう見たよ。 保留をbystopにしたら失敗しそう。また、10pipsのストップを設定した場合、StopLossの値よりも確実に高くなります。私はティックで取引しない :)
2つ目は、注文が設定された価格を印刷することです。StopとTakeはAskとBidに対してではなく、注文が設定された価格に対して設定されるべきです。
これは改造用ということですね?結局、私たちが注文を出すときに重要視するのはBidとAskなのです。上の投稿ですべて整理しました。
こんにちは。
複数のウィンドウで同時にEAを動作させたいのですが、どうすればいいですか?ただし、1つの商品に対して1つしか注文を出すことができません。したがって、今は条件があります。
int total = OrdersTotal();
if (total<1) { 解析とオープンポジションのブロック} else { 解析とクローズポジションのブロック }.
さて、2つのシンボルで同時に開くと、片方で開くともう片方の作業が阻害されます。だから、似たようなものを作ってみたんです。
int total = OrdersTotal();
int cnt;
if(total>0)
{
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderSymbol()==Symbol())
{
Symbol_FLAG = true。
}
}
}
if(total<1 || total>0 && Symbol_FLAG == false) { 解析と ptposition ブロックのオープン}。
が、テスターではうまくいかない...。
もしかしたら、教えてくれるかもしれない、私が何か非現実的なことを企んでいるのかもしれない?