Перенастройка эксперта

 
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?   
 
FION:
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?
Подробнее. Как изменяешь параметры? Вообще-то, если эксперт работает на графике, то по открытии окна параметров он тормозится, а после нажатия на ОК - переинициализируется с новыми параметрами.
 
dmitriy писал (а):
FION писал (а):
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?
Подробнее. Как изменяешь параметры? Вообще-то, если эксперт работает на графике, то по открытии окна параметров он тормозится, а после нажатия на ОК - переинициализируется с новыми параметрами.

Правой кнопкой по значку советника вызываю меню, оттуда - советники - свойства , меняю параметр первый раз , все принимает нормально, затем после того как  функция с этим параметром отработала  во время трейда , хочу снова изменить параметр по-новой ,но сохраняется прежнее значение. Приходится переустанавливать эксперта по новой.
 
FION:
dmitriy:
FION:
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?
Подробнее. Как изменяешь параметры? Вообще-то, если эксперт работает на графике, то по открытии окна параметров он тормозится, а после нажатия на ОК - переинициализируется с новыми параметрами.

Правой кнопкой по значку советника вызываю меню, оттуда - советники - свойства , меняю параметр первый раз , все принимает нормально, затем после того как функция с этим параметром отработала во время трейда , хочу снова изменить параметр по-новой ,но сохраняется прежнее значение. Приходится переустанавливать эксперта по новой.
"Этого не может быть, потому что этого не может быть никогда" ©Не помню.

Может, в коде эксперта в функции deinit прописано сохранение параметров, если UninitializeReason равно REASON_PARAMETERS?
 

Вот кусочек кода для сигнализации уравня профита , изменяю параметр Profit на ноль - звякает также.
функция deinit() - пустая.

extern int Profit = 0; // минипрофит
extern bool UseSound = True;

bool ProfitMode=false;
string NameFileSound_4 = "connect.wav";
//+------------------------------------------------------------------+
void start()
{
if (Bars<100 || IsTradeAllowed()==false) return;

if (OrdersTotal()>0)
{
ProfitSignal();

if (ProfitMode) { if (UseSound ) PlaySound(NameFileSound_4); }
}
return;
}
//+------------------------------------------------------------------+
void ProfitSignal()
{

int i,Pos,Error,Total;
if(Profit<1)return;
//----
Total=OrdersTotal();
if(Total>0)
{
for(i=Total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
{
if (OrderSymbol()==Symbol()) {

Pos=OrderType();

if(Pos==OP_BUY) { ProfitMode=( Bid>=OrderOpenPrice()+Profit*Point );}

if( Pos==OP_SELL){ProfitMode=( Ask<=OrderOpenPrice()-Profit*Point );}

}
}
}
}
}
//+------------------------------------------------------------------+

 

Входные параметры, переменные класса extern можно менять внутри, но эти изменения действуют только в "текущем сеансе". Внешние переменные задаются извне. То есть из таблицы свойств или при загрузке описания графика с диска из блока <expert></expert>

 
stringo писал (а):

Входные параметры, переменные класса extern можно менять внутри, но эти изменения действуют только в "текущем сеансе". Внешние переменные задаются извне. То есть из таблицы свойств или при загрузке описания графика с диска из блока <expert></expert>

Что нужно понимать под внешними переменными - можно ли в одном сеансе несколько раз изменять
значения переменных класса "extern". В моем случае переменная "Profit" именно "extern int" задаваемая как внешняя переменная в таблице параметров эксперта при установке на график.
 
Вы можете менять extern переменные в процессе расчёта внутри программы. Однако эти изменённые изнутри значения нигде не зафиксируются. Только если Вы сами предпримете меры по сохранению-извлечению этих значений.
 
stringo писал (а):
Вы можете менять extern переменные в процессе расчёта внутри программы. Однако эти изменённые изнутри значения нигде не зафиксируются. Только если Вы сами предпримете меры по сохранению-извлечению этих значений.
Что мне нужно изменить в коде чтоб переменная "extern", которую я меняю несколько раз в течение одного сеанса в окне настроек советника, корректно воспринималась программой.
 

В коде менять ничего не нужно. А зачем? Приведите пример, когда переменная класса extern некорректно воспринимается программой.

 
stringo писал (а):

В коде менять ничего не нужно. А зачем? Приведите пример, когда переменная класса extern некорректно воспринимается программой.

Я поправил вышеприведенный код до работоспособного состояния, так вот если внутри  сеанса сначала выставить значение  "extern int    Profit  = 5;" , а затем снова выставить равно 0 , звякает как прежде на 5 пипсах.
Причина обращения: