Выключите терминал с выключенной кнопкой "Автоторговля". В итоге сохранится именно это состояние. При следующих запусках, если работа терминала завершится аварийно, он не перезапишет состояние этой кнопки. В итоге новый запуск произойдет с выключенной кнопкой.
А при каждом штатном выключении терминала просто не забывайте выключать кнопку.
Выключите терминал с выключенной кнопкой "Автоторговля". В итоге сохранится именно это состояние. При следующих запусках, если работа терминала завершится аварийно, он не перезапишет состояние этой кнопки. В итоге новый запуск произойдет с выключенной кнопкой.
А при каждом штатном выключении терминала просто не забывайте выключать кнопку.
хм.. не понял...
1. я выключаю терминал с отжатой кнопкой (Автоторговля)
2. я включаю терминал. Что бы запустить советник, надо нажать кнопку.
3. Кнопка нажата. Советник работает. Терминал выключается аварийно и ... ??
3. Кнопка нажата. Советник работает. Терминал выключается аварийно и ... ??
И не может записать новое состояние кнопки (включено). В файле конфигурации по-прежнему записано состояние "Выключено".
Я решил эту проблему программно. При запуске терминала, или установке советника на график, он блокируется программно.
Чтобы активировать советник, нужно имитировать изменение параметров советника: Контекстное меню -> Советники -> Свойства -> Ок
// блокировка эксперта при старте bool ExpertBlocked = true; ... //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { ... // экперт активируется при изменении параметров if ( UninitializeReason() == REASON_PARAMETERS ) { ExpertBlocked = false; } ... //---- return( INIT_SUCCEEDED ); }
Далее, разрешаем в программе совершать торговые операции, если ( !ExpertBlocked )
Scriptong, Спасибо! Теперь понял. Но тут есть минус: при штатном закрытии терминала не забывать отжимать кнопку.
Mislaid, красиво!
Я вчера вечером реализовал это через кнопку:
int OnInit()
{
...
ObjectCreate(0, "button", OBJ_BUTTON, 0,0,0);
ObjectSetInteger(0, "button", OBJPROP_XDISTANCE, 300);
ObjectSetInteger(0, "button", OBJPROP_YDISTANCE, 0);
ObjectSetInteger(0, "button",OBJPROP_XSIZE, 100);
ObjectSetInteger(0, "button",OBJPROP_YSIZE, 50);
ObjectSetString(0, "button", OBJPROP_TEXT, "Старт!");
ObjectSetInteger(0, "button", OBJPROP_SELECTABLE, false);
ChartRedraw();
g_work = false;
return(INIT_SUCCEEDED);
}
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
if (id == CHARTEVENT_OBJECT_CLICK)
if (sparam == "button")
{
send_order();
g_work = true;
ObjectDelete(0, "button");
ChartRedraw();
}
}
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Друзья!
Бывает так, что терминал с работающим советником выключается аварийно. При повторном запуске терминала тут же включается и советник. Как сделать так, чтобы терминал при перезапуске не включал автоторговлю??
Заранее спасибо