エラー、バグ、質問 - ページ 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;       // среднее количество последовательных убыточных сделок
  };
PS.フォーマットは変更になる可能性があります。このフォーマットは、バージョン514に対応します。
 
Slava:
PS.フォーマットは変更になる可能性があります。このフォーマットは、バージョン514に対応します。

本当にありがとうございました。オプトジョブが出来たら載せますね。

SZZ Expert Advisorへのパス長は64文字のみ - 足りない?
 
Slava:
いいえ

では、そのような状況でどう行動すればいいのか。

ソースにトリッキーな条件があり、その最適性は手探りでしか計算できないのですが、それを変更し、バックテスト後にファイルに結果が表示されます。

条件の違うファイルをたくさん取りたい。そして、比べてみてください。

ソースが変更された場合、別のファイル名を作成するにはどうすればよいですか?


それがないと、どうしたらそういう状況を打開できるのかわからないんです。

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

バグ、バグ、質問

スラバ さん 2019.04.19 15:11

   char              hash_ex5[16];           // контрольная сумма скомпилированного эксперта
 
今後3日間のフォーラムの投稿がサイト内検索に表示されないのは、どういう理由でしょうか?
 

この結果

は以下のように実現されます。

1人を除くすべてのエージェントが非活性化されました。そして、5,750通りのバリエーションが実行されます。そして、他のすべてのローカルAgentをオンにします。

タスクの配分が偏っているような気がします。そして、トータルの最適化時間は、高くなる一方です。

 

2025年を築く。

ヘルプによると、GlobalVariableDel()関数の 戻り値はbool型です。

しかし、Ctrl+Shift+Spaceを押したとき。

そして、組み立て時に警告メッセージが出ます。


 
下書き記事の「チェックに送信」ボタンが見当たらない。ヒントをお願いします。
 
fxsaber:

どうしたらこんな状況から抜け出せるのかわからない

ex5ファイルからMD5かな?
ex5ファイルに格納されている可能性がありますので、hexエディタで検索してください。

 
Yousufkhodja Sultonov:
下書き記事の「チェックに送信」ボタンが見当たらない。ヒントをお願いします。
 
Artyom Trishkin:

アルテムさん、ありがとうございます。