2017.02.16 08:53:03.158 Network '2250': disconnected from FXOpen-MT5 2017.02.16 08:53:03.285 MQL5 wrong type, loading of Test failed 2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)
bool GetRatesTotal( int& rates_total ) // Количество просчитанных баров (out) { //--- Проверка переданного значения if( rates_total > 0 ) // Если передано корректное значение return( true ); // Возвращаем истину //--- Проверка синхронизации bool isSync = SymbolIsSynchronized( _Symbol ); bool sync = (bool)SeriesInfoInteger( _Symbol, _Period, SERIES_SYNCHRONIZED ); //--- if( !isSync || !sync ) // Если история не синхронизирована { Print( __FUNCTION__,": ОШИБКА РАССИНХРОНИЗАЦИИ! isSync = ",isSync,", sync = ",sync,", rt = ",rates_total ); return( false ); // Выходим с ошибкой } //--- Определим число просчитанных баров rates_total = Bars( _Symbol, _Period ); // Определяем число баров if( rates_total <= 0 ) // Если синхронизация не произведена { Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": Синхронизация по Bars() не пройдена!" ); return( false ); // Возвращаем ложь } else// Если значение получено return( true ); // Возвращаем истину }
に続いて、時刻と現在のSYMBOL_SESSION_...を要求する。値 - TIME CAME NOT CORRECT = TERMINAL CLOSED TIME、すなわち22:45!その結果、ファイルへの入力が曲げられ、読み取りが混乱する。TimeCurrent()関数で同期を確認してください!
念のため
買い取引開始
2017.02.15 15:16:40.944 Trades '5246495': accepted instant buy 1.00 EURUSD at 1.05572
2017.02.15 15:16:40.944 Trades '5246495': deal #117730573 buy 1.00 EURUSD at 1.05572 done (based on order #134121208)
2017.02.15 15:16:40.944 Trades '5246495': order #134121208 buy 1.00 / 1.00 EURUSD at 1.05572 done in 1284.090 ms
匠が掛ける
2017.02.15 15:16:41.720 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05574 (deviation: 16) [No prices]
2017.02.15 15:16:42.735 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05575 (deviation: 16) [No prices]
2017.02.15 15:16:43.749 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05575 (deviation: 16) [No prices]
2017.02.15 15:16:44.760 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:45.774 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:46.789 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05575 (deviation: 16) [No prices]
2017.02.15 15:16:47.804 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:48.818 Trades '5246495': failed instant buy 1.00 EURUSD at 1.05577 (deviation: 16) [No prices]
2017.02.15 15:16:49.831 Trades '5246495': instant buy 1.00 EURUSD at 1.05577 (deviation: 18)
2017.02.15 15:16:49.891 Trades '5246495': accepted instant buy 1.00 EURUSD at 1.05577 (deviation: 18)
2017.02.15 15:16:49.892 Trades '5246495': order #134121233 buy 1.00 / 1.00 EURUSD at 1.05577 done in 61.372 ms
2017.02.15 15:16:49.893 Trades '5246495': deal #117730596 buy 1.00 EURUSD at 1.05577 done (based on order #134121233)
念のため
OK、BODに追加。
貿易バグは何よりも心配です。1531+にアップデートして、ログがより完全なものになるようにしました。
2017.02.16 08:53:03.285 MQL5 wrong type, loading of Test failed
2017.02.16 08:53:03.813 Network '5122740': authorized on MetaQuotes-Demo through Access Point EU Amsterdam (ping: 50.93 ms)
何ですか?
唯一のチャートで何も動いていない。このメッセージは、アカウントを切り替えると必ず表示されます。
スラワ さん、同期はTimeCurrent()にまで及ぶのですか?昨晩22時45分に端末の電源を切った。今朝、電源を入れました。市場はまだ閉じています。フォルツァモスクワ時間10:00のマーケットオープンの前に刻みが入ります。各Tickの情報はOnBookEvent()で処理される。問題は、冗長な同期チェックにも関わらず
{
//--- Проверка переданного значения
if( rates_total > 0 ) // Если передано корректное значение
return( true ); // Возвращаем истину
//--- Проверка синхронизации
bool isSync = SymbolIsSynchronized( _Symbol );
bool sync = (bool)SeriesInfoInteger( _Symbol, _Period, SERIES_SYNCHRONIZED );
//---
if( !isSync || !sync ) // Если история не синхронизирована
{
Print( __FUNCTION__,": ОШИБКА РАССИНХРОНИЗАЦИИ! isSync = ",isSync,", sync = ",sync,", rt = ",rates_total );
return( false ); // Выходим с ошибкой
}
//--- Определим число просчитанных баров
rates_total = Bars( _Symbol, _Period ); // Определяем число баров
if( rates_total <= 0 ) // Если синхронизация не произведена
{
Print( __FUNCTION__,": ОШИБКА #",GetLastError(),": Синхронизация по Bars() не пройдена!" );
return( false ); // Возвращаем ложь
}
else // Если значение получено
return( true ); // Возвращаем истину
}
に続いて、時刻と現在のSYMBOL_SESSION_...を要求する。値 - TIME CAME NOT CORRECT = TERMINAL CLOSED TIME、すなわち22:45!その結果、ファイルへの入力が曲げられ、読み取りが混乱する。TimeCurrent()関数で同期を確認してください!
追加されました。
関数に渡される引数rates_totalの値は、常に=0です!つまり、同期が確認されているのです
TIME IS NOT CORRECT = TERMINAL CLOSED TIME、すなわち22:45。
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
バグ、バグ、質問
fxsaber さん 2017.02.14 15:40
Metaquotes-DemoでMOEX-symbolのみをMarket Watchに残した場合、TimeCurrentは15分遅れとなります。FOREXシンボルが1つ追加されると同時に、TimeCurrentは一気に15分先にジャンプします。これは本当の開き直りです、そこにFOREXの文字が追加されることはまずありえません......。しかし、もしそうなら、TimeCurrent() は今本当に曲がっているはずで、それさえもあらゆる手段で同期させることはできないのだ!
ここでもし、SYMBOL_SESSION_...を追加するとします。のデータを実際の到着時刻に付加すれば、このような問題は起きないはずです。そして、TimeCurrent()で松葉杖を作らなくて済むようになるのです。
ちなみに、証券取引所からの見積もり遅延は15分なので、おっしゃるようなケースは極めて論理的です。為替による遅れはないので、時間は為替によって調整されます。しかし、当然ながらこれは誤りです。つまり、TimeCurrent() は異なる市場間で「ナビゲートしない」のです。
TimeCurrent()が流動性プロバイダから来る可能性もある。そして、その流動性はさまざまなところから集められます。
ちなみに、証券取引所からの見積もり遅延は15分なので、おっしゃるようなケースは極めて論理的です。外為からの遅延はないので、外為に応じて時間を調整する。しかし、当然ながらこれは誤りです。つまり、TimeCurrent()は異なる市場間で「ナビゲートしない」のです。
TimeCurrent()が流動性プロバイダから来る可能性もある。そして、その流動性はさまざまなところから集められる。
SYMBOL_TIMEとTimeCurrent()を比較してみる必要がありそうです。もしかしたら、違いが出てくるかもしれませんが...。
おお...こんなに早く実現するとは思っていなかった。
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:37.575 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:35 2017.02.16 10:47:36)
2017.02.16 12:47:52.889 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:47:52.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:47:51 2017.02.16 10:47:52)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.890 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.891 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
2017.02.16 12:48:06.891 GetTimeCurrent: ВНИМАНИЕ! timeCurrent < timeSymbol (2017.02.16 10:48:05 2017.02.16 10:48:06)
端末の電源投入時、オフ。明らかなTimeCurrent() エラー!