OrderSend() の質問 - ページ 7

 

とは入力する項目が違うのでしょうか?

シンボルトレード取引所

為替執行

のフィールドとは異なります。

シンボルトレード実行市場

マーケットでの注文の実行

???

ヘルプにマーケットのみの例があります

マーケットエグゼキューション

成行注文(マーケット・エクセキューション・モード)で、ポジションを建てるための取引注文です。5つのフィールドの指定が必要です。

  • アクション
  • 記号
  • ボリューム
  • タイプ
  • タイプフィリング

また、マジックやコメント欄の指定も可能です。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 

ドキュメントを読んだり、フォーラムを探したり...。完全に混乱して いる。差し支えなければ、N+1回で説明してください。

1.OrderSend を使って取引依頼を送信しています。この関数は真を返す。

retcode(MqlTradeResult) を解析しています。この変数の値はTRADE_RETCODE_DONE である。

このような状況でも、サーバー上での実際の注文実行は保証 されるのでしょうか?それとも、OnTrade、OnTradeTransactionで何らかのチェックを行う必要があるのでしょうか?では、何の役にも立たないのに、レトコードを 解析する意味があるのでしょうか

すなわち、OrderSendAsync() を使用する場合のOnTradeとOnTradeTransactionの必要性は私には明らかです。

OrderSend() 関数を使用する場合、これらは必要でしょうか?サーバーで注文の実行/拒否を無条件に待ってから、Expert Advisor に後続のコードを送信するのでしょうか。

 
voix_kas:

...

OrderSend() を使用する場合、これらは必要ですか?サーバーでの注文の実行/拒否を無条件に待って、後続のEAコードの実行を送信するのでしょうか?

私の勘違いでなければ、OrderSendは 注文の実行を待たず、注文が正しく、サーバーに送信されたことを報告するだけです。

戻り値は

構造体の基本チェック(ポインタチェック)が成功した場合、true を返す。 -取引操作の実行が成功したことを示すものではない。関数の実行結果をより詳細に知るには、結果構造のフィールドを分析する。
 
voix_kas: OrderSendを 使用して取引依頼を送信しました。この関数は真を返す。

2.レットコード (MqlTradeResult)分析 する。この変数の値はTRADE_RETCODE_DONE である。

このような状況でも、サーバー上で実際に注文が実行されることは保証されているのでしょうか?

retcode は RETCODE_DONE 以外を返すことができる :).しかし、もしトレードサーバーが正確にTRADE_RETCODE_DONE(注文が実行さ れた)を返すなら、なぜ他のものをチェックしなければならないのでしょうか?私見ですが、このような場合、OnTrade, OnTradeTransaction関数は単にretcodeを 複製することになると思います。
 
fyords:

私の勘違いでなければ、OrderSendは注文が実行されるのを待たず 注文が真であることを報告してキューサーバに 送信するだけです。

その場合、"true "だけでも十分だったはずです。しかし、開発者は「Trade serverreturn code」を格納するはずのretcodeを提供しています。

つまり、OrderSend() 関数が動作した後、2行目のコードでTRADE_RETCODE_DONEを 確認し、3行目のコードで例えば開いたばかりのポジション(論理的には存在するはず)を変更しようと するのですが、どうすればよいでしょうか?ただし、PositionSelectはfalseを返す。この繰り返しが行われます。その結果、誤ってダブルポジションをオープンしてしまう。

このような状況に対して、私たちはどのように身を守ればよいのでしょうか。

1.レトコードだけに誘導され、OnTradeを"忘れる"

2.OnTradeだけに 誘導され、 retcodeを忘れる?

 
Yedelkin:
retcode は RETCODE_DONE だけでなく、RETCODE_DONE も返すことができる :)しかし、もしトレードサーバーが正確にTRADE_RETCODE_DONE(注文が実行さ れた)を返すなら、なぜ他のものをチェックする必要があるのでしょうか?私見ですが、このような場合、OnTrade, OnTradeTransaction関数は単にretcodeを 複製することになると思います。

取引サーバのリターンコード」の一覧から判断すると、マーケットリクエストの実行モードでは、TRADE_RETCODE_LOCKED の1つだけ不確定要素があります。そして、ここでもおそらくOnTradeがなくてはならない存在です。

個人的にはどのような接続をされているのかお伺いします。

Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений / Коды возврата торгового сервера - Документация по MQL5
 
voix_kas: トレードサーバーリターンコード」の一覧から判断すると、マーケットリクエストの実行モードでは、TRADE_RETCODE_LOCKEDという 1つだけ不確定要素があります。そして、ここでもおそらくOnTradeがなくてはならない存在です。

個人的に使っているバインディングを教えてください。

Placed "もあります。リクエスト送信の成功の観点からチェックするのは、それら(Placed/Done)です。
 
具体的なコードを教えてください。
 
voix_kas: 具体的なコードを教えてください。
いいえ、具体的なコードをお伝えすることはできません。まず、1年前から授業で封印していること、次に、探さないといけないこと...ご質問ですが、「私はどんなバインダーを使っているのですか?- と真摯に答えました。
 
voix_kas:

そんなとき、どのように保険をかければいいのでしょうか?

1.retcodeだけを使い、OnTradeの ことは "忘れる "のか?

2.OnTradeだけ で、retcodeは使わないのですか?

OnTradeに従うのが最も確実ですが、OnTradeなしでも可能です - 完了した取引(ResultDeal())を分析します。

このテーマについては、近日中に記事を掲載する予定です。