오류, 버그, 질문 - 페이지 2440

 
fxsaber :

녹음에 더 관심이 많다. 형식을 알면 읽겠습니다.

 //+------------------------------------------------------------------+
//| заголовок кеша                                                   |
//+------------------------------------------------------------------+
struct TestCacheHeader
  {
   UINT               version ;                 // версия кеша
   wchar_t           copyright [ 64 ];           // копирайт
   UINT              header_size;             // размер заголовка
   UINT              record_size;             // размер кешируемой записи (TestCacheRecord с буфером параметров)
   //---
   wchar_t           expert_name[ 64 ];         // имя эксперта
   wchar_t           expert_path[ 128 ];       // имя эксперта с путём от MQL5
   wchar_t           server[ 64 ];             // источник истории (торговый сервер)
   wchar_t           symbol[ 32 ];             // символ тестирования
   UINT16            period;                 // период чарта
   INT64             date_from;               // дата начала данных в настройках тестирования
   INT64             date_to;                 // конечная дата в настройках тестирования
   INT64             date_forward;           // конечная дата соответствующего форварда
   int                opt_mode;               // режим оптимизации (0-полная оптимизация, 1-генетика, 2 или 3-форвард)
   int                ticks_mode;             // режим генерации тиков
   int                last_criterion;         // критерий оптимизации при последнем сеансе
   DWORD             msc_min;                 // минимальное время выполнения в миллисекундах
   DWORD             msc_max;                 // максимальное время выполнения в миллисекундах
   DWORD             msc_avg;                 // среднее время выполнения в миллисекундах
   int                common_reserve[ 16 ];
   //---
   wchar_t           group[ 80 ];               // имя группы + hedging/netting
   wchar_t           trade_currency[ 32 ];     // валюта депозита
   int                trade_deposit;           // начальный депозит
   int                trade_condition;         // режим работы торговли (0-без задержек, -1-произвольная задержка, nnn-количество миллисекунд)
   int                trade_leverage;         // плечо
   int                trade_hedging;           // 1 - netting, 2 - hedging
   int                trade_currency_digits;
   int                trade_reserve[ 6 ];
   //---
   char               hash_ex5[ 16 ];           // контрольная сумма скомпилированного эксперта
   UINT              parameters_size;         // размер буфера параметров эксперта
   UINT              parameters_total;       // количество параметров
   UINT              opt_params_size;         // размер буфера оптимизируемых параметров эксперта
   UINT              opt_params_total;       // количество оптимизируемых параметров
   UINT              dwords_cnt;             // размер номера прохода большой генетики
   UINT              snapshot_size;           // размер снапшота для тотальной оптимизации и для форварда после тотальной оптимизации
   UINT              passes_total;           // общее количество проходов оптимизации (для генетической оптимизации 0)
   UINT              passes_passed;           // количество пройденных проходов
   // далее следуют выставленные параметры эксперта (в т.ч. строковые) в структуре TestCacheInput
   //--- конец заголовка. далее следуют записи о каждом проходе
  };
//+------------------------------------------------------------------+
//| входные параметры тестирования                                   |
//+------------------------------------------------------------------+
struct TestCacheInput
  {
   wchar_t           name[ 64 ];
   int                flag;                     // оптимизируемый параметр
   int                type;                     // тип TYPE_XXX
   int                digits;                   // количество знаков после запятой
   int                offset;                   // смещение в буфере параметров
   int                size;                     // размер значения параметра в буфере
   //--- 0-start,1-step,2-stop
   union { INT64 integers[ 3 ]; double numbers[ 3 ]; };
  };
   m_header.header_size= sizeof (TestCacheHeader)+m_inputs.Total()* sizeof (TestCacheInput)+m_header.parameters_size;
//--- кешируемая запись содержит номер прохода (при генетике - номер по порядку), структуру результатов тестирования (если математика, то 1 double), буфер оптимизируемых параметров и генетический проход
   m_header.record_size= sizeof (INT64)+m_header.opt_params_size;
   if (m_mathematics)
      m_header.record_size+= sizeof ( double );
   else
      m_header.record_size+= sizeof (ExpTradeSummary);
   if (m_header.dwords_cnt> 1 )
      m_header.record_size+=m_header.dwords_cnt* sizeof (DWORD);
   else
     {
       if (m_genetics)
         m_header.record_size+= sizeof (INT64);
     }
//+------------------------------------------------------------------+
//| Структура для статистики торговли                                |
//+------------------------------------------------------------------+
struct ExpTradeSummary
  {
   double             initial_deposit;     // начальный депозит
   double             withdrawal;           // снято средств
   double             profit;               // общая прибыль (+)
   double             grossprofit;         // общий плюс
   double             grossloss;           // общий минус
   double             maxprofit;           // максимально прибыльная сделка
   double             minprofit;           // максимально убыточная сделка
   double             conprofitmax;         // прибыль максимальной последовательности прибыльных сделок
   double             maxconprofit;         // максимальная прибыль среди последовательностей
   double             conlossmax;           // убыток максимальной последовательности убыточных сделок
   double             maxconloss;           // максимальный убыток среди последовательностей
   double             balance_min;         // минимальное значение баланса (для расчёта абсолютной просадки)
   double             maxdrawdown;         // максимальная просадка по балансу
   double             drawdownpercent;     // отношение максимальной просадки по балансу к её пику
   double             reldrawdown;         // максимальная относительная просадка по балансу в деньгах
   double             reldrawdownpercent;   // максимальная относительная просадка по балансу в процентах
   double             equity_min;           // минимальное значение equity (для расчёта абсолютной просадки по equity)
   double             maxdrawdown_e;       // максимальная просадка по equity
   double             drawdownpercent_e;   // отношение максимальной просадки по equity к её пику (+)
   double             reldrawdown_e;       // максимальная относительная просадка по equity в деньгах
   double             reldrawdownpercnt_e; // максимальная относительная просадка по equity в процентах
   double             expected_payoff;     // матожидание выигрыша (+)
   double             profit_factor;       // показатель прибыльности (+)
   double             recovery_factor;     // фактор восстановления (+)
   double             sharpe_ratio;         // коэффициент Шарпа (+)
   double             margin_level;         // минимальный уровень маржи
   double             custom_fitness;       // пользовательский фитнесс - результат OnTester (+)
   int                deals;               // общее количество сделок
   int                trades;               // количество сделок out/inout
   int                profittrades;         // количество прибыльных
   int                losstrades;           // количество убыточных
   int                shorttrades;         // количество шортов
   int                longtrades;           // количество лонгов
   int                winshorttrades;       // количество прибыльных шортов
   int                winlongtrades;       // количество прибыльных лонгов
   int                conprofitmax_trades; // максимальная последовательность прибыльных сделок
   int                maxconprofit_trades; // последовательность максимальной прибыли
   int                conlossmax_trades;   // максимальная последовательность убыточных сделок
   int                maxconloss_trades;   // последовательность максимального убытка
   int                avgconwinners;       // среднее количество последовательных прибыльных сделок
   int                avgconloosers;       // среднее количество последовательных убыточных сделок
  };
추신. 형식이 변경될 수 있습니다. 이 형식은 버전 514에 해당합니다.
 
Slava :
추신. 형식이 변경될 수 있습니다. 이 형식은 버전 514에 해당합니다.

정말 감사합니다! 작업이 준비되면 opt로 게시하겠습니다.

위협 전문가 경로 길이는 64자에 불과합니다.
 
Slava :
아니다

그렇다면 그러한 상황에서 어떻게 행동해야 할까요?

소스에 까다로운 조건이 있습니다. 최적성은 탐색을 통해서만 계산할 수 있습니다. 변경하고 백테스트 후 파일에서 결과를 확인합니다.

조건이 다른 많은 파일을 가져와야 합니다. 그리고 비교해보세요.

소스가 변경된 경우 다른 파일 이름을 생성하는 방법은 무엇입니까?


PS 이거 없으면 어떻게 빠져나갈지 모르겠어

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

슬라바 , 2019.04.19 15:11

   char               hash_ex5[ 16 ];           // контрольная сумма скомпилированного эксперта
 
앞으로 3일 동안 포럼 게시물이 사이트 검색에 포함되지 않는 이유는 무엇입니까?
 

이와 같은 결과

다음과 같은 방식으로 달성됩니다.

하나를 제외한 모든 에이전트가 비활성화됩니다. 그리고 5750개 옵션의 전체 목록이 시작됩니다. 그런 다음 다른 모든 로컬 에이전트가 켜집니다.

분명히 작업이 고르지 않게 분배되었습니다. 그리고 총 최적화 시간은 가능한 것보다 더 길어질 것입니다.

 

빌드 2025

도움말에 따르면 GlobalVariableDel() 함수 의 반환 유형은 bool입니다.

그러나 Ctrl+Shift+Space를 누를 때:

그리고 빌드할 때 경고가 발생합니다.


 
초안 기사에서 "검토를 위해 제출" 버튼을 찾을 수 없습니다. 말해 주세요.
 
fxsaber :

PS 이거 없으면 어떻게 빠져나갈지 모르겠어

ex5 파일의 MD5일까요?
아마도 ex5 파일이 내부에 저장되어있을 것입니다. 16 진수 편집기로보십시오 ...

 
Yousufkhodja Sultonov :
초안 기사에서 "검토를 위해 제출" 버튼을 찾을 수 없습니다. 말해 주세요.
 
Artyom Trishkin :

Artem 감사합니다.