- Замена оператора ... Как реализовать ?
- Пропал день в тестере (208 от 01.08.2007)
- Вопрос по котировкам.
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?
Правой кнопкой по значку советника вызываю меню, оттуда - советники - свойства , меняю параметр первый раз , все принимает нормально, затем после того как функция с этим параметром отработала во время трейда , хочу снова изменить параметр по-новой ,но сохраняется прежнее значение. Приходится переустанавливать эксперта по новой.
При изменении параметров в процессе работы эксперта на графике , в силе остаются параметры установленные при первом запуске. Вопрос - так должно быть , или я что-то неверно делаю?
Правой кнопкой по значку советника вызываю меню, оттуда - советники - свойства , меняю параметр первый раз , все принимает нормально, затем после того как функция с этим параметром отработала во время трейда , хочу снова изменить параметр по-новой ,но сохраняется прежнее значение. Приходится переустанавливать эксперта по новой.
Может, в коде эксперта в функции 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>
Входные параметры, переменные класса extern можно менять внутри, но эти изменения действуют только в "текущем сеансе". Внешние переменные задаются извне. То есть из таблицы свойств или при загрузке описания графика с диска из блока <expert></expert>
значения переменных класса "extern". В моем случае переменная "Profit" именно "extern int" задаваемая как внешняя переменная в таблице параметров эксперта при установке на график.
Вы можете менять extern переменные в процессе расчёта внутри программы. Однако эти изменённые изнутри значения нигде не зафиксируются. Только если Вы сами предпримете меры по сохранению-извлечению этих значений.
В коде менять ничего не нужно. А зачем? Приведите пример, когда переменная класса extern некорректно воспринимается программой.
В коде менять ничего не нужно. А зачем? Приведите пример, когда переменная класса extern некорректно воспринимается программой.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования