どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 1060

 
abeiks:

回答の一部をご紹介します。https://www.mql5.com/ru/forum/131859


1.ありがとう、でも答えは見つからなかった。SetOrder()関数があるが、基本的にはOrderSend()と同じである。この機能では、複数の注文を同時に開くことはできません。
 
smart_man:
1.ありがとう、でも答えは見つかっていない。SetOrder()という関数がありますが、これは要するにOrderSend()と同じです。この機能では、複数の注文を同時に開くことはできません。

サーバーは注文を並列ではなく一つずつ実行し、注文はあなただけでなくすべてのクライアントからのものであるため、どの機能でも同時に複数の注文を出すことはできない。

せいぜい数ミリ秒の差で次々と注文が開かれる程度で、市場に何らかの需要がある場合に限られる。

 
evillive:

サーバーは注文を並列ではなく一つずつ実行し、注文はあなただけでなくすべてのクライアントからのものであるため、どの機能でも同時に複数の注文を出すことはできない。

最良の場合、注文は数ミリ秒の差で次々と開くが、それは市場に需要がある場合のみである。

問題点を理解していただけたようですね!思い当たるのは、これらの注文をペンディングで開けばいいということです。そうすると、同時に開くことは可能なのでしょうか?
 
smart_man:
そこで、問題を理解していることがよくわかりました考えられるのは、これらの注文をペンディングで開いた場合です。では、同時に開くことは可能なのでしょうか?
いいえ、サーバーは依然として、保留または市場にあるものを1つずつ実行します。
 
evillive:
いいえ、サーバーはこれまで通り、ペンディングでもマーケットでも、一つずつ実行します。

1.そうすれば、「同時性」の問題は解消される。そうすると、この面では、マーケットを開くか、ペンディングにするかの違いはないことになります。

2.注文がクローズしたかどうかを1ティック ごとに手動でチェックし、まさにクローズした瞬間をとらえるのが正しいのか(TPやSLで)、それとも既製の関数があるのでしょうか?

 
smart_man:

1.すると、「同時性」についての疑問が解消されます。そうすると、この面では、始値か保留かの違いはありません。

2.注文が閉じられたかどうかを各ティックで手動でチェックし、まさに閉じる瞬間を決定するのが正しいのか(TPまたはSLによって)、または準備された関数があるのでしょうか?

2 よく見てください:https://www.mql5.com/ru/forum/131859

isCloseLastPosByStop()。
isCloseLastPosByTake()です。
 
PostMessageA(hwnd, WM_COMMAND, 0x822c, 0)という行はどういう意味でしょうか。目的が見つからない。
 

どの証券会社を選べばいいのか、アドバイスをお願いします。入出金に関するトラブルや、見積もりの信頼性に関心がある。例えば、Alpariサーバーのテスト結果は、metaquotesと大きく異なり、後者に有利な結果となっています。サーバーによってローソク足のパラメータが異なるなど。

先週はアルパリや外為クラブがライセンスを持っていなかったり、テレトレードの検索があったりと興味深い。どうすれば生き続けられるのか?

 

皆さん、こんにちは。完全自律型のカスタム機能を作りたい。OnInit()エミュレーションで問題なし。ユーザー関数自体は、定義により実行される。しかし、pseudoOnDeinit(const int reason)で問題があります。

課題の明確化ユーザー関数は、最後のパスでそのグラフィックオブジェクトを削除し、例えば、ターミナルのグローバル変数にいくつかのデータを保存する必要があります。

ループするプログラムでは、IsStopped()==trueがプログラム終了のサインになる場合があります。ループしないプログラムでは、常に0です。普遍的な方法ではない。

OnTick()からUninitializeReason()関数を呼び出してみたのですが、どうでしょうか?結果は常に0であるが、最後のパスで非初期化が迫っている理由の値を与えるようにするのが論理的であろう。

そのため、UninitializeReason()関数は切り捨てられ、OnDeinit(const int reason)の内部でのみ使用することができるようになりました。

すべてのユーザー関数は,初期化関数 OnDeinit(const int reason) に追加で書くことができ,ユーザー関数に渡される必須パラメータの1つは,初期化の 理由である reason であるべきである。

OnDeinit(const int reason)からユーザ関数に渡される0でない値の存在が、メインプログラムのシャットダウンのサインとなる。

おそらく、この目的のために必要な他の方法やシステム変数があるのでしょう。書いてください。経験を共有する申し訳ないと思っていない場合。;-)

 
kosmos0975:

OnTick()からUninitializeReason()関数を呼び出してみたのですが、どうでしょうか?結果は常に0であるが、最後のパスで今度の非初期化の理由を与えるようにするのが論理的であろう。

それ以外にはないでしょう?ティック間で端末を閉じた場合、OnTick()は実行されないため、UninitializeReason() を呼び出すイベントは処理されない。