エラー、バグ、質問 - ページ 2127

 
Slava:

なった」とはどういう意味ですか?

いつもそうなんです。新しい4が始まってから

議論や証明はしませんが、2-3週間前がそうだったようです。ある人のために、ボタンと入力フィールドを持つExpert Advisorを修正していました。
ボタンと入力フィールドを追加する必要がありました。コーナーからのインデントを決定するために、私はいつも手動でオブジェクトを作成し、必要な場所に配置した後、プロパティを見てこれらの値をコードに追加していました。何しろ、そんなことは夢にも思っていなかったので......。

プログラムで作成されたオブジェクトを動かして いると考えることができたのです。しかし、それも今は不可能です。 オブジェクトはハイライトされていますが、動かすことはできません。

 
テストエージェントが ハードディスクをオーバーフローしている。何をするか-何を設定するか120gb×8台のサーバーがあります。
 
MQL5 Cloud Europe 1     genetic pass  tested with error "wrong timeframe request in Open Prices mode in OnTick function (EURUSD,M1)" 


皆さん、こんにちは。

Open Pricesのみの クラウド最適化でこのエラーに遭遇された方はいらっしゃいますか?


誤差は一定ではありません。つまり、「ごくまれに」発生するが、10,000件実行すると50回出現する。

最適化の際にTFを変更しない。

 
Vladislav Andruschenko:

誤差は一定ではありません。つまり、「ごくまれに」発生するが、1万件の結果を実行すると、50回出現するのである。

フレームを通してエージェントから必要な情報を得る必要があり、それを分析する。

 
fxsaber:

分析用のフレームを介してAgentから必要な情報を取り出す必要があります。

19%では必ずこうなる。歴史のせいというスレを発見。
試してみます。
 

OnTradeTransaction イベントの全シーケンスは、OrderSend の完了に続く。

電子ブック

void OnTradeTransaction ( const MqlTradeTransaction &Trans, const MqlTradeRequest&, const MqlTradeResult& )
{ 
  static bool FirstRun = true;  
  static ulong StartTime;
  
  if (FirstRun)
  {
    StartTime = GetMicrosecondCount();
    
    FirstRun = false;
  }

  Print(EnumToString(Trans.type));
  Print((GetMicrosecondCount() - StartTime) / 1000);    
}

取引注文を手動で送信する。

ログ

2018.02.14 09:41:46.671 '8854170': instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': accepted instant sell 1.00 EURUSD at 1.23673
2018.02.14 09:41:46.853 '8854170': deal #192088422 sell 1.00 EURUSD at 1.23673 done (based on order #208541700)
2018.02.14 09:41:46.853 '8854170': order #208541700 sell 1.00 / 1.00 EURUSD at 1.23673 done in 190.608 ms


Expert Advisorの結果

2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_ADD
2018.02.14 09:41:46.853 0
2018.02.14 09:41:46.853 TRADE_TRANSACTION_DEAL_ADD
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_ORDER_DELETE
2018.02.14 09:41:46.853 1
2018.02.14 09:41:46.853 TRADE_TRANSACTION_HISTORY_ADD
2018.02.14 09:41:46.853 2
2018.02.14 09:41:46.853 TRADE_TRANSACTION_REQUEST
2018.02.14 09:41:46.853 2


時間列とEAの数値データから、取引注文の実行時間がOnTradeTransactionイベントのシーケンスに影響を与えないことが完全にわかります。非同期は地獄に落ちる!ここまでひどいことをやってのけたんだ。1755年製造。

 

シンボルの桁数は == 3

ログに表示される桁数が多い

'18000903': failed modify order #896199 buy limit 0.01 BTCUSD at 616.00100 sl: 0.00000 tp: 0.00000 -> 616.00100, sl: 0.00000 tp: 616.10100 [Invalid request]
 
取引履歴の「注文と取引」表示で、「コメント」欄が表示されない。
 
これはターミナルの悪いバグではなく、MT5プラットフォームのバグです。
#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  OrderSend(_Symbol, OP_BUY, 1, Ask, 100, 0, Bid);
  
//  OrderSend(_Symbol, OP_BUYLIMIT, 1, Ask, 100, 0, 0);
}

MQ-Demoで、何か動きの遅いシンボルで実行する。例えば、EURHUF。

スクリプトは、TP = Bidで買いポジションをオープンします。すなわち、ポジションを直ちにクローズすること。しかし、TPが受け入れ条件に適合しているかどうかをチェックするのは、次のティックのときだけです

次のティックが発生するまで、ポジションはすぐにクローズされません。さらに、次のティックがBid < TPの場合、TPは受け入れられずに残ります。


指値注文(コメント付きライン)についても同様です。テスターでも似たような状況です。

 
fxsaber:
これは、Terminalのバグではなく、MT5プラットフォームのバグです。

MQ-Demoで動きの遅いシンボルで実行します。例えば、EURHUF。

スクリプトは、TP = Bidで買いポジションをオープンします。すなわち、ポジションを直ちにクローズすること。しかし、TPが受け入れ条件に適合しているかどうかをチェックするのは、次のティックのときだけです

次のティックが発生するまで、ポジションはすぐにクローズされません。さらに、次のティックがBid < TPの場合、TPは受け入れられずに残ります。


指値注文(コメント付きライン)についても同様です。Strategy Testerでも同様の状況です。

MQL5に関する質問には、きれいなMQL5コードを同封してください。

あなたのNASTYな広告を見たり見なかったりするのは、もううんざりです。