[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 779

 
ToLik_SRGV:

OrderSend 関数に間違った始値/終値が設定されています。このエラーにより、正しく注文を出すことができなくなります。つまり、EAが何らかの理由でより多くの注文を出したいのに、このエラーのために出せないということです。保留中の注文の価格が正常化されているか、すべての注文が成立しているかを確認してください。

プロの目で見て気にしなければ、他には何もありません

ファイル:
test_21_3.mq4  16 kb
 
FoxUA:

プロの目で見て気にしなければ、他には何もないのです。

解凍してみると、保留中の注文を 設定するブロックでエラーが発生し、マイナスの価格で設定しようとしていることがわかりました。

 
ToLik_SRGV:

解凍したところ、保留中の注文の設定ブロックでエラーが発生し、マイナスの価格で発注しようとしていることがわかりました。


壁に頭をぶつける以外に、どうやって解決するんだ?

 
ToLik_SRGV:

考え方によるとそうではない。以下は、教科書からの抜粋です。

P.S.
100歳になっても面白いペチカについて :)))


"... また、フリーズゾーンにある成行注文のストップオーダー価格も表示 される......」。

しかし、それが影響していることが判明...。そして、それは考慮されなければならない - 私はちょうどオープンポジションで発表されたストップオーダーのレベルを削除する必要があります...また、すでにフリーズゾーンに突入している場合は、あとはクローズを待つだけ...。か、プルバックか・・・。

ありがとう、相棒!!!

ZS.そしてPetyaについてですが、こちらも状況は同じで......。- 1.6を入れたら動いた、1.8を入れたら動かなかったと言う...。しかも1.9でもダメ!!!!なんということでしょう!!!恐ろしいことです。おおっ!
数字はどうなっているのですか?リットルとか。

 
FoxUA:

えーと、壁に頭を打ち付けるのは別として、どうやって直すんだっけ;)どこで迷子になったんだっけ?

キムの機能からプリントを認識...彼のスレッドを見てください。彼は、各関数の後にスクリプトを用意して、それをチェックしています。これ以上ないくらいクリアなんだけど...。
 
artmedia70:
キムの機能からプリントを認識...彼の支店に行ってみてください。彼は、各関数の後にスクリプトを用意して、それをチェックしているんです。これ以上ないくらいクリアなんだけど...。


そうです、ここでもらった彼のライブラリーからなので、ポストに入っているのと同じスクリプトです。

{SetOrder(sy, OP_BUYLIMIT, Lot*3, NormalizeDouble(PrAskLim, Digits), PrAskLim-StopLoss*po, PrAskLim+TakeProfit*po,mn);
    SetOrder(sy, OP_BUYSTOP,  Lot,   NormalizeDouble(PrAskSt, Digits),  PrAskSt-StopLoss*po,  PrAskSt+TakeProfit*po,mn);
    SetOrder(sy, OP_SELLLIMIT,Lot*3, NormalizeDouble(PrBidLim, Digits), PrBidLim+StopLoss*po, PrBidLim-TakeProfit*po,mn);
    SetOrder(sy, OP_SELLSTOP, Lot,   NormalizeDouble(PrBidSt, Digits),  PrBidSt+StopLoss*po,  PrBidSt-TakeProfit*po,mn);
     } 
 
FoxUA:

ええと、壁に頭をぶつける以外に、どうやってこれを治すのでしょうか ;) どこで迷子になったのでしょう?

前に進みましょう。
負の数はStopLossLastPos() 関数とTakeProfitLastPos( )関数から変数に取得されます。つまり、-1はStopLossとTakeProfitの最後の値の取得に失敗したことを意味します。最後の値の取得の成功を確認しないので、-1が価格として仕事に入り、そこから保留中の注文を設定するための値をカウントする...といった具合になるのです。

その結果、雪だるま式に増えていき、虫の海になってしまう。今はテスターで様子を見て、また報告します...。


 
ToLik_SRGV:

移動する
負の数はStopLossLastPos() 関数とTakeProfitLastPos( )関数から変数に取得されます。つまり、-1 は StopLoss と TakeProfit の最後の値の取得に失敗したことを意味します。最後の値の取得の成功を確認しないので、-1が価格として仕事に入り、そこから保留中の注文を設定するための値をカウントする...といった具合になるのです。

その結果、雪だるま式に増えていき、エラーの海になる。今度はテスターで見て、報告します...。




どうなんでしょうね、そういうのって。

 
FoxUA:

ああ、どうしてそうなんだろう。

サインオフします。
間違いはロジックにある。2つのマーケットオーダーを軸に構築されています。しかし、ここで微妙な点があります。関数OrdersTotal() は、未決済の成行注文の総数ではなく、設定されている保留中の注文と一緒に、市場に出ているすべての注文を返すのです。
その結果、取引中に成行注文がない時間が発生し、保留中の注文がハングアップし続ける時間、つまり、OrdersTotal()は 0以上を返し、それに応じて、あなたのブロックは、市場注文を開く場合(総注文= 0)、彼らは開くことはできません。しかし、新規の保留注文は(OrdersTotal() が2を返した瞬間に)可能ですが、成行注文がないため、StopLossLastPos()TakeProfitLastPos() は-1を返し、保留注文開始条件はif(total_order==2) なので-1を受けて、それを価格として使用することになるのです。

 
ToLik_SRGV:

サインオフします。
間違いはロジックにある。2つのマーケットオーダーを中心に構築されています。しかし、ここで微妙な点があります。関数OrdersTotal() は、未決済の成行注文の総数ではなく、設定されている保留中の注文と一緒に、市場にあるすべての注文を返すのです。
その結果、取引中に成行注文がない時間が発生し、保留中の注文がハングアップし続ける時間、つまり、OrdersTotal()は 0以上を返し、それに応じて、あなたのブロックは、市場注文を開く場合(総注文= 0)、彼らは開くことはできません。しかし、新規の保留注文は(OrdersTotal() が2を返した瞬間に)可能ですが、成行注文がないため、StopLossLastPos()TakeProfitLastPos() は-1を返し、保留注文開始条件はif(total_order==2) なので-1を受けて、それを価格として使用することになるのです。


わかりました、今変更します。