Помогите "чайнику"!

 

Нужно чтобы после выполнения определенного условия, советник не возобнавлял работу без повторного присоединения к графику.

 

это скрипт надо, а не эксперт .

 
portos писал(а) >>

Нужно чтобы после выполнения определенного условия, советник не возобнавлял работу без повторного присоединения к графику.

Задать глобальную переменную, проинициализировать ее например true. В начале функции start проверять ее на истинность, иначе return нах. После выполнения "определенного" условия присвоить ей false. Примерно так.

 
Figar0 >>:

Задать глобальную переменную, проинициализировать ее например true. В начале функции start проверять ее на истинность, иначе return нах. После выполнения "определенного" условия присвоить ей false. Примерно так.

Тож вариант ... ИМХО проще скрипт )

 
BARS писал(а) >>

Тож вариант ... ИМХО проще скрипт )

Вы вообще читали что человеку нужно? Причем тут скрипт??????

 
Figar0 >>:

Вы вообще читали что человеку нужно? Причем тут скрипт??????

Читал цитирую :

"Нужно чтобы после выполнения определенного условия, советник не возобнавлял работу без повторного присоединения к графику " Разве это не та же самая суть что у скрипта ( выполнил работу и свалил с графика )  ???

ПОДЧЁРКИВАЮ : не возобнавлял работу без повторного присоединения к графику.

:-)

 
BARS писал(а) >>

Читал цитирую :

"Нужно чтобы после выполнения определенного условия, советник не возобнавлял работу без повторного присоединения к графику " Разве это не та же самая суть что у скрипта ( выполнил работу и свалил с графика ) ???

ПОДЧЁРКИВАЮ : не возобнавлял работу без повторного присоединения к графику.

:-)

А выполняться каждый тик до наступления условий, например открывать/закрывать/вести позиции тоже скрип будет?) И имеющуйся у человека советник проще переделать в скрипт чем ввести одну переменную??:)

 
Figar0 >>:

А выполняться каждый тик до наступления условий, например открывать/закрывать/вести позиции тоже скрип будет?) И имеющуйся у человека советник проще переделать в скрипт чем ввести одну переменную??:)

Короче я предложил скрипт... ты предложил переменную ...

Пускай автор решает что ему подходит. И не будем сорится :-)

 
Figar0 >>:

Задать глобальную переменную, проинициализировать ее например true. В начале функции start проверять ее на истинность, иначе return нах. После выполнения "определенного" условия присвоить ей false. Примерно так.

Поддерживаю! Например, реализовать так:

if (! vkl)

  {

     Comment("Советник отключен");

  }

while(! vkl)
  {
     Sleep(900000);
  }


И советник по наступлению условия в бесконечном цикле ожидания.

Недостаток: При переключении графика на другой таймфрейм советник переинициализируется и значение переменной теряется. Поэтому, на графике где сидит советник нельзя играться (переключаться) с таймфреймом.

 
portos писал (а) >>

Нужно чтобы после выполнения определенного условия, советник не возобнавлял работу без повторного присоединения к графику.

Может быть так попробовать?

bool EAEnabled;
//==========
int init()
  {
  if (!GlobalVariableCheck("gEAEnabled")) GlobalVariableSet("gEAEnabled", true);
  EAEnabled = GlobalVariableGet("gEAEnabled");
  return(0);
  }
//==========
int deinit()
  {
  int UR = UninitializeReason();
  if (UR == REASON_CHARTCLOSE || UR == REASON_REMOVE) GlobalVariableSet("gEAEnabled", true);
  return(0);
  }
//==========
int start()
  {
  if (!EAEnabled) return(0);
  //==========
  if (/* Условие остановки эксперта */)
    {
    EAEnabled = false;
    GlobalVariableSet("gEAEnabled", false);
    return(0);
    }
  //==========
  return(0);
  }
 
BARS писал(а) >>

это скрипт надо, а не эксперт .

Т.е. скрипт фактически от советника ниче не отличается. Может также работать долгое время, открывать и закрывать ордера?

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