PositionSelect(Symbol());
// Check of het model al LONG zit. if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY)
{
// Check of het model al de maximale size in positie zit. if(PositionGetDouble(POSITION_VOLUME) >= MAX_Trade_Size)
{
return;
}
}
// De sum van de BID/LAST staticdouble dPriceSum;
double dOldPriceSum = dPriceSum;
// To be used for getting recent/latest price quotesMqlTick Latest_Price;
SymbolInfoTick(Symbol() ,Latest_Price);
dPriceSum = Latest_Price.bid + Latest_Price.last;
// Check if the price is (not)changed.if(dPriceSum == dOldPriceSum)
{
return;
}
これは可能な説明のようですが、もしそうであれば、それは正常ではありません。非同期モードを使用していますか?もしそうでなければ、EAはサーバーからの応答を待って、次のティックを処理する必要があります。
もし私がよく理解していれば、これはランダムな問題であり、あなたはそれを再現することができないのですか?
m_Trade の宣言の後に次の行を追加することで、より多くのデバッグ情報を表示することができます。
こんにちは。
https://www.mql5.com/en/forum/14327 で説明した解決策以降、もう1回ダブルトレードが発生しました。
問題は、PositionSelect(Symbol())関数の実行が遅いことだと思います。おそらく、新しいティックがあまりに早く入ってくるので、EAはPositionSelect(Symbol())の応答を受け取る前に新しい注文を送信してしまうのでしょう。私のコードでは、現在のポジションサイズが最大許容ポジションサイズと同じかそれ以上の場合、新規/ダブルオーダーを送信することは理論的に不可能です(コード参照)。
ブローカーXのライブサーバ(ECN)は、マクロ経済ニュースの際に非常に多くのティックを生成します。
私のEAは、追加バックアップとして、正しいポジションサイズを得るために、自動的にダブルポジションを反転させます。
....
ブローカーXのライブサーバ(ECN)はマクロ経済ニュースの際に非常に多くのティックを生成します。メタクォーツのシミュレーションサーバで見るティックごとに、このサーバは20、30、40ティックを生成します
....
私のEAは、追加バックアップとして、正しいポジションサイズを得るために、ダブルポジションを自動的に反転させます。
はいこれはDOMがアクティブになっているためです。
ご意見ありがとうございます。他の方と同じブローカーでこの問題が発生しているのでしょうか、それともブローカーに依存しないのでしょうか?
DOM」ってなんですか?
このブローカーサーバーだけです。このスレッドhttps://www.mql5.com/en/forum/14327 が立ち上がってから、シミュレーション(Metaquotes)サーバーでは一度も経験したことがありません。
その期間以前は、ブローカーXのサーバーはMetaquotesのサーバーとほぼ同じ量のティックを生成していました。
DOM」って何ですか?
このブローカーサーバのみで、このスレッドhttps://www.mql5.com/en/forum/14327 が立ち上がってから、シミュレーションサーバでは一度も経験したことがありません。
それ以前は、ブローカーXのサーバーはMetaquotesのサーバーとほぼ同量のティックを生成していました。
DOM = Depth of Marketを有効にすると、Tickイベントが多くなります。
無効化することは可能でしょうか?
無効化することは可能ですか?
価格そのものが変化したときのみティックを許可することで、受信するティックの数を最小限に抑えました。
価格そのものが変化したときのみティックを許可することで、受信ティックの数を最小限に抑えました。
アスク価格が変化している場合、ビッド価格が1ポイント上がり、ラスト価格が1ポイント下がる場合はどうなるのでしょうか?通常の」ティックとは、ビッドやアスクの変化です。
それは良い指摘ですね。BID価格の変化だけでいいのかもしれませんね。
チャート上のBARもBID価格を基準にしているのですか?
私のEAのトリガー信号では、1分足BARのベースとなる価格の変化だけに興味があります。