Изучаем MQL: Ваш первый советник на Мартингейле

Как сделать советник на мартингейле

Приветствую Вас, Господа трейдеры!

Мы продолжаем наши уроки по MQL4. И на этот раз мы с Вами напишем советник, который будет работать по системе Мартингейла (в народе такие роботы называют «мартышками»). Это будет весьма простой эксперт, который сможет вам послужить базой для дальнейших изысканий и разработки собственного «Грааля».

Домашнее задание

Домашнее задание номер 4

Используя знания, которые Вы приобрели после этого урока, прошу Вас доработать советник следующим образом:

  • Добавить внешний параметр MaxOrders и доработать советник таким образом, чтобы он не открывал ордеров больше, чем указано в этой переменной.
  • Добавить параметр MaxLoss, который будет будет отвечать за максимально допустимый убыток в пунктах для эксперта(обязательно учесть объёмы). В случае, если такое произошло, закрывать все открытые ордера.

P.S. Если вы только что к нам присоединились, начните с просмотра предыдущих уроков:

Тема на форуме

С уважением, Сергей aka xbms
TradeLikeaPro.ru

Уроки по MQL , ,
  • Dragon13

    Очень полезно и хорошо объясняется. Спасибо Сергею и Павлу!

  • vector78

    что больше всего надо оптимизировать в мартышках чтобы они не слили депо?

    • Сергей

      Объём и шаг между ордерами

  • Теодор

    Уже хочу поприветствовать админа и программера и поблагодарить за ведение уроков. За то что Они не забывают о своем поприще. О Нас любимых.

    Но хочется все-же пожелать им, блюсти прозрачность отношений и отвечать на вопросы на форуме )))

  • Руслан

    Много примеров написания кода имеется на просторах рунета. Хочется найти , свой алгоритм , который , не просто ознакомит с языком , но и привьет привычку ориентироваться на лучшее.
    Понимаю прицел ведущего адреса! Но о своем и не Только , спешу напомнить .

  • Тиодор

    Прошу в следующем уроке рассмотреть пример написания скрипта от потдержек и сопротивлений. Ибо , это и есть, сигнал к покупке и продаже. Ну а далее мани менеджмент )
    Заранее благодарю , внимательный слушатель.

    • Сергей

      1. скрипта или всё-же советника?
      2. приложите индикатор, с помощью которого нужно написать эксперт, давайте обсудим на форуме…

  • Сергей

    Всё отлично но где ссылка на видео скинь

    • Набирай в гугле «Как смотреть видео на youtube». Наверняка есть инструкции «для самых маленьких»…

  • gmg777

    Сергей, спасибо огромное за уроки!
    Все очень нужно и полезно!

  • Александр

    Все просто супер, хотелось бы исходник чтобы не наколачивать его снова!

    • Сергей

      повторенье — мать ученья 🙂
      набивая исходник, Вы начнёте думать, запоминать, а получив готовый, Вы просто его скомпилируете не думая… наша задача научиться, а по сему… 🙂

  • Степан

    Сергей спс за видосы))
    Гляньте, решил написать сову по внутреннему бару, почему она берет не все сетапы? (1 берет 10 не берет)

    if ( CountBuy()==0 &&
    // MaxPrice()==true &&MinPrice()==true)
    iLow(Symbol(),PERIOD_D1,1)>iLow(Symbol(),PERIOD_D1,2)
    &&iHigh(Symbol(),PERIOD_D1,1)iHigh(Symbol(),PERIOD_D1,1))
    {
    SL = NormalizeDouble(iLow(Symbol(),PERIOD_D1,1), Digits);
    TP = NormalizeDouble(iHigh(Symbol(),PERIOD_D1,1) + Takeprofit*Point, Digits);
    Ticket = OrderSend (Symbol(), OP_BUY, Lots, Ask, Slippage, SL, TP, comment, Magic, 0,Blue);
    }
    if ( CountSell()==0 &&
    // MaxPrice()==true &&MinPrice()==true)
    iLow(Symbol(),PERIOD_D1,1)>iLow(Symbol(),PERIOD_D1,2)
    &&iHigh(Symbol(),PERIOD_D1,1)<iHigh(Symbol(),PERIOD_D1,2)
    && Bid<iLow(Symbol(),PERIOD_D1,1)
    )
    {
    SL = NormalizeDouble(iHigh(Symbol(),PERIOD_D1,1), Digits);
    TP = NormalizeDouble(iLow(Symbol(),PERIOD_D1,1) — Takeprofit*Point, Digits);
    Ticket2 = OrderSend (Symbol(), OP_SELL, Lots, Bid, Slippage, SL, TP, comment, Magic, 0,Red);

    }

    • Сергей

      Парни, у нас есть целая ветка на форуме для обсуждения уроков!

    • Сергей

      SL = NormalizeDouble(iLow(Symbol(),PERIOD_D1,1), Digits);
      TP = NormalizeDouble(iHigh(Symbol(),PERIOD_D1,1) + Takeprofit*Point, Digits);

  • Александр

    Сергей я набрал его, вот только почемуто он умножает 1 раз и остальные ордера одинаковые, вот и незаю в чем ошибка.
    пересмотрел раз 10 ошибку не нашел.
    еще незнаю только я набрал ни так или ошибка у вас, ну он при сделках на селл , берет их без остановки на одном и том же месте.
    P.S.
    Набирать заного с видео, это не мать учения а анонизм. !!!!!!!!!!!!!!!!!!

    • Юлиан Украина

      Надо анализировать, когда что-то делаешь, вы же не обезьяна. Ищите свою ошибку..

  • MaxZ

    Спасибо огромное, Сергей, за ваш неоценимый труд. Очень доходчиво всё объясняете.
    Хотелось бы в следующих уроках увидеть подробное объяснение ступенчатого трейлингстопа.
    Заранее спасибо!

  • Петр

    Спасибо!!!

  • Polinom

    Здравствуйте Все.
    Обнаружил странную и непонятную особенность:
    Если в исходнике индикатора (*.mq4) в комментариях присутствуют слова EX4, purebeam.biz и purebeam@, то при компиляции файл *.ex4 не образуется. Слова взяты из комментария в шапке файла индикатора CurrencyPowerMeter.mq4. Буду благодарен, если кто прояснит ситуацию. Павлу и всей его команде огромное спасибо за сайт!

  • Евгений

    Спасибо большое про мартина очень вовремя, на выходных добавлю эту функцию в свой советник.

  • garrytabur

    Код советника все же нужен. Два дня ушло, чтобы тупо за учителем переписать этот код, в результате ошибка и не понятно где. Две скобки лишних, хоть убирай, хоть добавляй — все равно компилятор ругает. Был бы код, можно было бы поточнее сравнить, а так, с видео, полная измена.

    • Александр

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

  • Сергей

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

    for (int i = OrdersTotal() -1; i >= 0; i—)
    {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
    if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic)
    {
    Текст функции
    }
    }
    }

    на

    for (int i = 0; i < OrdersTotal(); i++)
    {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
    if (OrderSymbol()==Symbol()&&OrderMagicNumber()==Magic)
    {
    Текст функции
    }
    }

    • RMI

      У меня тоже не удваивал, пока ни поправил в функциях int на double здесь: double FindLastPrice(int otype)…и double FindLastLots(int otype).

  • turu

    Супер. Вы лучшие. Даже хочется переписать свой первый советник. Я начал изучать програмирование в феврале. Написал советника на функциях KimIV. Оказалось что написал читого Мартина. Некоторые нормальные ДЦ улучшают торговые условия вводят плечо 1:1000, что значительно снижает нагрузку залоговых средств на депо. И вот кажется, что достаточно иметь размер депо равным моей месячной зарплате и можно косить бабки. Жаль что обязательства перед семьёй не позволяют рисковать такими средствами. Практически у всех прогеров и трейдеров очень негативное отношение к Мартингейлу. Неужели все попробовали и все слили ( а может потому что торговали они с плечом 1:100)?. Очень прикольно пишете пограмму прямо онлайн. Спасибо.

  • Канат

    А если советник откроет несколько ордеров и их нужно будет то же мартинить, это возможно? как это реализовать?Спасибо.

  • Сергей

    Ребят помогите сделать простого советника (по моему мнению). Нужен сов который выставляет сетку отложных ордеров в одну сторону (повторюсь в одну а не в две) нужно немного механизировать мою систему. Сов должен выставлять сетку отложек после того как я открою в ручную рыночный ордер (как бы подхватить его и от него начать строить), отложки должны быть по направлению рыночного ордера, то есть если я открыл БАЙ то все отложки должны строится выше моего ордера если СЕЛ то ниже. Думаю суть понятна. В сове нужно пару основных настроек это:

    1. Настройка лота на каждую отложку

    2. Шаг между отложек в пунктах

    3. Сов должен выставлять минимум 10 отложек (можно больше но мне вполне хватит десяти)

    не каких тейков стопов итд в параметрах не нужно.

    В принципе все, самое главное что бы сов начал выставлять отложки после открытия мной рыночного ордера. Буду очень благодарен, Помогите пожалуйста.

  • Дмитрий

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

  • Oleg

    Пишу все также но выдает ошибки, а искать очень тяжело их и непонятно. жаль что автор не делал постоянно компиляцию.

    • Серега

      да вот ишибки выскакивают такм где их нет 3 часа лопатил код переписывал советник но ошибки остаються

  • Александр

    На картинке бульбулятор?

    • Евгений

      Чернильница. Но, однако, похож.

  • wayvik

    Не пойму все набрал без ошибок, но начиная со второго колена тейкпрофит не модифицируется и не подтягивается, в журнале заносится ошибка 130 (неправильный стоплосс), а он у нас 0. Так что делать?

  • Алексей Рогульский

    Супер очень понравилось

  • xranitel99573

    Павел, дайте пожалуйста ссылку где можно найти все уроки данного видео.. А то там говорится про какие то еще , а где они?? За раннее благодарю!

    • M. Sazaev

      Рома ТОРГОВЛЯ БЫЛА, НО ДАЛЕКА ОТ ПРИБЫЛЬНОЙ, Роман обещал вернуть деньги 19.05.2015, Ну и?
      напомню тебе твои слова «В случае если наша торговля будет не прибыльной, Я гарантирую вам возврат всех ваших средств. И зараннее выделил на этот случай 12 000 уе . Так как в группу войдут, только 12 человек. Но до этого врятли дойдет)) » Где возврат ??? долго ждать еще ??? (Чистой воды мошенник)

      • Gretto

        А вы простите кто?
        Чего то я вас не вижу в нашей группе сегодня.. Мы с Романом уже третий день торгуем и пока все как обещал, 10 % в день.. И у нас уже 43% Когда это вы слится успели и деньги требуете.. ?)) Вы скорее сами открывали ордера, и слились потому что не делали так как все!! Типерь флудите здесь.
        Вы кто из нас двенадцати?

        Далеко не прибыльной)))

        Вам просто завидно.
        Я с ним торгую более года.. Еще с его первых стратегий.. А вам просто обидно, что вы скорее сами же и накосячили!

      • M. Sazaev

        Я трейдер со стажем, это моя сестра изъявила желание пройти обучение с Романом, у неё не получилось, пришлось мне типа проходить обучение по разгону, естественно он мне ничего нового не предложил, это лишь банальная торговля от уровней, только выложена с добавлением некоторых терминов типа нулевики и т.д. но пверьте дело не в 1000 баксов дело в принципе, я прошу возврата за неделю. Но в итоге я открыл счет именно для торгов с Романом и слил ИМЕННО его сделками, вернее не слил оставил 400, сам закрыл т.к мог сработать колл, если бы цена двинулась еще на 9пп, что и произошло)))). Он сам мне сказал что все вернет. Итог ясен. Более того он стал просить деньги в долг, потом это не прошло он стал просить чтобы я внес 10к на его якобы памм счет т.к. имел глупость показать ему свой депо моего основного счета по скайпу. Я не сам торгую также по этим уровням но это настолько старая( но прибыльная) стратегия которая не стоит 1000. лучше купите и пройдите обучение у Герчика, это реальный трейдер и цена 800 баксов. и у Романа это не первый блог. Мне пустышку гонять нет смысла я спокойно торгую и нормально живу. Делайте выводы сами. Профитов Вам.

      • Gretto

        У него каждый блог это новый проэкт, удивлятся здесь нечего. Он сам это говорил., , Ну долг просить это я уже не знаю . — с нас по 30 % в 10 дней, а это минимум 3500 уе.. Заачем ему это надо?

      • M. Sazaev

        Честно сказать я сам незнаю)))) зачем ему это надо?))) его бы я спросил если бы он отвечал а то даже телефон не берет раз ответил я начал говорить и все он сбросил и в черный список внес, дет сад прям))))) ну да ладно)))

      • M. Sazaev

        как торги с Романом милльоньщиком?

      • M. Sazaev

        Вот мой скайп можете сами во многом убедиться taiger1414.

  • Сергей

    Здраствуйте Павел не знаю куда обратится по этому пишу здесьь Уменя проблема с терминалом не устонавливаются пользовательские индюки не реагирует кнопка ОК клавиши в окошке накладываются друг на друга особенно в тестере И такая фигня в любом терминале откудачал бы не скачал подскажите в чем может быть дело

  • Maksim Polskiy

    Всем привет!
    Долго смотрел на обучающее видео, в итоге перенес его в программу. В итоге при открытии сделок Buy торговля идет норм, а вот при открытии сделки SELL (когда цена ниже МА) происходит модификация ордеров на каждом тике. В итоге за 20 открытых сделок, объем увеличился с 0.1 до 409. Теперь сижу и думаю где ошибка. Прошу помочь в данной проблеме.

    • Никита

      значит внимательно посмотри что ты перенес для открытия на Бай и на Селл (вот где-то у тебя ошибочка есть для продаж)может знаки ,

  • Егорк

    Что я только не пробовал, все равно где-то ошибонька. Print -ом уже перепроверил всевозможные значения в журнале, компилятор ошибок не выдает. Второй ордер открывается по цене первого, хотя я вдумчиво перепроверил все. На истории не хочет мотать( И в связи с обновлением что нужно поменять!? Я привязал все к функции OnTick!
    void OnTick()
    {
    if (Volume[0]>1) osnova();
    }
    osnova вместо start! Раньше так делал на других совах канало безукоризненно! Помогите, люди добрые)

    • Егорк

      Урок кстати хоть и надо пофиксить, тем более еще обновление это,! Но все равно это самое лучшее видео в инете на данную тему на русском уж точно)) Та и вообще, я до этого по учебнику начинал MQL4 слава Богу рассудка не успел лишиться))

  • Дмитрий

    Подскажите пожаулуйста, мне не понятно почему при выполнении условия

    if (Ask <= price — Step*Point)

    Ордера не начинают плодится?
    если читать код, то с каждым тиком при выполнении условия он будет открывать ордер, но этого не происходит…
    Кто-нибудь знает почему?

    • Дмитрий

      уже сам понял)

  • grin_rubin

    Всем привет, я видимо что-то делаю не так и прошу помощи… набирал сову по Мартину в след за видео, а в конце 32 ошибки и куча предупреждений.. Может кто помочь? Скиньте код совы для выявления моих ошибок.. grin_rubin@mail.ru

  • Урок обновлен под новые билды

    • Денис

      Павел здравствуйте,посоветуйте пожалуйста,нужно останавливать советники в связи с обвалами на биржах?И если не секрет,как вы сами поступаите.

  • Протоирей Чаплин

    А где же использование классов, где получение хэндлов индикатора в массив и т.д.?
    Эти уроки под старые билды, хотя все это и работает в новых билдах, т.к. метаквоты сохранили эту возможность. Хотелось бы уроков именно на НОВОМ MetaEditor, который максимально приближен к МТ5.

    • Xbms

      Уважаемый Протоиерей Чаплин!

      Это только один из базовых уроков, где рассматриваются основы программирования под мт4.

      Вы ведь считать не с рождения умеете, верно?
      Так и тут, от простого к сложному.

      Работа с ООП рассматривается в уроках:

      http://tradelikeapro.ru/vvedenie-v-oop-strukturyi/
      http://tradelikeapro.ru/vvedenie-v-oop-klassyi/

  • Сергей, нужна помощь в написании советника. Можете уделить время?