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

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


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

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



xbms,подскажите пожалуйста как вынести содержимое функции comment() в правый верхний угол?



Смотрим стандартную справку по F1:

Comment
Выводит комментарий, определенный пользователем, в левый верхний угол графика.

Отсюда вывод: Никак!
Но как то же делают люди. ну да ладно не особо важно.Подскажите как бы еще посчитать безубыток у сетки ордеров если при этом имеются противоположная сделка с другим магиком.
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Перейти

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

Перейти

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

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

Но как то же делают люди. ну да ладно не особо важно.Подскажите как бы еще посчитать безубыток у сетки ордеров если при этом имеются противоположная сделка с другим магиком.



1. делают не через Comment, а через создание объектов...
2. в цикле пересчитать сложением OrderProfit каждого открытого ордера OP_BUY и OP_SELL

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

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
Ребят выручите! Уже несколько дней пытаюсь научить код закрывать ордера при пересечении машек.

Что не так? Где ошибка? Подскажите пожалуйста!
:-s

if (SMA2>SMA1)
int ticket_b = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, SL_Buy, 0, "", 123, 0, Blue);

if (SMA1>SMA2)
int ticket_s = OrderSend(Symbol(), OP_SELL, 0.01, Bid, 3, SL_Sell, 0, "", 123, 0, Red );

for(int i=0; i{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == 123)
{
if (SMA1 == SMA2)
{
if (OrderType() == OP_BUY) OrderClose(ticket_b,0.01,Bid,3,Orange);
if (OrderType() == OP_SELL) OrderClose(ticket_s,0.01,Ask,3,Orange);
}
}
}
}
Ссылка на сообщение
Поделиться на другие сайты

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

не проще вот так:

Спойлер

[

for(int i = OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
{
if (OrderType() == OP_BUY)
{
if (SMA1 >= SMA2)
{
OrderClose(OrderTicket(),OrderLots(),Bid,1,Aqua);
}//if(Bid>=bbUP_1)
}//if (OrderType() == OP_BUY)
else
if (OrderType() == OP_SELL)
{
if (SMA1 {
OrderClose(OrderTicket(),OrderLots(),Ask,1,Aqua);
}//if(Ask}//if (OrderType() == OP_SELL)
}//if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
}//if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
}//for(int i = OrdersTotal()-1; i>=0; i--)




]

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

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

Здраствуйте господа прогеры,у меня вопрос не могу научить часть кода закрывать процент от баланса счета. он закрывает но не процент а все сразу и все ордера какие есть в рынке.мне надо что бы закрывал определенный ордер и вычесленный процент от баланса депозита.подскажите чего не так делаю ?

Спойлер

[
extern double Percent = 2.0;
extern int Slippage = 2;
double stop;

void OnStart()
{

if (Digits == 3 || Digits == 5)
{
Slippage *= 10;
}
//double ostop=0;
for(int i = OrdersTotal()-1; i>=0; i--)
{
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if (OrderSymbol() == Symbol())
{
if (OrderType() == OP_BUY || OrderType() == OP_SELL)
{
if(stop==AccountBalance()/100*Percent)
stop=AccountBalance()/100*Percent;
if(stop {
OrderClose(OrderTicket(),OrderLots(),Ask,Slippage,Aqua);
OrderClose(OrderTicket(),OrderLots(),Bid,Slippage,Aqua);
}//if(ostop }//if(ostop==AccountBalance()/100*Percent)
}//if (OrderSymbol() == Symbol() )
}//if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
}//for(int i = OrdersTotal()-1; i>=0; i--)
return;
}//void OnStart()
//+-----------------------------------------------------------------




]


Закрыть_убыток_v1_0_Auto.mq4

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

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

Спасибо что не кто не ответил,все умные.Не кто не когда, не чему, не учился, ошибок не делал ! Научил я свой код закрывать ордера по проценту от баланса в плюс и минус.Пришлось долго попотеть,хорошо что интернет большой.Скачал декоммпилированный советник с такой функцией.Понял как это делать,написал свою.
Господину xbms отдельное спасибо,тут уже без иронии.за его уроки что хотя бы стал понимать не много даже в чужом коде.

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

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


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


Парни, вот без обид...

Когда вы выкладываете свой сырой неработающий код в топик и просите помочь, вы ждете, что кто-то будет потеть вместо вас, писать за вас правильный код и выложит вам готовенькое?!

Коллеги, если вы решили попробовать учиться программировать, то настраивайтесь на месяцы и годы самообучения и самоизоляции.
Никто никогда вместо вас никакой мало-мальский серьезный код не будет разбирать часами и не будет для вас искать ошибки.
Программирование крайне индивидуальная деятельность и учитесь с первого дня абсолютно все делать только в одиночку.
  • Лайк 4
Ссылка на сообщение
Поделиться на другие сайты

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

Да Старик от части вы правы. Мне направления дали где искать,я не знал как воспользоваться этой логикой, что с чем сравнить что бы получился тот эффект тот который нужен.Все по тому что не знаю как работают многие операторы,и логика их работы. в документации читаешь это делает то,это делает се.А вот как между собой сравнить то или иное ставит в ступор. Вот и просишь помощи у спецов.Так была бы тема не интересна, ушел бы давно от сюда.ВСЕ РАВНО МИР НЕ БЕЗ ДОБРЫХ ЛЮДЕЙ,ВСЕМ СПАСИБО ЗА ПОМОЩЬ !

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

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

Скажите пожалуйста, я посмотрел урок "советник на Мартингейле" и полностью повторил и написал код, ошибок нет, но при тестировании почему то следующие колена не модифицируются и тейкпрофит не переставляется. Терминал в журнале пишет ошибка 130 - неправильный стоплосс, но в строке модификации он у нас вообще 0, это же вроде означает что его вообще нет. Может что то изменилось в новых билдах и что то надо задавать по другому?

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
denis77515, очень хорошим вариантом самообучения является изучение чужих программ.
Ищите немного нормальных, проверенно работающих ботов (только авторские коды) и расшифровывайте их оператор за оператором.

xbms в Лаборатория ProfitFX выложил немало ботов с исходными кодами.
Ознакомьтесь для начала с ними.
Потом изучайте как можно более сложных ботов.

Это серьезно, я сам много лет назад начинал осваивать практическое программирование в т.ч на чужой очень сложной программе и за считанные годы дошел до работы на космос, в т.ч. несколько лет в программе Буран.
Поверьте, что это нормальный прием самообучения для выхода на достаточно профессиональный уровень.
Это не исключает глубокое само изучение теории, описаний языков, отладчиков, терминалов - но очень важно видеть продукты других людей, разбираться что такое структурное программирование.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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


Скажите пожалуйста, я посмотрел урок "советник на Мартингейле" и полностью повторил и написал код, ошибок нет, но при тестировании почему то следующие колена не модифицируются и тейкпрофит не переставляется. Терминал в журнале пишет ошибка 130 - неправильный стоплосс, но в строке модификации он у нас вообще 0, это же вроде означает что его вообще нет. Может что то изменилось в новых билдах и что то надо задавать по другому?



Скорей всего у вас новый билд метатрейдера. Уроки были записаны на более старой версии.

http://tradelikeapro.ru/metatrader-4-build-604/ ;)
Ссылка на сообщение
Поделиться на другие сайты

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

Cтарик спасибо за дельный совет,я хотел сказать почти то же самое только получилось другим языком не много.Я про что говорю,что не много став понимать в коде уже интересно этим заниматься и понимая что написано у других программистов начинаешь идти к более сложному.Как я например с детства занимался электроникой,много лет проработал телемастером,несколько лет назад стали ремонтировать сложные бытовые и промышленное холодильное оборудование и в данный момент у меня работает 2 бригады на стройке по запуску электричества в новостройках.К чему это все пишу,что нужно развиваться всестороне,как говорится методом проб и ошибок. Спасибо сайту,господину xbms вам, и Павлу.

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

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

Народ помогите как прописать в коде .....в случае если ордер закрылся по не по ТП увеличивать лот на определенное соотношение допустим 1:2 ( и чтоб этот параметр можно было менять во входных параметрах!)
помогите голва не робит по вопросам пишите в ЛС или скайп mishanea_99

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

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

Что-бы не создавать еще одну тему (заодно и эту апну), тоже по мартингейлу вопрос, как например сделать так:
Начальный риск 1%, если этот месяц получился убыточный, то в следующим месяце мы увеличиваем риск на 0.5% и так до тех пор, пока не выйдем из просадки, потом опять используем первоначальный риск.

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

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

Здравствуйте!
Может у кого будет время и желание, для написания индикатора?

Индикатор должен высчитывать средний размер свечи и выводить значение в пунктах, например в левый/правый верхний угол.
Работа на всех таймфреймах, т.е. на который повесить, те свечки и считаем.
Обновление на открытии свечи (т.е. 1 раз в час/1 раз в 4часа/и т.п.).

Желательные опции:
1.Считаем только тело или тело с хвостом - True/False.
2.Количество последних свечей, которые считаем, например 20.
3.Время по терминалу, в промежутке которого считать, например 10:00 - 20:00.
4.Если размер свечки больше или равен определенному размеру в пунктах, то не учитываем ее в расчете (желательно что-бы здесь учитывался первый пункт), например 100.0

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

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

проверяй если оба времени 0 то расчёт всех баров если размеры по 0 то тоже все бары

extern int CalculatBars = 200; количество баров
extern int SizeMaxBar =1000; максимальный размер от хай до лоу
extern int SizeMaxTeloBar=1000;максимальный размер тела
extern int StartTime =8;
extern int EndTime =23;

Volatil_Indi.mq4

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

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

Добрый день!
имеется цель - не пытаться открывать ордера типа BUYSTOP, SELLSTOP, если цена открытия ордера находится к текущей ближе, чем значение STOPLEVEL

но почему то функция MarketInfo(Symbol(),MODE_STOPLEVEL) всегда возвращает "0" (проверено через функцию Comment())
брокер Альпари, тип счета demo Standart, валюта EURUSD

в спецификациях контракта на сайте указано, что "на счетах типа Standard и Nano отложенные ордера выставляются на расстоянии 0.5 спреда от текущей цены, в некоторых случаях этот интервал может быть расширен до 2 спредов" (цитата). Источник: alpari.ru, «EURUSD»

Помогите, что не так

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

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

в спецификациях контракта на сайте указано, что "на счетах типа Standard и Nano отложенные ордера выставляются на расстоянии 0.5 спреда от текущей цены, в некоторых случаях этот интервал может быть расширен до 2 спредов" (цитата). Источник: alpari.ru, «EURUSD»


а Вашу функцию, альпари упразднили, ещё так году в 2010.
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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


Спасибо, вопрос а где они эти уроки? Я скачивал какие то,но мне кажется что они не последовательны.Если не затруднит скиньте ссылки на просмотр последовательно этих уроков. Еще раз спасибо.



Огромное, спасибо за видео, уже давно пытаюсь освоить MQL4( правда это пока получается по ряду причин хаотически), ознакамливался с видео других авторов. А где было бы можно скачать ваши уроки в кодовом исполнении, так как так проще было бы понимать суть написанного, когда видишь весь код при последующем разборе и изучении. И сразу же может я конечно не дочитал все посты до конца, а нет ли видео по новому редактору в билдах выше 600.

Добавлено: 04-03-2014 11:25:34


Денис, вообще, предполагается, что ученики будут всё-таки пользоваться справочными материалами.
Стандартная справка в Метаедиторе вызывается по F1. Там всё и описано какая функция за что отвечает и что делает...

Я и сам постоянно пользуюсь справкой, ведь невозможно наизусть запомнить параметры всех функций...
А в справке всё чётко структурировано, загляните.

[/img][/url]


Cергей, огромное спасибо за уроки. и понимаю что нужно пользоваться справкой, но новичкам сложно сразу разобраться в написании кода , тем более где какие кавычки ставить и как правильно составить порядок в функции..... Я со своей "колокольни" так понимаю, что было в видеоуроках бы неплохо всё это приложить в папку в виде кода ( MQL4)( хорошо бы с комментариями где и что выполняется ( извините за наглость)).А также не заметил в первых уроках проверку на ошибки- как это делать и какие функции за это отвечают. Изменено пользователем Sochinik
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

Дорогой Sochinik я хоть что то понять для начала слизал все уроки в терминал,точнее в мета идитор.Потом так же обращался на форум,чтоб как говорится за тебя код написали.Господин xbms, как то обломал меня в культорной форме.так что смотри уроки и вникай.Если хочешь чему то научится придется кучу информации перелопатить.я советник на мартин гейле переписывал раз 50 не копируя строчки что бы запомнить.порядок и логику программы.совет перед написанием чего либо напиши на листочке или еще где что ты ждешь от программы,потом логику выполнения что за чем должно следовать.Потом упираешЬся в ученик по MQL и изучаешь все операторы какие тебе могут помочь в твоем коде.выписываешь их,а потом уже думаешь как это все сложить воедино,вот кокда совсем не получается вот тогда пишешь сюда.може кто и откликтнется а просьбу.А за тебя не кто думать не будет.Так что дерзай УДАЧИ !!!

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

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

Может кому то пригодятся вот эти ВИДЕОУРОКИ, довольно неплохие:

_https://sites.google.com/site/videourokiforeks/home




Дорогой Sochinik я хоть что то понять для начала слизал все уроки в терминал,точнее в мета идитор.Потом так же обращался на форум,чтоб как говорится за тебя код написали.Господин xbms, как то обломал меня в культорной форме.так что смотри уроки и вникай.Если хочешь чему то научится придется кучу информации перелопатить.я советник на мартин гейле переписывал раз 50 не копируя строчки что бы запомнить.порядок и логику программы.совет перед написанием чего либо напиши на листочке или еще где что ты ждешь от программы,потом логику выполнения что за чем должно следовать.Потом упираешЬся в ученик по MQL и изучаешь все операторы какие тебе могут помочь в твоем коде.выписываешь их,а потом уже думаешь как это все сложить воедино,вот кокда совсем не получается вот тогда пишешь сюда.може кто и откликтнется а просьбу.А за тебя не кто думать не будет.Так что дерзай УДАЧИ !!!



Спасибо, за отзыв. Я просто в своём понимании выложил мысль о том как новичкам проще освоить MQl , сам же я начал изучение ещё в начале прошлого года, для того чтобы доработать один советник, а точнее у меня уже есть набросок основы - это коктейль с нескольких разных советников. Написание его происходило с помощью программиста из Белоруси Павла, а я же занимался тестированием и анализом работы. Могу заметить, что совой уже можно вполне работать , но меня не устраивает прибыльность и есть понимание , что с неё можно выжать гораздо больше, поэтому и терзаю программирование, даже что- то я уже понимал в коде, но полгода перерыва улетучили то что знал. А Павла потерял из за смены скайпа- вот теперь востанавливаю знания и наработки заново. Сов работает на демке- что хорошо его можно контролировать руками- прибыль порядка 50-100% в месяц. Но хочу довести до более высокого уровня ( на форексе каждый ищет граль)
Ссылка на сообщение
Поделиться на другие сайты

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


Цитата

в спецификациях контракта на сайте указано, что "на счетах типа Standard и Nano отложенные ордера выставляются на расстоянии 0.5 спреда от текущей цены, в некоторых случаях этот интервал может быть расширен до 2 спредов" (цитата). Источник: alpari.ru, «EURUSD»


а Вашу функцию, альпари упразднили, ещё так году в 2010.


Подскажите, а какая-нибудь альтернатива MarketInfo(Symbol(), MODE_STOPLEVEL) на альпари есть?
Ссылка на сообщение
Поделиться на другие сайты

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

Что то вас совсем не туда унесло,при чем тут альпари и язык программирования.вы сами подумайте ! Для кто в танке Альпари это брокер, MQL это язык программирования.Они друг другу отношения не имеют,кроме того что работают друг для друга.


Добавлено: 05-03-2014 15:02:47

Господин XBMS вопрос такого плана,хотел попробовать написать не большой индикатор.
Заблудился совсем,что как с чего начать,могли бы вы посветить этому пару уроков ? :( Изменено пользователем denis77515
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Войти

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

Войти

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


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

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