Спасибо за статью. Отдельная благодарность, за ссылку на библиотеку изменения состояний эксперта. Работа через шаблоны - действительно очень оригинальное решение.
Но честно говоря, увидев заголовок думал что будет что то про клиент сервер или сокеты...
Если у вас несколько счетов, то вы устанете везде ставить отложенники.
Где то на форуме лежала библиотека для взаимодействия через телеграмм. Там возможностей больше, а все команды можно выставлять нажатием заранее подготовленных кнопок в боте.
Спасибо за статью. Отдельная благодарность, за ссылку на библиотеку изменения состояний эксперта. Работа через шаблоны - действительно очень оригинальное решение.
Но честно говоря, увидев заголовок думал что будет что то про клиент сервер или сокеты...
Если у вас несколько счетов, то вы устанете везде ставить отложенники.
Где то на форуме лежала библиотека для взаимодействия через телеграмм. Там возможностей больше, а все команды можно выставлять нажатием заранее подготовленных кнопок в боте.
Насколько мне известно, по поводу управления через телеграмм в планах есть подготовка статьи и даже назначен автор. Возможна новая статья Вам будет полезней.
#define private public #include <fxsaber\Expert.mqh> // https://www.mql5.com/ru/code/19003 #undef private #define STRING_END "\r\n" #define EXPERT_BEGIN ("<expert>" + STRING_END) #define EXPERT_END ("</expert>" + STRING_END) #define EXPERT_NAME "name="
Таким образом, для включения/выключения советника нам достаточно переписать файл шаблона, изменив в нем флаг expertmode на нужное нам значение и попутно удалив скрытые объекты.
Про данный флаг не знал, как и не задумывался про тонкости работы с объектами, Спасибо!
Этот код
string temp=EXPERT::TemplateToString(i_chart,true); if(temp==NULL) { i_chart=ChartNext(i_chart); continue; } //--- temp=EXPERT::StringBetween(temp,EXPERT_BEGIN,EXPERT_END); if(temp==NULL) { i_chart=ChartNext(i_chart); continue; }
будет улавливать не только советники, но и скрипты. Поэтому, наверное, лучше так
if(!EXPERT::Is(i_chart)) { i_chart=ChartNext(i_chart); continue; } string temp=EXPERT::TemplateToString(i_chart,true);
При этом шаблоны будут сохраняться только там, где нужно.
ЗЫ Намеренно FileDelete не делал, чтобы всегда можно было посмотреть последний сгенерированный шаблон.
Можно использовать такой прием, чтобы не менять оригинальный исходник
Интересный прием, раньше не задумывался над таким способом. Спасибо.
Этот код
будет улавливать не только советники, но и скрипты. Поэтому, наверное, лучше так
При этом шаблоны будут сохраняться только там, где нужно.
В коде намеренно TemplateToString вызывал с флагом true. Возможно Вы забыли, но в теле функции с флагом true проверяется наличие эксперта на графике, вызовом метода Is.
static string TemplateToString( const long Chart_ID = 0, const bool CheckExpert = false ) { short Data[]; return(((!CheckExpert || EXPERT::Is(Chart_ID)) && ::ChartSaveTemplate((ulong)Chart_ID, PATH + FILENAME) && (::FileLoad(FILENAME, Data) > 0)) ? ::ShortArrayToString(Data) : NULL); }
Поэтому оба кода должны работать одинаково.
А в целом, спасибо Вам за библиотеку и комментарии.
С уважением,
Дмитрий.
В коде намеренно TemplateToString вызывал с флагом true. Возможно Вы забыли, но в теле функции с флагом true проверяется наличие эксперта на графике, вызовом метода Is.
Действительно, забыл.
А в целом, спасибо Вам за библиотеку и комментарии.
Рад, что разобрались и дополнили по существу. Действительно, не мешало бы скорректировать с учетом обозначенных Вами нюансов.
Бывает такое, что VPS (или комп у Вас дома) с советником на какое-то время стал вне сети по техническим причинам. Когда появится в сети - неизвестно, но Вам нужно, например, чтобы торговля не велась, т.к. знаете, что могут быть еще перебои. В таком случае предложенное удаленное управление позволяет много больше, чем Ваш вариант.
ЗЫ А ведь еще бывают VPS от MetaQuotes. Там только так.
Такое не произойдёт по одной причине, нет интернета- нет торговли, и вы наверное не заметили, что контроль счета видеться с телефона, планшета. Если интернет кончился то просто закрываем все сделки ручками, а далее либо ждём когда появиться интернет или будем дома для дальнейших действий на ПК.
Терминал на Вашем компе без инета, Вы - далеко. Доступ к счету есть, а к Терминалу с советником - нет. Как заставить советник не торговать, когда появится у него связь с торговым сервером (инет заработает)?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Методы дистанционного управления работой советников:
Основным преимуществом торговых роботов является безустанная работа 24 часа в сутки на удаленном VPS сервере. Но иногда необходимо вмешаться в их работу в ручном режиме, а прямого доступа к серверу сейчас нет. Возможно ли управлять работой советника дистанционно? В данной статье предлагается один из вариантов управления роботами через внешние команды.
В наше время информационных технологий использование различных роботов и электронных экспертов для торговли на финансовых рынках стало довольно обычным явлением. Главными преимуществами электронных экспертов принято считать безукоризненное выполнение алгоритма и безустанная работа 24 часа в сутки. Для их круглосуточного использования арендуются мощности виртуальных хостингов, которые позволяют круглосуточно использовать советники автономно.
Но, к сожалению, далеко не все советники работают одинаково хорошо при любых рыночных ситуациях. В таких случаях приходится вручную управлять работой советников: включать и отключать их. Это легко сделать, когда пользователь находится рядом с терминалом. Но как быть, если у Вас нет быстрого доступа к терминалу с рабочим советником? В таких случаях хорошо бы иметь возможность дистанционного управления работой советника. Давайте рассмотрим один из возможных методов дистанционного управления советниками в терминале.
Автор: Dmitriy Gizlyk