Смена extern параметров стратегии во время работы

 
Т.е если советник работает в реале и мы меняем параметры советника - то как мы можем в программе это отследить.
 
ShestkoFF писал (а) >>
Т.е если советник работает в реале и мы меняем параметры советника - то как мы можем в программе это отследить.

extern int TP = 100;
 
int C_TPSLl(string sSymbol,int iBend)
 
{
   double HL;
   HL = 0;
   for ( int iB = 1; iB < iBend; iB++)
   {
    HL = HL + (iHigh(sSymbol,PERIOD_D1,iB ) - iLow( sSymbol,PERIOD_D1,iB )) / MarketInfo(sSymbol,MODE_POINT);
   }
   return( HL / iBend ); 
}
static datetime saveTimeD1 = 0;
 
void init()
{
 saveTimeD1 = iTime( Symbol() , PERIOD_D1,0);
 TP = TPSLl ( Symbol() ,  50 ); // меняем EXTERN
}
 
void start ()
{
   int sTP;
   if ( saveTimeD1 != iTime( Symbol() ,PERIOD_D1,0) )
   {
      if ( sTP <> TPSLl ( Symbol() ,  50 ) )
          TP = sTP;  // вот мы и отследили смену ТП который задавался как EXTERN
     saveTimeD1 = iTime( Symbol() , PERIOD_D1,0);
   }
}
 

Вы немного меня не поняли. Я имел ввиду смену параметров из интерфейса MT.
Можно конечно каждый раз в функции start их сравнивать.
Ваш пост меня натолкнул на мысль, что это можно делать каждый час, чтобы не грузить советника или поставить
булеву переменную, которую нужно будет менять на true.

 
ShestkoFF писал (а) >>

Вы немного меня не поняли. Я имел ввиду смену параметров из интерфейса MT.
Можно конечно каждый раз в функции start их сравнивать.
Ваш пост меня натолкнул на мысль, что это можно делать каждый час, чтобы не грузить советника или поставить
булеву переменную, которую нужно будет менять на true.

т е Вы имеете ввиду ситуацию

у ВАС есть параметры

а при пуске из интерфейса КТО ТО зачем то поменял их! ?

---

и эксперт при пуске что бы это как то решил?

---

каждый час или 4 часа или еще как то

а можно проверять еще истинность параметров при ПРИНЯТИИ торгового решения!

---

хотя а вдруг те параметры человек ВЫСТРАДАЛ и они более правильные




У меня давно витает МЫСЛЬ практически с самого начала ПАРАМЕТРЫ НАДО МЕНЯТЬ по рыночной ситуации

они не могут быть статичны

самый идеальный случай это ПОДБОР ПАРАМЕТРОВ по ситуации на рынке!

я привел код расчета параметра ТЕЙКА - в зависимости от средне дневного хода по рыночной ситуации

 
пользуйтесь ими как обыкновенными переменными и все. Можно даже значения менять, только в окне свойств он не изменятся если открыть и посмотреть. А если окно сойств закрыть, то снова будет значени, которые стояло в окне.
 
YuraZ писал (а) >>

т е Вы имеете ввиду ситуацию

у ВАС есть параметры

а при пуске из интерфейса КТО ТО зачем то поменял их! ?

---

и эксперт при пуске что бы это как то решил?

---

каждый час или 4 часа или еще как то

а можно проверять еще истинность параметров при ПРИНЯТИИ торгового решения!

---

хотя а вдруг те параметры человек ВЫСТРАДАЛ и они более правильные




У меня давно витает МЫСЛЬ практически с самого начала ПАРАМЕТРЫ НАДО МЕНЯТЬ по рыночной ситуации

они не могут быть статичны

самый идеальный случай это ПОДБОР ПАРАМЕТРОВ по ситуации на рынке!

я привел код расчета параметра ТЕЙКА - в зависимости от средне дневного хода по рыночной ситуации


Не при пуске интерфейса, а в момент работы советника(вы же в своей функции в процессе работы меняете параметр TP, только програмно)
Я может быть плохо сформулировал вопрос. Скажем по другому.

Что произойдет если сменить параметры из интерфейс во время работы советника?:
вызовется ли функция init(), т.е произойдет ли перезапуск советника?

 
ShestkoFF писал (а) >>

Не при пуске интерфейса, а в момент работы советника(вы же в своей функции в процессе работы меняете параметр TP, только програмно)
Я может быть плохо сформулировал вопрос. Скажем по другому.

Что произойдет если сменить параметры из интерфейс во время работы советника?:
вызовется ли функция init(), т.е произойдет ли перезапуск советника?

нет конечно не произойдет,

потом если ваш робот меняет параметры то выже его писали, не сам же он решил их поменять

обрабатывайте такую ситауцию,

только как было замечено в окне задания параметров значения будут старые, которые были выставлены при запуске

 
А я для оперативного управления советником пользуюсь глобальными переменными, если они равны 0, то он берёт значения из нитерфейса(которые задаются при его запуске), а если я хочу изменить его работу, например при выходе новостей, то задаю нужные значения в глобальных переменных.
 
Никто так развернуто и не ответил на мой вопрос.
В приложенном файле находится мини советник, который нужно повесить на демо реал.
У вас должен будет появиться алерт с надписью "Init: a=10". Также каждый тик будет появляться новый алерт
в котором будет выводится "Start: a=10".
Теперь если мы сменим из интерфейса приложения какой нибудь параметр произойдет сначала деинициализация, а потом

инициализация советника.

Меням параметр -> Порождаем вызов функций deinit(), init().
В документация я по этому поводу ничего не нашел.

Файлы:
inittest.mq4  2 kb
 
ShestkoFF писал (а) >>
Никто так развернуто и не ответил на мой вопрос.
В приложенном файле находится мини советник, который нужно повесить на демо реал.
У вас должен будет появиться алерт с надписью "Init: a=10". Также каждый тик будет появляться новый алерт
в котором будет выводится "Start: a=10".
Теперь если мы сменим из интерфейса приложения какой нибудь параметр произойдет сначала деинициализация, а потом

инициализация советника.

Меням параметр -> Порождаем вызов функций deinit(), init().
В документация я по этому поводу ничего не нашел.

1. деинициализация и инициализация - функции написанные Вами.

2. изменение переменных extern - изменяет только их значение, новые значения будут использоваться дальше в теле эксперта.

Причина обращения: