voidOnTradeTransaction( constMqlTradeTransaction &trans,
constMqlTradeRequest &request,
constMqlTradeResult &result )
{
switch(trans.type) //<<---- ОТФИЛЬТРОВАТЬ ПО ТИПУ ТРАЗАКЦИИ!!!!!!!!!!!!!!!!!!!!!!
{
//А вот здесь уже TRADE_TRANSACTION_DEAL_ADD
}
}
この場合、やはり依頼主からの注文のチケットをどこかに保存して、取引からのチケットと比較する必要があります。また、ローカル 変数の保存から解放され、マーケットやターミナルからの情報のみで、ローカルなインフラリスクを平準化したいのです。
ちょっと甘えすぎですね。
魔導師は、このEAのすべてのトレードで同じです
でも、オーダーが違う(ユニーク)!?
Openvashkaでリアルで取引し、デモでテストしていますが、トリガーを複数持っていないのですが、どうしたらいいですか?
TRADE_TRANSACTION_DEAL_ADDの コードを投稿してください。
今日、ちょうどこんなことがあったんです。上記は、同じロボットに対して2つの同じ取引を行った際のログからの抜粋です。
2019.02.08 10:55:29 [INFO]: ( PChBreak_RTS-3.19_22) TRADE_TRANSACTION_DEAL_ADD。
貿易取引取引追加
シンボル:RTS-3.19
ディールチケット:12674810
ディールタイプ:DEAL_TYPE_BUY
注文書:82646001
オーダータイプ:ORDER_TYPE_BUY
注文状態:ORDER_STATE_STARTED
オーダー時間タイプ:ORDER_TIME_GTC
注文有効期限:1970.01.01 00:00
価格:119700
価格トリガー:0
ストップロス:0
テイクプロフィット:0
巻数:1巻
ポジション:82646001
ポジション別:0
2019.02.08 10:55:32 [INFO]: ( PChBreak_RTS-3.19_22 ) TRADE_TRANSACTION_DEAL_ADD。
貿易取引取引追加
シンボル:RTS-3.19
ディールチケット:12674810
ディールタイプ:DEAL_TYPE_BUY
注文書:82646001
オーダータイプ:ORDER_TYPE_BUY
注文状態:ORDER_STATE_STARTED
オーダー時間タイプ:ORDER_TIME_GTC
注文有効期限:1970.01.01 00:00
価格:119700
価格トリガー:0
ストップロス:0
テイクプロフィット:0
巻数:1巻
ポジション:82646001
ポジション別:0
コード on deal_add
同じトランザクションが2つあるバグがあったので、現在のトランザクションのチケットが前のトランザクションと等しくないというチェックを追加しました。
今日、ちょうどこんなことがあったんです。上記で、同じロボットの同じ取引を2回行ったときのログを切り取ったものを掲載しました。
2019.02.08 10:55:29 [INFO]: ( PChBreak_RTS-3.19_22 ) TRADE_TRANSACTION_DEAL_ADD。
貿易取引取引追加
シンボル:RTS-3.19
ディールチケット:12674810
ディールタイプ:DEAL_TYPE_BUY
注文書:82646001
オーダータイプ:ORDER_TYPE_BUY
注文状態:ORDER_STATE_STARTED
.........
deal_addに対応するコード
同じトランザクションが2つあるバグがあったので、現在のトランザクションのチケットが前のトランザクションと等しくないというチェックを追加しました。
了解です。
注文状態:ORDER_STATE_STARTED -これはTRADE_TRANSACTION_DEAL_ADDには ない!
追加
そんなことはないだろう(イリヤ・バラノフも そうだ)。
追加
このフォーラムは、 "為替取引 "のセクションを持っているあなたは、より良いそこに通信することをお勧めします...
なるほど。
注文状態:ORDER_STATE_STARTED - これは TRADE_TRANSACTION_DEAL_ADDにはない!
追加
そんなことはないでしょう。
追加
このフォーラムは、 "為替取引 "のセクションを持っているあなたは、より良いそこに通信することをお勧めします...
私はとっくに動かしているのですが、@Ilya Childは、取引所で取引しているのか、それともFXのネッティングだけなのか、言っていません。私はここに座って待っている...
とっくに動かしているはずなのですが......@イリヤ・チャイルドは 取引所で取引しているのか、FXのネッティングだけなのか、一度も言っていません。私はここに座って待っている...
記号:RTS-3.19はFORTS
記号:RTS-3.19はFORTS
理解 できない。証券取引所があり、FXがある。それ以外は全部外れです。
理解 できない。証券取引所があり、FXがある。それ以外は全部外れです。
FORTSはRTS Futures and Optionsの略で、モスクワ証券取引所の デリバティブ市場部門です :)
なるほど。
注文状態:ORDER_STATE_STARTED -これはTRADE_TRANSACTION_DEAL_ADDには ない!
追加
そんなことはないだろう(イリヤ・バラノフも そうだ)。
追加
このフォーラムに「為替取引」のセクションがあるので、そこでコミュニケーションした方が良いのでは...。
よくわからないんですけど。ここでは、トランザクションの処理をしています。
取引における注文の状況について。自分で作っているわけではないことは分かっているはずだ。すべての deal_add トランザクションで、これは注文のステータスとなります。成行注文であり、以前は保留注文であったことにご注意ください。
今度は別の部分で混乱が起きています。deal_addのトランザクションが飛んできて、ポジションが表示されず、存在しないポジションのpendingが置かれた。
追加されました。
Deal_add 取引が到着したが、ポジションが表示されず、存在しないポジションの保留注文が発注された。取引形態は「売り」、注文形態は「買い」です。当初はSell_limitで制限していましたが
TP/SLが必要となるリミッター自体は、部分的に実行される場合があります。リミッターの形をしたTPは同じです。例えば、TPを3分の1の量で実行する場合、SLも同じだけ減らさなければなりません。
全体として、すべてのトリックをキャッチするためのかなり不快なロジックです。
このタスクはOnTradeに実装する必要があります。実装はそれほど難しくないはずです。
タスク
ネッティングの注文を保留している(異なる指示の場合もあり、各タイプの数は任意)。最初の保留注文がトリガーされるたびに、そのSL/TPをStop/Limit保留注文として設定する必要があります。そうすると、SL/TPは相互依存であるべきで、一旦注文がトリガーされると、2番目の注文は削除されます。イニシャルとSL/TPの保留注文は、部分的に発動することができます。Expert Advisor は、他のターミナルへの転送を含め、いつでも再ロードすることができます。
解決方法
よくわからないんですけど。以下は私のトランザクション処理です。
switch(trans.type)を持っていない。