Проблема с чтением *.set в советнике - страница 2

 

Я, наверно, неточно описал. 

1   пишу и компилирую советник

2   оптимизирую его на заданном временном интервале истории с заданными диапазонами входных параметров

3   с помощью диалогового окна "Свойства советника->Входные параметры" сохраняю эти параметры в сет

4    найденные оптимальные параметры, вставленные прямо в код, дают тот же результат, что и оптимизатор. Если же загружать их из созданного сета, то результат нулевой. Это видно из приведённого скрина, где журнал показывает, что параметрам присваивается значение 0 (выделено цветом).

 
То есть получается, что при запуске советника входные параметры не инициализируются значениями из сета.
 

Может ошибка в коде:


input double   input_SL;                // stop loss

input double   input_TP;                // take profit


//+------------------------------------------------------------------+

//| Expert initialization function                                   |

//+------------------------------------------------------------------+

int OnInit()

  { 

   sl_sell=input_SL;  

   tp_sell=input_TP;

   sl_buy=input_SL;  

   tp_buy=input_TP;

   ****************************


Если написать так, то всё работает

int OnInit()

  { 

   sl_sell=100;  

   tp_sell=200;

   sl_buy=100;  

   tp_buy=200;

   ****************************

 
Mikhail Ponomarev #:

Может ошибка в коде:


input double   input_SL;                // stop loss

input double   input_TP;                // take profit

Нужно обязательно инициализировать значение входного параметра:

input double   input_SL = 100.0;                // stop loss

input double   input_TP = 200.0;                // take profit
 
Всё по-прежнему глухо. Даже при инициализации инпутов журнал тестера выдаёт что их значения установлены в ноль.
 
Mikhail Ponomarev #:
Всё по-прежнему глухо. Даже при инициализации инпутов журнал тестера выдаёт что их значения установлены в ноль.

Сделали, как я ранее сказал?

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

Проблема с чтением *.set в советнике

Aleksey Vyazmikin, 2023.08.14 21:30

Предположу, что Вы вводите параметры и сразу сохраняете.

Это известный баг.

Попробуйте ввести нужные настройки, запустить одиночный проход и потом сохранить.

Для схожих целей я меняю советник, тогда настройки сохраняются.


 
Mikhail Ponomarev #:
То есть получается, что при запуске советника входные параметры не инициализируются значениями из сета.

Так покажите, как делаете. Я вот сделал, как описываете, все нормально.

Использовал код:

input double   input_SL;                // stop loss
input double   input_TP;                // take profit

int OnInit()
{ 
   
   Print("SL: ", input_SL);
   Print("TP: ", input_TP);
    
   return INIT_SUCCEEDED;
}

Результат (клик на рисунке):