Тестируем 'CopyTicks' - страница 50

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Тестируем 'CopyTicks'

Artyom Trishkin, 2024.06.19 19:50

//--- запрашиваем 100 миллионов тиков, чтобы гарантировать получение всей тиковой истории 
input int      getticks=100000000; // сколько тиков требуется

1e8 тиков по символу вполне может быть на сервере. Возможно, упираетесь в RAM, либо в TimeOut, потому что закачать столько быстро не получится.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: MultiTester

fxsaber, 2020.01.25 12:39

Самый удобный способ закачать историю тиков (запускать советник в Терминале).

#property description "Закачивает тики через Тестер."

sinput datetime inFromDate = D'2019.01.01'; // С какой даты закачать тики
sinput bool inAllSymbols = false;           // По всем символам (true) или текущему (false)

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

string PrevTesterSettings = NULL;

string GetMyName( void )
{
  return(StringSubstr(MQLInfoString(MQL_PROGRAM_PATH), StringLen(TerminalInfoString(TERMINAL_DATA_PATH) + "\\MQL5\\Experts\\")));
}

bool RunMe( const datetime FromDate, const bool AllSymbols = false )
{
  const string Str = "[Tester]" +
                     "\nExpert=" + GetMyName() +
                     "\nSymbol=" + _Symbol +
                     "\nOptimization=" + (AllSymbols ? "3" : "0") +
                     "\nModel=4" +
                     "\nFromDate=" + TimeToString(FromDate, TIME_DATE) +
                     "\nToDate=" + TimeToString(TimeCurrent(), TIME_DATE) +
                     "\nForwardMode=0" +
                     "\nProfitInPips=1" +
                     "\nOptimizationCriterion=0" +
                     "\nVisual=0";
                     
  return(MTTESTER::SetSettings2(Str) && MTTESTER::ClickStart());
}

int OnInit()
{
  bool Res = !MQLInfoInteger(MQL_TESTER) && EventSetTimer(1);

  if (Res = Res && MTTESTER::GetSettings(PrevTesterSettings))
    if (!(Res = RunMe(inFromDate, inAllSymbols)))
      MTTESTER::SetSettings2(PrevTesterSettings);

  return(Res ? INIT_SUCCEEDED : INIT_FAILED);
}

void OnTimer()
{
  if (MTTESTER::IsReady())
  {
    MTTESTER::SetSettings2(PrevTesterSettings);
    
    if (inAllSymbols)
      MTTESTER::CloseNotChart();

    ExpertRemove();
  }
}


После этого можно запускать в Терминале скрипты, которые работают с тиками, и не ждать тучу времени без признаков жизни.

 
fxsaber #:

1e8 тиков по символу вполне может быть на сервере. Возможно, упираетесь в RAM, либо в TimeOut, потому что закачать столько быстро не получится.

2024.06.19 21:12:15.617 Test (EURUSD,M1)        Ошибка! Не удалось получить 100 тиков по EURUSD с трех попыток

Даже не знаю что сказать…

 

Странно. А теперь скопировал все тики

2024.06.19 21:21:58.216 Test (EURUSD,M1)        EURUSD: received 100000000 ticks in 18641 ms
2024.06.19 21:21:58.216 Test (EURUSD,M1)        Last tick time = 2016.02.29 09:54:41.000
2024.06.19 21:21:58.216 Test (EURUSD,M1)        First tick time = 2011.12.19 00:00:08.000
2024.06.19 21:21:58.216 Test (EURUSD,M1)        current_time=2024.06.19 21:21
2024.06.19 21:21:58.217 Test (EURUSD,M1)        1. 2024.06.19 00:00.372 Ask=1.07405 Bid=1.07405 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        2. 2024.06.19 00:00.457 Ask=1.07413 Bid=1.07413 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        3. 2024.06.19 00:00.037 Ask=1.07407 Bid=1.07407 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        4. 2024.06.19 00:00.542 Bid=1.07407 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        5. 2024.06.19 00:01.167 Ask=1.07412 Bid=1.07412 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        6. 2024.06.19 00:01.912 Ask=1.07404 Bid=1.07404 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        7. 2024.06.19 00:01.588 Ask=1.07408 Bid=1.07408 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        8. 2024.06.19 00:01.694 Bid=1.07408 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        9. 2024.06.19 00:01.868 Ask=1.07405 Bid=1.07405 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        10. 2024.06.19 00:01.868 Ask=1.0742 Bid=1.0742 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        11. 2024.06.19 00:01.403 Ask=1.07411 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        12. 2024.06.19 00:01.560 Ask=1.0742 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        13. 2024.06.19 00:02.766 Bid=1.0742 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        14. 2024.06.19 00:02.836 Ask=1.07421 Bid=1.07421 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        15. 2024.06.19 00:03.981 Bid=1.07421 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        16. 2024.06.19 00:03.486 Ask=1.07421 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        17. 2024.06.19 00:04.729 Bid=1.07421 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        18. 2024.06.19 00:05.000 Ask=1.0742 Bid=1.0742 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        19. 2024.06.19 00:05.145 Ask=1.07417 Bid=1.07417 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        20. 2024.06.19 00:05.220 Ask=1.07419 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        21. 2024.06.19 00:05.373 Ask=1.07415 Bid=1.07415 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        22. 2024.06.19 00:05.812 Ask=1.07413 Bid=1.07413 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        23. 2024.06.19 00:05.092 Ask=1.07416 Bid=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        24. 2024.06.19 00:05.520 Ask=1.07417 Bid=1.07417 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        25. 2024.06.19 00:05.076 Ask=1.07416 Bid=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        26. 2024.06.19 00:06.123 Bid=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        27. 2024.06.19 00:06.038 Ask=1.07413 Bid=1.07413 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        28. 2024.06.19 00:06.322 Ask=1.07411 Bid=1.07411 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        29. 2024.06.19 00:07.049 Ask=1.0741 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        30. 2024.06.19 00:07.168 Ask=1.07412 Bid=1.07412 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        31. 2024.06.19 00:07.992 Ask=1.07413 Bid=1.07413 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        32. 2024.06.19 00:08.122 Bid=1.07413 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        33. 2024.06.19 00:08.044 Ask=1.07416 Bid=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        34. 2024.06.19 00:09.044 Ask=1.07416 Bid=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        35. 2024.06.19 00:09.322 Ask=1.07417 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        36. 2024.06.19 00:10.614 Ask=1.07416 Bid=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        37. 2024.06.19 00:10.323 Ask=1.07415 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        38. 2024.06.19 00:10.705 Ask=1.0741 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        39. 2024.06.19 00:10.824 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        40. 2024.06.19 00:10.635 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        41. 2024.06.19 00:10.106 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        42. 2024.06.19 00:10.312 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        43. 2024.06.19 00:10.642 Ask=1.07411 Bid=1.07411 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        44. 2024.06.19 00:10.659 Ask=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        45. 2024.06.19 00:10.541 Ask=1.07409 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        46. 2024.06.19 00:10.720 Bid=1.07409 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        47. 2024.06.19 00:11.505 Bid=1.07409 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        48. 2024.06.19 00:11.397 Ask=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        49. 2024.06.19 00:11.544 Ask=1.07411 Bid=1.07411 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        50. 2024.06.19 00:11.738 Ask=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        51. 2024.06.19 00:11.483 Bid=1.0741 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        52. 2024.06.19 00:11.845 Ask=1.07418 Bid=1.07418 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        53. 2024.06.19 00:11.646 Bid=1.07418 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        54. 2024.06.19 00:11.516 Ask=1.07415 Bid=1.07415 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        55. 2024.06.19 00:12.761 Ask=1.07414 Bid=1.07414 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        56. 2024.06.19 00:12.549 Ask=1.07415 Bid=1.07415 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        57. 2024.06.19 00:12.191 Ask=1.07416 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        58. 2024.06.19 00:12.907 Ask=1.07399 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        59. 2024.06.19 00:12.963 Ask=1.074 Bid=1.074 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        60. 2024.06.19 00:12.013 Ask=1.07402 Bid=1.07402 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        61. 2024.06.19 00:12.063 Ask=1.07407 Bid=1.07407 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        62. 2024.06.19 00:12.134 Ask=1.0739 Bid=1.0739 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        63. 2024.06.19 00:12.257 Ask=1.07394 Bid=1.07394 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        64. 2024.06.19 00:12.696 Ask=1.07392 Bid=1.07392 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        65. 2024.06.19 00:12.062 Ask=1.0739 Bid=1.0739 (Info tick)
2024.06.19 21:21:58.217 Test (EURUSD,M1)        66. 2024.06.19 00:12.269 Ask=1.07399 Bid=1.07399 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        67. 2024.06.19 00:12.469 Ask=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        68. 2024.06.19 00:12.548 Ask=1.07392 Bid=1.07392 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        69. 2024.06.19 00:12.638 Ask=1.07395 Bid=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        70. 2024.06.19 00:12.959 Ask=1.07399 Bid=1.07399 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        71. 2024.06.19 00:12.012 Ask=1.07402 Bid=1.07402 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        72. 2024.06.19 00:12.082 Ask=1.07401 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        73. 2024.06.19 00:12.183 Ask=1.07393 Bid=1.07393 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        74. 2024.06.19 00:12.242 Ask=1.07395 Bid=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        75. 2024.06.19 00:12.298 Ask=1.07402 Bid=1.07402 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        76. 2024.06.19 00:12.683 Ask=1.07395 Bid=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        77. 2024.06.19 00:12.209 Ask=1.07394 Bid=1.07394 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        78. 2024.06.19 00:12.263 Ask=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        79. 2024.06.19 00:12.683 Ask=1.07394 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        80. 2024.06.19 00:12.753 Ask=1.07393 Bid=1.07393 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        81. 2024.06.19 00:12.324 Ask=1.07392 Bid=1.07392 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        82. 2024.06.19 00:12.512 Ask=1.0739 Bid=1.0739 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        83. 2024.06.19 00:12.758 Bid=1.0739 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        84. 2024.06.19 00:12.410 Ask=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        85. 2024.06.19 00:12.590 Ask=1.07389 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        86. 2024.06.19 00:13.398 Bid=1.07389 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        87. 2024.06.19 00:13.049 Ask=1.07393 Bid=1.07393 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        88. 2024.06.19 00:13.115 Ask=1.07389 Bid=1.07389 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        89. 2024.06.19 00:13.118 Ask=1.07395 Bid=1.07395 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        90. 2024.06.19 00:13.210 Ask=1.07393 Bid=1.07393 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        91. 2024.06.19 00:13.298 Ask=1.07394 Bid=1.07394 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        92. 2024.06.19 00:13.576 Ask=1.0739 Bid=1.0739 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        93. 2024.06.19 00:13.676 Ask=1.07391 Bid=1.07391 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        94. 2024.06.19 00:13.926 Ask=1.0739 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        95. 2024.06.19 00:13.066 Ask=1.07394 Bid=1.07394 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        96. 2024.06.19 00:13.189 Ask=1.07391 Bid=1.07391 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        97. 2024.06.19 00:13.751 Ask=1.07394 Bid=1.07394 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        98. 2024.06.19 00:13.817 Ask=1.07398 Bid=1.07398 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        99. 2024.06.19 00:13.314 Bid=1.07398 (Info tick)
2024.06.19 21:21:58.218 Test (EURUSD,M1)        100. 2024.06.19 00:13.603 Bid=1.07398 (Info tick)
 
fxsaber #:

1e8 тиков по символу вполне может быть на сервере. Возможно, упираетесь в RAM, либо в TimeOut, потому что закачать столько быстро не получится.

Сегодня с первого раза всё загрузилось. Видимо, вчера запустился процесс подкачки тиковых данных. Минут двадцать потыкался в него, не загрузилось, задал вопрос и пошёл спать. А сегодня всё быстро прошло - секунд 10 примерно.

Только вот тики не на всю историю, и начало с 2011 года:

CopyTicks (EURUSD,M1)   EURUSD: received 100000000 ticks in 10688 ms
CopyTicks (EURUSD,M1)   Last tick time = 2016.02.29 09:54:41.000
CopyTicks (EURUSD,M1)   First tick time = 2011.12.19 00:00:08.000
а почему?
 
Alexey Viktorov #:

Странно. А теперь скопировал все тики

Первый запуск инициировал процесс подкачки

 
Artyom Trishkin #:

Только вот тики не на всю историю, и начало с 2011 года:

а почему?

FirstTick - первый тик в БД. LastTick - 100 милионный тик в БД.

 
fxsaber #:

FirstTick - первый тик в БД. LastTick - 100 милионный тик в БД.

А закачиваемые тики с иным временем, не попадают в БД разве? Запрос-то был с начала эпохи. 
 
Artyom Trishkin #:
А закачиваемые тики с иным временем, не попадают в БД разве? Запрос-то был с начала эпохи. 

Абсолютно не понимаю причин возникновения этого вопроса, кроме, возможно, троллинга.

 
Artyom Trishkin #:

Первый запуск инициировал процесс подкачки

Да, я чуть позже, когда ты уже спал, понял. Ведь мы часто сначала пишем, а потом думаем…

 
fxsaber #:

Абсолютно не понимаю причин возникновения этого вопроса, кроме, возможно, троллинга.

Это был серьëзно заданный вопрос. Возможно, из-за моего недопонимания. Какой троллинг?