エラー、バグ、質問 - ページ 2010 1...200320042005200620072008200920102011201220132014201520162017...3185 新しいコメント 削除済み 2017.09.21 19:46 #20091 Andrey Dik: がゼロを返しますが、これは正常ですか? ひょっとして、OHLCのM1モードや始値で テストしているのでしょうか? Andrey Dik 2017.09.21 19:58 #20092 Alexey Kozitsyn: ひょっとして、OHLCのM1モードや始値で テストしているのでしょうか? いいえ、「ticks」と「real ticks」の両方を試しましたが、構造体配列がゼロでいっぱいになることもあれば、部分的になることもありました。 Andrey Dik 2017.09.21 21:02 #20093 どなたか、このEAをテスターで様々なテスト モードで試してみてください。//—————————————————————————————————————————————————————————————————————————————— input int AveTicksPeriod_P = 20; MqlTick G_Ticks []; //—————————————————————————————————————————————————————————————————————————————— int OnInit () { // сделаем начальную синхронизацию GetLastRequredTicks (Symbol (), AveTicksPeriod_P, G_Ticks, true, COPY_TICKS_INFO, 0); return (INIT_SUCCEEDED); } //—————————————————————————————————————————————————————————————————————————————— //—————————————————————————————————————————————————————————————————————————————— void OnTick () { Print ("---------------------"); if(!GetLastRequredTicks (Symbol (), AveTicksPeriod_P, G_Ticks, true, COPY_TICKS_INFO, 0)) { Print ("Ошибка получения тиков " + (string)ArraySize (G_Ticks)); return; } int errors = 0; for(int i = 0; i < AveTicksPeriod_P; i++) if(G_Ticks [i].bid <= 0.0) { Print (G_Ticks [i].bid); errors++; } if(errors > 0) Print ("errors: " + (string)errors); } //—————————————————————————————————————————————————————————————————————————————— //—————————————————————————————————————————————————————————————————————————————— // Получение последних тиков c в указанном количестве, // попытки в течении указанного времени в мс bool GetLastRequredTicks (string symbol, //символ int count, //количество MqlTick &ticks [], //массив для приёма тиков bool timeseries = true, //0-й элемент самый свежий или нет uint flag = COPY_TICKS_INFO, //COPY_TICKS_INFO или COPY_TICKS_TRADE или COPY_TICKS_ALL ulong waitMs = 0) //отведённое время на получение в мкс (10(-6)с) { //--- bool success = false; // флаг успешного выполнения копирования тиков MqlTick tick_array []; // массив для приема тиков if(timeseries) ArraySetAsSeries (ticks, timeseries); ZeroMemory (tick_array); ulong startTime = GetMicrosecondCount (); ulong timeElapsed = 0; // мкс int received = 0; ResetLastError (); bool wait = true; while(wait) { //--- запросим тиковую историю последних тиков в указанном количестве received = CopyTicks (symbol, ticks, flag, 0, count); timeElapsed = GetMicrosecondCount () - startTime; // если указано допустимое время на синхронизацию if(waitMs > 0) { // если время превысило допустимое, то попыток больше не будет if(timeElapsed >= waitMs) wait = false; } if(received == count) { //--- выведем информацию о количестве тиков и затраченном времени времени //PrintFormat ("%s: received %d ticks in %d mcs", _Symbol, received, timeElapsed); return (true); } //--- пауза в 0.1 секунду в ожидании завершения синхронизации тиковой базы Sleep (100); } return (false); } //——————————————————————————————————————————————————————————————————————————————ポイントは、各ティックで最も新鮮なティックを指定された数だけ取得することです。ゼロは、大声で出てきます。 Тестирование стратегий - Алгоритмический трейдинг, торговые роботы - Справка по MetaTrader 5 www.metatrader5.com Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии ( советники ) перед началом использования их в реальной торговле. При... 削除済み 2017.09.21 21:33 #20094 Andrey Dik:どなたか、このEAをテスターで様々なテスト モードで試してみてください。ポイントは、各ティックで最も新鮮なティックを指定された数だけ取得することです。ゼロは、大声で出てきます。Ticks EURUSD: ticks synchronization started OE 0 00:31:42.376 Ticks EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000 KP 0 00:31:42.376 Ticks EURUSD: history ticks synchronized from 2017.07.16 to 2017.09.20 DK 0 00:31:42.442 History EURUSD,M15: history cached from 2016.01.03 23:00 CK 0 00:31:42.442 Tester EURUSD,M15 (): generating based on real ticks MS 0 00:31:42.442 Tester EURUSD,M15: testing of Experts\test_getTicks.ex5 from 2017.09.20 00:00 to 2017.09.21 00:00 started with inputs: CO 0 00:31:42.442 Tester AveTicksPeriod_P=20 HH 0 00:31:42.681 Ticks EURUSD : real ticks begin from 2017.07.16 00:00:00 EL 3 00:31:42.681 Ticks EURUSD : 2017.09.20 00:00 - 2017.09.21 00:00 last prices translation turned on for 1333 minute bars PN 0 00:31:42.682 test_getTicks (EURUSD,M15) 2017.09.20 00:00:19 --------------------- IE 0 00:31:42.763 test_getTicks (EURUSD,M15) 2017.09.20 00:00:23 --------------------- LE 0 00:31:42.877 test_getTicks (EURUSD,M15) 2017.09.20 00:00:23 0.0 RP 0 00:31:42.877 test_getTicks (EURUSD,M15) 2017.09.20 00:00:23 errors: 1 FG 0 00:31:42.878 test_getTicks (EURUSD,M15) 2017.09.20 00:00:23 --------------------- HG 0 00:31:42.949 test_getTicks (EURUSD,M15) 2017.09.20 00:00:23 0.0 FR 0 00:31:42.949 test_getTicks (EURUSD,M15) 2017.09.20 00:00:23 errors: 1 RI 0 00:31:42.950 test_getTicks (EURUSD,M15) 2017.09.20 00:00:24 --------------------- 削除済み 2017.09.21 21:38 #20095 Andrey Dik:どなたか、このEAをテスターで様々なテスト モードで試してみてください。ポイントは、各ティックで最も新鮮なティックを指定された数だけ取得することです。ゼロは、大声で出てきます。 FORTSでは何とかなりましたが、TRADE-flow(インジケータ使用)だけです。Expert Advisorが実際のティックで動作することを望んでいない... Andrey Dik 2017.09.21 21:51 #20096 Alexey Kozitsyn: FORTSでは何とかなりましたが、TRADE-flow(インジケータ使用)だけです。あなたの専門家は、本物のティックで走る気もないのでは...。しかし、どこに問題があるのか、何が問題なのか、それが問題なのです。しかし、あるときエラーが発生した。 Alexey Viktorov 2017.09.21 22:32 #20097 Andrey Dik:どなたか、このEAをテスターで様々なテスト モードで試してみてください。その本質は、各ティックで最も新鮮なティックを指定された数だけ取得することです。まあ、一番新鮮な刻みを求めるなら、ゼロからではなく、現在の時間(ミリ秒)から取るべきでしょう。 received = CopyTicks (symbol, ticks, flag, TimeCurrent()*1000, count); Andrey Dik 2017.09.22 04:38 #20098 Alexey Viktorov:まあ、新鮮な刻みを求めるなら、ゼロからではなく、現在の時間(ミリ秒)から取るべきでしょう。ヘルプにはこう書いてある。から[in] 刻み目を要求する日付。1970年01月01日からのミリ秒単位で指定する。from=0 の 場合 、最後の ティックカウントが 与えられる。 fxsaber 2017.09.22 11:07 #20099 Metaeditorでmq5-fileを保存すると、その旧バージョンが保存される(時間差あり)。この場合、コンパイル時のex5は、私がMEで見たものに対応します。しかし、MEを閉じると、ファイル内のデータはすべて失われます。別の名前で保存しようとすると、ファイルは作成されますが、MEで見るものとは違う、古いソースがあります。ドライブには確実に余裕があります。 Vladimir Karputov 2017.09.22 14:45 #20100 このトピックに関係のないコメントは、「EAが機能しない理由」に移動しました。 1...200320042005200620072008200920102011201220132014201520162017...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
がゼロを返しますが、これは正常ですか?
ひょっとして、OHLCのM1モードや始値で テストしているのでしょうか?
どなたか、このEAをテスターで様々なテスト モードで試してみてください。
ポイントは、各ティックで最も新鮮なティックを指定された数だけ取得することです。ゼロは、大声で出てきます。
どなたか、このEAをテスターで様々なテスト モードで試してみてください。
ポイントは、各ティックで最も新鮮なティックを指定された数だけ取得することです。ゼロは、大声で出てきます。
どなたか、このEAをテスターで様々なテスト モードで試してみてください。
ポイントは、各ティックで最も新鮮なティックを指定された数だけ取得することです。ゼロは、大声で出てきます。
FORTSでは何とかなりましたが、TRADE-flow(インジケータ使用)だけです。あなたの専門家は、本物のティックで走る気もないのでは...。
しかし、どこに問題があるのか、何が問題なのか、それが問題なのです。
しかし、あるときエラーが発生した。
どなたか、このEAをテスターで様々なテスト モードで試してみてください。
その本質は、各ティックで最も新鮮なティックを指定された数だけ取得することです。
まあ、一番新鮮な刻みを求めるなら、ゼロからではなく、現在の時間(ミリ秒)から取るべきでしょう。
まあ、新鮮な刻みを求めるなら、ゼロからではなく、現在の時間(ミリ秒)から取るべきでしょう。
ヘルプにはこう書いてある。
から
[in] 刻み目を要求する日付。1970年01月01日からのミリ秒単位で指定する。from=0 の 場合 、最後の ティックカウントが 与えられる。
Metaeditorでmq5-fileを保存すると、その旧バージョンが保存される(時間差あり)。この場合、コンパイル時のex5は、私がMEで見たものに対応します。しかし、MEを閉じると、ファイル内のデータはすべて失われます。
別の名前で保存しようとすると、ファイルは作成されますが、MEで見るものとは違う、古いソースがあります。ドライブには確実に余裕があります。