OnTradeTransaction関数について質問です。 - ページ 3

 
Mikalas:

:)

1.フォルツの例

2.ブラケットポイントは付けられないのですか?

3.LINEでメッセージを読んでいるような印象です :)

いや、一線を越えて書いている印象がありますね。

void OnTick()
{
  MqlTick a_tick; //Зачем этот зазор ниже?
                                           
  if ( SymbolInfoTick( _Symbol, a_tick ) )
  {
    PlaceOrder( _Symbol, a_tick.ask, 1, false );   //Устанавливаем ордер
  }     
}

:))ブレークポイントを置いたのに、まだわからない。申し訳ありませんが、あなたのコードは醜いです。まず注文が送られ、OnTradeTransaction と CheckOrder() で無意味なチェックが行われる。音量もチェッカーで計算されます。

お互いを苦しめるのはやめましょう。少なくとも、あなたのコードの簡単な注釈(いわば、作者が何を言いたかったのか、どんなゴールを求めたのか:)を与えてくれれば、私はそれについて表面的ではない分析をしてみようと思うのです。ブレークポイント下でも、今のままでは再呼び出しをしたくない。

 
Mikalas:

:)

このようにしましょう。

私が質問するので、それに答えてください、いいですね?

...

さあ!
ミカラス

質問1:TradeTransaction イベントが来ていない(使われていない)場合、(OrderSendAsync コマンドを送信して)注文券をどうやって知ることができるのでしょうか?

遅かれ早かれ注文は実行され、この関数が分析する注文履歴に 行くので、TrackingHistoryOrders関数を通して注文チケットを認識することにします。

 
C-4:

線で書いているような印象がありますね。

ブレークポイントを入れても、まだわからない。申し訳ありませんが、あなたのコードは醜いです。まず注文が送られ、OnTradeTransaction と CheckOrder() で無意味なチェックが行われる。音量もチェッカーで計算されます。

お互いを苦しめるのはやめましょう。少なくとも、あなたのコードの簡単な注釈(いわば、作者が何を言いたかったのか、どんなゴールを求めたのか:)を与えてくれれば、私はそれについて表面的ではない分析をしてみようと思うのです。ブレークポイント下でも、今のような形で再呼び出しはしたくない。

:):):)

もう若くないので(写真は9年前のものです )、コードに「隙間」を作っておくと、より認識しやすくなりますね。

また、100文字の行と列が一緒に書かれていない方が、コードを読む のに便利だと感じる人も多いようです。

あなたが「醜い」と思うのは、あなたが時間をかけて独自の方法を編み出したからです。

OrderSendAsyncコマンドで、違うコード=醜いと思っているのか!:)

原理はとてもシンプルで、このテーマの議論に参加したあなたはそれを知っているはずです。

この問題の解決策はYurichが 提案したもので、OrderSendAsyncコマンドの各オーダーに対して

コマンドは、独自のマジックを持っている場合、この順序は、TradeTransactionイベントが到着していない場合、(マジックで)非常に簡単に見つけることができます。

マジックナンバーの範囲は、各シンボルに対して割り当てられており、例えば、AUDUSDの場合は1010000から1019999までとなっています。

EURUSDの場合 1020000から1029999まで

これらのユニークな番号は、時間の経過とともに繰り返すことができます

if ( mem_magic >= ( magic_number + 9999 ) ) mem_magic = magic_number;  //Переполнение, начинаем сначала

別の順番に「なる」のを避けるために、変数(datetime mem_time;) があります。

は、注文が行われた日時を格納する。

このまま行こうか?

 
C-4:
さあ!

なぜなら、遅かれ早かれ注文は実行され、注文履歴に 入り、この関数で分析されることになるからです。

それはいいのですが、すぐに必要なのです(注文が1日「ぶら下がる」ことがあり、履歴にbeません)。

改造したい!

削除したい!

 

さらに、サーバーから端末への配送中にトランザクションが失わ れる可能性もある。

どなたか、この状況を明らかにしていただけませんか?取引所の不具合、ブローカーの閉鎖、MQ MT5サーバーの停止)個人で取引を失う可能性があるのは誰ですか?

なぜMQは、トランザクションの配信を保証するためにしたくない、誰が利益を得る?

 
Serj_Che:

さらに、サーバーから端末への配送中にトランザクションが失わ れる可能性もある。

どなたか、この状況を明らかにしてください。具体的に誰が取引を失う可能性があるのか(取引所の不具合、ブローカーの閉鎖)?

なぜMQは、トランザクションの配信を保証するためにしたくない、誰が利益を得る?

誰もやらないが、MQはすべてを一度にやるのは「無理」だし、プロジェクトも 多いし、それに

優秀なプログラマーが少ないので、時間がかかりすぎるんです......。

もちろん、そうなります。(トラッキング機構そのものは別として、そのためのものはすでに揃っている)。

 
バジル、では、チケットが ない場合、発行されたOrderSendAsyncを どのように修正(削除)するのでしょうか?
 
Mikalas:

誰も得をしない、MQは一度に手を出せないだけで、プロジェクトはたくさんあるが

優秀なプログラマーが少ないので、時間がかかりすぎるんです......。

もちろん、そうなります。(トラッキング機構そのものを除けば、そのためのものはすでに揃っている)。

私が理解する限り、交換はすべてを提供します。普通のブローカーも損をするのは意味がない。

MQではそのように見えます。MQはMetaTrader5を持っており、取引所との統合は優先されない。

 
Serj_Che:

私の知る限り、この交換ですべてがわかる。普通のブローカーも損をするのは意味がない。

これはMQと似ています。MQはMetaTrader5を持っており、取引所との統合は優先されない。

そう、これは取引所に厨房がいない(手数料のみ)ことと、FOREXに何百万人ものMMM信者がいるためです。

100ドルかもしれないけど、みんな持ってるんだよ!巨額の資金、数えるほどしかない!:)

 

ワシリー、答えはあるのか?

そんなことはないだろう。

私は勝ったのか?