Перейти к содержанию

Обучение языку MQL4 под MetaTrader 4


Рекомендуемые сообщения

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Привет мастерам и не только)
Вопрос: написал простого бота на простом авторском индикаторе. Условия входа простые. С комментами прогнал - значения из буферов берет. Но сделок не открывает. Подскажите, в чем подвох?)

ВВ.rar

Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано

Видел индикаторы, которые работают c данными из интернета. Как это cделать, если функция WebRequest не работает в индикаторах?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Ребята, почему возникает ситуация, когда бот пишет ошибку закрытия ордера, даже не открыв его?
И еще вопрос: как описать вход для осциллятора (стохастика, например)? С обязательным условием его захода за 80 и последующего выхода для продажи.

Изменено пользователем well72
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Ребята, почему возникает ситуация, когда бот пишет ошибку закрытия ордера, даже не открыв его?
И еще вопрос: как описать вход для осциллятора (стохастика, например)? С обязательным условием его захода за 80 и последующего выхода для продажи.

Ошибку даёт наверное потому, что сова пытается закрыть несуществующий ордер.
Условие входа по пересечению уровня-80 снизу вверх (сверху вниз - знаки поменять местами):
если ( стох[1бар] > 80 && стох[2бара]
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



Ребята, почему возникает ситуация, когда бот пишет ошибку закрытия ордера, даже не открыв его?
И еще вопрос: как описать вход для осциллятора (стохастика, например)? С обязательным условием его захода за 80 и последующего выхода для продажи.

Ошибку даёт наверное потому, что сова пытается закрыть несуществующий ордер.
Условие входа по пересечению уровня-80 снизу вверх (сверху вниз - знаки поменять местами):
если ( стох[1бар] > 80 && стох[2бара]

Спасибо за ответ. А откуда бот берет несуществующий ордер? А по стоху вчера сам вчера додумался-таки)))
А по моему предыдущему сообщению (3752) ничего не можете посоветовать?
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Ребят подскажите есть индикатор с исходником, как этот индикатор встроить в советник или все таки использовать iCustom()?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

А откуда бот берет несуществующий ордер? А по стоху вчера сам вчера додумался-таки)))
А по моему предыдущему сообщению (3752) ничего не можете посоветовать?

Дело не в том где берёт, а в том как исполнение кода доходит до ОрдерКлоуз если нет ордеров? - вот и разбирайтесь! ставьте Принты и отслеживайте почему условие обхода ОрдерКлоуз не выполняется...
По предыдущему - ничего, у меня нет пока времени.

Ребят подскажите есть индикатор с исходником, как этот индикатор встроить в советник или все таки использовать iCustom()?

Это зависит от многих факторов, на каких барах будете использовать, сколько буферов и т.д. В общем случае проще iCustom().
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Добрый день.
Честно сдаюсь, вот никак не додумаю сову.
Проблема все та же: нужно чтобы сигнал открывался в диапазоне 50 пунктов от Slope(те если цена превышает диапазон, то в сделки не входить )

SLOPE2.mq4
Новый_точечный_рисунок.jpg

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Честно сдаюсь, вот никак не додумаю сову.
Проблема все та же: нужно чтобы сигнал открывался в диапазоне 50 пунктов от Slope(те если цена превышает диапазон, то в сделки не входить )

Трудно сове войти в сделки при таких условиях:
(LevelPunkt*Point)>dnPunkt
где (LevelPunkt*Point) = 400 * 0,00001 = 0,00400,
а dnPunkt = MathAbs ( Ask - iCustom(...) ) / Point; = 300!
Я же писал Вам совет выводить в Принт условия открытия и смотреть. Это делается так:
Print("Открываем OP_SELL: (LevelPunkt*Point)=",DoubleToStr(LevelPunkt*Point)," > dnPunkt=",DoubleToStr(dnPunkt));

Удачи!
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Здравствуйте. Помогите пожалуйста. Я просмотрел видео по закономерностям паттернов Praice Action и попытался написать программу как в этом видео. В результате возникли ошибки:
1) Не рисуются горизонтальные линии по фибо и когда ставлю по ним торговать то вообще ничего не происходит.
2) Множество открытие ордеров по сигналу, не один. а просто очень много.
3) Сгружаемые данные в водятся в одну строку.
Я сам от программирования далек, но торгую по паттернам, по этому этот урок для меня актуален.
Плохо то, что видео плохого качества, а у меня опыта по программированию нет. Заранее благодарен.

PriceActionPatterns.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Здравствуйте. Прошу помогите пожалуйста добавить условие в код. (Насколько моих знаний хватило я подредактировал.)
Индикатор рисует линии по цене закрытия, а нужно добавить условие, рисовать только если предыдущая свеча была противоположной. Т.е. только при смене направления(цвета) свечи, рисовать линию закрытия только той свечи которая сменила направление. Также "NumberOfBar" должна отвечать за количество показываемых линий.
p.s. Понимаю что возможно плохо описал, прилагаю картинку.

--candles_m-Candles_mX.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Может кто сталкивался -
в сове считаю условие размера тела свечи,, затем запускаю в визуальном режиме сову на тест и наблюдаю что бывают случаи когда условие размера тела свечи просто пропускается и сова вваливается в рынок не по системе. Пробовал просматривать принтом, но пишет как и положено точное значение. В чем может быть причина того что условие то большую часть теста соблюдается, то нет?
---------------------

extern double BarRazmer_0_l = 5.0;
ZnachBar_h = MathAbs(Open[1] - Close[1]) / Point;
NormalizeDouble(ZnachBar_h,2)

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
sniv тяжело сказать в чём причина... если не путали 4/5 знак.
Однажды, на старых билдах, видел что терем запаздывал с записью баров в историю на реале, в тестере такого быть не должно. Выход один: при сигнале на открытие выводите в лог значения всех переменных, в том числе время бара, потом анализируйте на левых входах - ищите баг. Это стандартное решение - другого у программиста нет. Это-ж не нейронная сеть и баг будет найден!
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Добрый день. Нужен СЧЁТЧИК ПУНКТОВ (ЦЕНОВЫХ РАЗМАХОВ) который может считать не только Суммарное Количество Пройденных Пунктов, но и отдельно Сумму Лонговых Пунктов и отдельно Сумму Шортовых Пунктов за каждый Тик Движения Цены при этом выводя все это на экран в виде "Гистограммного Индикатора ПУНКТОВЫХ ОБЪЕМОВ" (Пример на Скринах).

Не путать со СЧЁТЧИКОМ ТИКОВ! Это разные вещи! За один Тик цена может скакануть сразу на несколько Пунктов (особенно в период большой валотильности рынка)


Добавлено: 18-06-2017 11:55:29

СЧЁТЧИК ПУНКТОВ я нашел - кто может доработать его до подвальных Гистограммных Индикаторов?

ПУНКТ_LONG.png
ПУНКТ_SHORT.png
Deltastock_MetaTrader3.png
shetchik_pips.mq4

Изменено пользователем F.Zhukov
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Индикатор написан для терминала до 600 билда. работает от последней свечи вглубь истории, что не очень корректно и требует много ресурсов. В общем я не в восторге. Попробовал втиснуть Ваше условие, пробуйте.

--candles_m-Candles_mX.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Большое спасибо, Вы всегда очень отзывчивы и реально помогаете. Здоровья Вам и таких же приятных людей навстречу!
Индикатор кажется Ким писал, там в коде наверное читали? Да вы правы он старый, но я на этом скелете чуть не 5 индюков держу, на графике даже намека нет на тормоза и подвисание. Сейчас и опробую тут как раз через пару чашек кофе откроется.


Добавлено: 18-06-2017 20:46:43

Очень круто, еще раз спасибо. Реально то, что мне нужно было. Залезу в код посмотрю, может чему научусь. Изменено пользователем Strong-Tezis
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Может кто нибудь прикрутить время торговли в этот пипсовщик, чтобы можно было оптимизировать в тестере, только в часах, минуты не нужны , это по сути вот этот советник с сайта http://tradelikeapro.ru/million-dollar-pips/ только в открытом коде и какими-то доработками, нашел в интернете
Заранее спасибо

MillionDollarPips.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

В том то и дело, что пытался выводить принтом и как-то все норм. Однако в терминале freshforex такие агрехи с большей частью возникают после каких-то дыр в котировках на визуальном тесте. Жесткое завершение работы совы в return на этапе start'a по заданным условиям, тоже ничего не дало.

Изменено пользователем sniv
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Приветствую уважаемую публику!
Сделала скрипты из 6 урока и при тестировании столкнулась с тем, что не всегда открываются 3 ордера, иногда 2, иногда 1, не важно будь то бай или селл. Что не так с этим скриптом?

Сама спросила сама отвечаю. Во время работы скрипта приходит новый тик и новая цена, поэтому ошибка 129 и ордер не может быть открыт. Чтобы этого избежать надо в стратегически важном месте вкрутить RefreshRates().

Цитата

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property strict
#property script_show_inputs

input int OrderCount = 3;
input int Otype = OP_BUY; //0 Buy 1 Sell
input double Lots = 0.1; //Order lots
input int Slippage = 5;
input int Magic = 1111;

double price;
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
void OnStart()
{
Comment(" ");
for (int i = 0; i {

RefreshRates(); // Обновляем цену на случай если пришел новый тик

if (Otype == OP_BUY) price = Ask;
if (Otype == OP_SELL) price = Bid;

int ticket = OrderSend(Symbol(), Otype, Lots, price, Slippage, 0, 0, "", Magic, 0);
if (ticket Comment("Open order ERROR! " + GetLastError());
}
}



Изменено пользователем Nicole White
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Пробуй. Там значения со знаком, целая часть часы, дробная минуты и секунды. Если нужны только часы, то шаг оптимизации делай целым.

MillionDollarPips.mq4

  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Oll, скажите, откуда такой код берется, в смысле нечитаемые имена функций и переменных?
Уже не первый раз вижу, думал, кто-то всех запутать хочет...

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Здравствуйте. Пожалуйста, помогите научить индикатор находить максимальный размер верхней тени и максимальный размер нижней тени. То есть, за указанный в настройках индикатора промежуток времени или N - количество баров, найти максимальный размер верхней тени и максимальный размер нижней тени и вывести на экран в виде двух дополнительных комментариев снизу под уже имеющимися.

AverageRange.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

откуда такой код берется


Коммерческий советник выкладывается в компилированном (машинном) виде. Для того, чтобы его привести в читаемый, человеческий код, требуется декомпиляция. В результате компиляции и затем декомпиляции теряются все названия переменных и функций, вместо них создаются произвольные названия, которые вы можете видеть в выложенном выше исходном коде.

Иногда замена читаемых переменных и функций делается намеренно, чтобы запутать код и затруднить его модификацию и распространение.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

0ll, спасибо, попробую с настройками времени повозится, ставить только в самые активные часы, когда спред минимальный. Советник, как я понял, ловит импульсы и выставляет отложку в противоположную сторону и входит на откатах от импульса, гонял на отрезке в 3 года, на паре EURCHF, со спредом 20 пунктов(5 знак) и 99% котировках, результаты в соотношении прибыль/просадка получились примерно 30/1, можно сказать вообще без просадки, единственная проблема это спред, отложки помогут избежать сильных реквот, думаю если уменьшить спред ограничением по времени торговли, запуская советник с самые активные часы с самым низким спредом, получится что-то выжать из него. Вообще никогда не использовал пипсовщиков, многие говорят что это бред, они очень чувствительны к брокеру и они безнадежны, в тоже время видел как некоторые разгоняют реальные счета вплоть до 500% прибыли за месяц роботами пипсовщиками, которые делают по 40-50 сделок в день. Буду пробовать оптимизировать и на центовике обкатывать, правда оптимизируется очень долго)

Изменено пользователем izeran6565
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Посмотрите...
Забыл закомментировать Print в конце индикатора...

AverageRange_mod1.mq4

Изменено пользователем usver73
Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...