オーダー変更時のエラー1 - ページ 5

 
borilunad:

Victorさん、保留ポジションのSLとTPを修正したのはなぜですか?一般的には、ポジションを建てた後にSLを設定し、SLをB/Sに移した後にTPを設定するのが理にかなっているのだそうですでは、なぜ無駄にサーバーに迷惑をかけるのか、なぜこんな面倒なことをしなければならないのか!?

コードを最小限にして単純化し、速く明確に動作するようにしなければなりません。そうすれば、市場の気まぐれで微調整することも簡単になるでしょう市場実態のあらゆるニュアンスに配慮してください

また、注文がトリガーされた後、接続が中断されるなどして、(システムから見て)より正確なストップロスを設定できない場合に備えて、保留中の注文にストップロスを設定しています。

問題がなければ、注文がトリガーされた後、適切なレベルにストップを置く。

 
Stells:

また、注文が発動した後、接続が中断されるなどして、システムから見てより正しいストップロスを設定できない場合に備えて、保留中の注文に直ちにストップロスを設定しています。

問題がなければ、注文がトリガーされた後、適切なレベルにストップを置く。

TSによると、あなたは始値の 近くにあなたのSLを設定した場合、これは正しいです。しかし、始値、SL、TPを何度も変更することは合理的ではなく、多くの労力を費やし、コードを複雑にするので、その労力に見合うものではありません
 

ビクター、そんなに必要なら、もっと簡単にできるでしょ!始値のみを 確認し、SLとTPを設定した保留注文と同じようにSLとTPをマークしてください

つまり、SLはAsk-SLまたはBid+SL、TPはそれぞれAsk+TPまたはBid-TPと 書けばいいのです!試してみてください、うまくいくはずですだから、不可能はないのです:)

 
borilunad:

Modify()関数は必要ですか?

ノーとは言いません。しかも、どこかで待っているくらいですから...。昨日の夜から。

keekkenen:
コードは問題ないようですが、実機では(デモではなく)動作するのでしょうか?
一度に3つの入力パラメータを修正する必要がない多くのEAで、それは機能します。なお、私がダウンロードしたのはテスター用のバリアントで、実機用のバリアントも存在します。

ボリルナド

Victorさん、なぜ保留中の注文でSLとTPを修正するようになったのですか?一般的には、SLはポジションを開いた後に設定し、TPはSLがB/Bに移動した後に設定するのが理にかなっていると思いますでは、なぜ無駄にサーバーに迷惑をかけるのか、なぜこんな面倒なことをしなければならないのか!?

コードを最小限にしてシンプルにし、素早く明確に動作するようにする必要があります。そうすれば、市場の気まぐれのために微調整することも容易になるでしょう市場の実情に合わせたニュアンスでじっくり考えてみてください

Borisさん、ドキュメントによると、3つのパラメータを同時に変更できるのであれば、それを使ってみてはいかがでしょうか?なんといっても便利!ストップ&テイクのオプションを変更しようと思っているのですが、ドキュメントにこの機能が明記されているのであれば、このオプションをきちんと動作させたいのですが、いかがでしょうか?そうでない場合は、不可能であると書かなければならない。そうすれば、疑問はひとりでに消えていくでしょう。
 
borilunad:
TSによると、SLを始値の近くに置く場合、これは正しいです。しかし、始値、SL、TPを何度も修正するのは、無駄な労力とコードの複雑 化で、理不尽な話です

Borisさん、私がサーバーを叩きすぎていると言っているのは誰ですか?トレーディングシステムの話をしたのではありません。さまざまなバリエーションがあります。STOPだけが動くこともあれば、STOPとTAKEも動くこともある。これらは異なるバリエーションです。しかし、今回の私の場合、平均して数時間おきにストップが動きます。あるいは1時間に1回。が多いのでしょうか? なやます コード?

それどころか、コードが...になる。 簡略化.モディファイ機能を呼び出すと...3つのパラメータを入れて、修正する。理想は、端末の不具合をカウントしないこと。

でも、そうでない場合はそして、OPEN 価格を修正し、条件が満たされたら・・・STOP価格を修正し、いくつかの条件が満たされるか、ある程度の時間が経過したら、TAKE価格を修正することになります。という感じでしょうか。 簡略化 コード?

 
hoz:

ノーとは言わない。しかも、どこかで待っているくらいですから...。で、昨日の夜から。

一度に3つの入力パラメータを変更する必要がない多くのEAで、それが機能します。なお、テスター用を割り引きましたが、リアル用もあります。

Borisさん、ドキュメントによると、3つのパラメータを同時に変更できるのであれば、それを使ってはどうでしょうか?なんといっても便利!ストップ&テイクのオプションを変更しようと思っているのですが、ドキュメントにこの機能が明記されているのであれば、このオプションをきちんと動作させたいのですが、いかがでしょうか?そうでない場合は、不可能であると書かなければならない。そして、その疑問はひとりでに消えていくでしょう。

ビクター、次の記事で始値だけを チェックして、その価格からSLとTPを設定し直すというアイデアを紹介したから見てみてね。

そして、その機能を今から投稿します私も、昨日お返事をいただいたことをどこかで「待って」いましたもっとシンプルにしよう。

#include <stderror.mqh>//штатные инклюдники, чтобы 
#include <stdlib.mqh>  //вызывался ErrorDescription()



//------------------------/  Modify Order  \------------------------\\
void ModifyOrder(int ticket,double price,double stoploss,double takeprofit,datetime e,color arrow_color)
{
  int ModifyCnt = 0, err;
  while(ModifyCnt < 3) {
    if(OrderModify(ticket,NormalizeDouble(price,Digits),NormalizeDouble(stoploss,Digits),
    NormalizeDouble(takeprofit,Digits),0,arrow_color))
    ModifyCnt = 3;
    else err = GetLastError();
    if(err > 0) { 
      Print(ModifyCnt," #",ticket," Error modifing order: (", err , ") " , ErrorDescription(err));
      Sleep(5000); RefreshRates(); ModifyCnt++;
} } }

何か質問があれば、明日まで待たずに聞いてください。;)

機能は普遍的であり、保留およびオープンポジションを持つあらゆる修正に対応します。がんばってください。

ちょうど今、昨日と同じように、ランチに行くところです最高の出来栄えです。

 
borilunad:

今、機能を出します!昨日もどこかでお返事を待っていましたよシンプルに考えましょう。

ご質問は明日までお待ちくださーい。;)

機能は普遍的であり、保留およびオープンポジションを持つあらゆる修正に対応します。がんばってください。

ストップ&フリクションチェックは?それとも、今となっては必要ないのでしょうか?:)ファンクションコードについては、同感です。シンプルでわかりやすいですね。でも、小切手は...。いないんです。なぜダメなのか?

夕食に 行く

ちょうど今、昨日と同じように、ランチに行くところですなんでもあり!?

この時間、誰が昼食をとっていて、誰がもう夕食をとっているのか......。
 
hoz:

どうしたらこのクソエラーを解消できる?もう、うんざりです。関数の入力パラメータを全てチェックしています。私の場合、今のところ、こんな感じです。

つまり、パラメータが変更されていなければ、変更する必要はないのです。今までやったことなかったけど、やってみようと思って...。

そして、以下のようにパラメータがオーダー変更メソッドに渡される。

ログにNw出力。

だから、ジャーナルは、修正:OK、しかし、その後...のように通知します。がエラーになる。どのパラメータも変更されていません。

注文は保留されています。そのため、オープン、ストップ、テイクプライスを変更することがあります。そしてこれは、私の理解では、ドキュメントと矛盾するものではありませんでした。

このようなことに遭遇したことがある人はいますか?どうすれば解決するのか?

他を削除する。
 
hoz:

ボリス ストップレベル、フリズルレベルのチェックはどうなっているのでしょう。それとも、最近は不要なのでしょうか?:)機能コードの件ですが、私もそう思います。シンプルでわかりやすいですね。でも、小切手は...。いないんです。なぜダメなのか?

この時間、誰が昼食をとっていて、誰がもう夕食をとっているのか......。

すべてのチェックは、各タイプに関連する条件と、Modify()のエラーチェックのみを行うこの関数の呼び出しを持つループの前で行われます。

            ModifyOrder(OrderTicket(),OOP,SL,0,0,clrBlue); return(0);

他に何かあれば聞いてください、でももう夕食に行くので。;)

 
あなたはどのように投票しましたか?