Вопросы по программированию в МТ4

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Вопросы по программированию в МТ4

Сообщение Kalkin » 09 фев 2017, 17:56

Alexandeer писал(а):Скажите, пожалуйста, что нужно гуглить, или дайте ссылки на инфу, мне нужно научиться писать бота, который будет работать или не работать на определенных типах счета, например, чтобы только на демо-счете или Памм-счете. Наверное это можно как-то узнать и сделать условие
if (демка) return 0; Но вот памм определить, наверно, сложнее, но 100% можно.

Для определения типа счета есть функция IsDemo(). Возвращает значение true, когда счет демонстрационный.
Код: выделить все
if (IsDemo())
{
// Участок программы для работы на демонстрационном счете
...
}
else
{
// Участок программы для работы на реальном счете
...
}


Определить же ПАММ просто так не получится. Я бы привязывался к номеру счета. Вам ведь известен номер ПАММ-счета? Вот его и проверять.
Код: выделить все
input int PAMM_Number=123456; // Номер ПАММ-счета, на котором разрешено работать.

А в теле советника выполнять проверку:
Код: выделить все
if (AccountNumber()!=PAMM_Number) return(0);
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Вопросы по программированию в МТ4

Сообщение Lovkacher » 10 фев 2017, 05:38

Kalkin писал(а):
Lovkacher писал(а):А Вы могли бы разобрать код индикатора, который строит зоны спроса и предложения.Хотя бы пояснить, как так можно реализовать, чтобы зона спроса и предложения оканчивались в тот момент, когда свеча закрывается выше и ниже соответственно.

Как я вижу, индикатор сейчас так и работает. Как свеча закрылась ниже/выше зоны - зона на этой свече заканчивается. Текущая свеча не учитывается, ожидается закрытие.

Так мне интересно разобраться в коде, чтобы понять как создавать подобные индикаторы
Аватар пользователя
Lovkacher
 
Сообщений: 3
Зарегистрирован: 02 сен 2016, 09:42
Средств на руках: 1.60 Доллар
Группа: Новые пользователи
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Вопросы по программированию в МТ4

Сообщение Alexandeer » 11 фев 2017, 09:14

Хочу написать по стратегии Ва-Банк (на сайте TradeLikeAPro) советника, он должен быть мультивалютным, так вот вопросы:
1. Как его тестить и как его запускать?
2. Для оптимизации и подсчета баров с определенного момента, писал это в начале OnTick
Код: выделить все
if (openTime != Time[1])
   {
     c++;
     openTime=Time[1];
   }

У всех валют же бары в одно время открываются и закрываются? А то
Аватар пользователя
Alexandeer
 
Сообщений: 17
Зарегистрирован: 04 ноя 2016, 04:54
Средств на руках: 8.00 Доллар
Группа: Новые пользователи
Благодарил (а): 18 раз.
Поблагодарили: 0 раз.

Вопросы по программированию в МТ4

Сообщение Alexandeer » 11 фев 2017, 10:02

Если советник работает с индикаторами, то как его вшить в код, чтобы пользователю не обязательно было бы иметь этот индикатор? Не будет глупым, если я тупо скопирую весь код, немножко изменю всякие return, чтобы бот не останавливался, а потом в OnTick буду писать свой основной код?
Аватар пользователя
Alexandeer
 
Сообщений: 17
Зарегистрирован: 04 ноя 2016, 04:54
Средств на руках: 8.00 Доллар
Группа: Новые пользователи
Благодарил (а): 18 раз.
Поблагодарили: 0 раз.

Вопросы по программированию в МТ4

Сообщение Kalkin » 13 фев 2017, 13:24

Alexandeer писал(а):Хочу написать по стратегии Ва-Банк (на сайте TradeLikeAPro) советника, он должен быть мультивалютным, так вот вопросы:
1. Как его тестить и как его запускать?

Что за советник? Нужны подробности.

Alexandeer писал(а): 2. Для оптимизации и подсчета баров с определенного момента, писал это в начале OnTick
Код: выделить все
if (openTime != Time[1])
   {
     c++;
     openTime=Time[1];
   }


Когда пишете мультивалютный советник, обо всех предопределенных массивах типа Time[], Close[], Open[], High[], Low[] придется забыть и использовать вместо них функции iTime(...), iClose(...) и т.д. с явным указанием валютной пары

Alexandeer писал(а):У всех валют же бары в одно время открываются и закрываются? А то

Фактически - не одновременно, а по приходу тика. Из-за этого может быть случай, что на одной паре уже есть новый бар, а по другой паре его ещё нет. Надо или нет синхронизировать - зависит от алгоритма.

Alexandeer писал(а):Если советник работает с индикаторами, то как его вшить в код, чтобы пользователю не обязательно было бы иметь этот индикатор? Не будет глупым, если я тупо скопирую весь код, немножко изменю всякие return, чтобы бот не останавливался, а потом в OnTick буду писать свой основной код?

Чтобы код индикатора втянуть в исполняемый код советника, надо индикатор объявить как ресурс и доступ к нему в теле программы также делать как доступ к ресурсу. Тогда пользователю можно отдавать один файл (без исходников), все индикаторы будут внутри.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Вопросы по программированию в МТ4

Сообщение Alexandeer » 14 фев 2017, 11:49

Kalkin писал(а):Что за советник? Нужны подробности.

1.На самом деле не важно какой советник. Допустим алгоритм такой: Если нет открытых ордеров, то открывать ордер с тейком и стопом 50, причем открывать сразу на 5 парах.
Получается пользователь запускает его на 1 графике, а бот открывает ордера на нескольких, думаю для этого нужно окошечко оформить где вся инфа бы появлялась, правда я не знаю как. Но как его тестить? Я еще не разу мультивалютный не видел, ну во всяком случае простой и понятный.
2. Как сделать чтобы бот сам удалялся с графика или график закрывал?
Аватар пользователя
Alexandeer
 
Сообщений: 17
Зарегистрирован: 04 ноя 2016, 04:54
Средств на руках: 8.00 Доллар
Группа: Новые пользователи
Благодарил (а): 18 раз.
Поблагодарили: 0 раз.

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 14 фев 2017, 12:27

В МТ 4 советник можно тестировать только на демо.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Вопросы по программированию в МТ4

Сообщение Kalkin » 14 фев 2017, 12:53

Alexandeer писал(а):
Kalkin писал(а):Что за советник? Нужны подробности.

1.На самом деле не важно какой советник. Допустим алгоритм такой: Если нет открытых ордеров, то открывать ордер с тейком и стопом 50, причем открывать сразу на 5 парах.
Получается пользователь запускает его на 1 графике, а бот открывает ордера на нескольких, думаю для этого нужно окошечко оформить где вся инфа бы появлялась, правда я не знаю как. Но как его тестить? Я еще не разу мультивалютный не видел, ну во всяком случае простой и понятный.

В двух словах описать непросто. Давайте так, я на днях открою новую тему и приведу пример простенького мультивалютника хотя бы и по этому алгоритму.

Alexandeer писал(а):2. Как сделать чтобы бот сам удалялся с графика или график закрывал?

Можно сделать. Для удаления бота с графика надо воспользоваться функцией API из библиотеки WinUser32, которая поставляется с терминалом.
В начале советника объявляем библиотеку:
Код: выделить все
#include <WinUser32.mqh>

А в коде советника принудительную выгрузку выполняем с помощью вызова функции
Код: выделить все
PostMessageA(WindowHandle(Symbol(),Period()),WM_COMMAND,33050,0);

DLL должны быть разрешены.
Аватар пользователя
Kalkin
 
Сообщений: 1589
Зарегистрирован: 05 мар 2015, 06:51
Средств на руках: 108.80 Доллар
Награды: 2
Ветеран I (1) Медаль за научный вклад (1)
Группа: Базовая
Благодарил (а): 633 раз.
Поблагодарили: 1190 раз.
Ace Register Votive

Вопросы по программированию в МТ4

Сообщение YURIY007 » 15 фев 2017, 16:38

Рэндом писал(а):В МТ 4 советник можно тестировать только на демо.

Как только на демо? советник можно протестировать и в тестере стратегий на истории, при чем параметры будут браться от того счета который открыт в терминале в момент тестирования, туда входят спред , плече , сколько знаков после запятой и тип счета. Кстати часто бывает что тестируешь на плавающем стпреде и какой спред на данный момент такой и тестируется в тестере.
Аватар пользователя
YURIY007
 
Сообщений: 563
Зарегистрирован: 02 фев 2017, 17:47
Средств на руках: 2.30 Доллар
Откуда: Украина
Группа: Базовая
Благодарил (а): 271 раз.
Поблагодарили: 222 раз.
ПРОДАМ СТРОЧКУ В ПОДПИСИ — 25 WMZ на месяц. (для рекламы любого ресурса с вашей реф ссылкой).
мой журналквазиарбитражрегистрация на форум
1000$ в управление, без вложений (пишите в ЛС)

Вопросы по программированию в МТ4

Сообщение YURIY007 » 15 фев 2017, 16:46

Alexandeer писал(а):Хочу написать по стратегии Ва-Банк (на сайте TradeLikeAPro) советника, он должен быть мультивалютным, так вот вопросы:
1. Как его тестить и как его запускать?

Мультивалютный советник сразу по всем парам невозможно протестировать в МТ 4 а только по отдельности по каждой паре , а потом сопоставить результаты и вручную посчитать. Но можно сделать сова для МТ5 там его можно протестить, и переделать на МТ4 это для специалиста не трудно, слышал так делают но я лично не пробовал.
Аватар пользователя
YURIY007
 
Сообщений: 563
Зарегистрирован: 02 фев 2017, 17:47
Средств на руках: 2.30 Доллар
Откуда: Украина
Группа: Базовая
Благодарил (а): 271 раз.
Поблагодарили: 222 раз.
ПРОДАМ СТРОЧКУ В ПОДПИСИ — 25 WMZ на месяц. (для рекламы любого ресурса с вашей реф ссылкой).
мой журналквазиарбитражрегистрация на форум
1000$ в управление, без вложений (пишите в ЛС)


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron