Программирование на MQL4 - это очень просто! - Страница 171
Страница 171 из 180 ПерваяПервая ... 71 121 161 167 168 169 170 171 172 173 174 175 ... ПоследняяПоследняя
Показано с 1,701 по 1,710 из 1792

Тема: Программирование на MQL4 - это очень просто!

  1. #1701
    Новичок
    Регистрация
    06.06.2013
    Сообщений
    5
    Promo (¢)
    1,520
    Благодарности
    Получено: 0
    Отправлено: 1
    Здравствуйте!Наконец то я разобрался в чём была ошибка.Она была в том,что большинство индикаторов дают сигнал не на shift=0,а на shift=1.Спасибо за помощь.Этот вопрос снят.

    - - - Добавлено - - -

    Цитата Сообщение от wayfarer Посмотреть сообщение
    Семафорные индикаторы подают сигналы стрелками.
    Если стрелка вниз - это Sell, если вверх - это Buy.
    В коде написано, что double ind1 - это значение, которое получаем из индикатора и оно связано с сигналом вверх, а double ind2 - это значение связано с сигналом вниз - sell.

    EMPTRY_VALUE = 2147483647 - это зарезервированное значение в MQL, означающее нет значения - пусто.
    Поэтому, чтобы код реагировал на появление стелок, автор Valeius, написал
    if(ind1!=2147483647) (а лучше так писать: if (0<ind1 && ind1<EMPTRY_VALUE)) - если условие выполнилось значит поймали сигнал в Buy.
    или вот так
    PHP код:
    bool Buy 0<ind1 && ind1<EMPTRY_VALUE;
    bool Sell0<ind2 && ind2<EMPTRY_VALUE
    Для ind2 аналогично.

    И не нужно ничего иного, чтобы поймать сигнал. Так понятно?
    Здравствуйте!Наконец то я разобрался в чём была ошибка.Она была в том,что большинство индикаторов дают сигнал не на shift=0,а на shift=1.Спасибо за помощь.Этот вопрос снят.

    Вы не можете благодарить!

  2. #1702
    Новичок
    Регистрация
    12.10.2015
    Сообщений
    102
    Promo (¢)
    800
    Благодарности
    Получено: 3
    Отправлено: 22
    Здраствуйте уважаемые программисты!!! Помогите написать правильную двойную логику на открытие ордеров!!!

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

    Код:
    Alig_0_green = iAlligator(_Symbol, _Period, PerChel, SdvigChel, PerZub, SdvigZub, PerGub, SdvigGub, alig_method, alig_Price, MODE_GATORLIPS, 1);
        Alig_1_green = iAlligator(_Symbol, _Period, PerChel, SdvigChel, PerZub, SdvigZub, PerGub, SdvigGub, alig_method, alig_Price, MODE_GATORLIPS, 2);
         
        Alig_0_red = iAlligator(_Symbol, _Period, PerChel, SdvigChel, PerZub, SdvigZub, PerGub, SdvigGub, alig_method, alig_Price, MODE_GATORTEETH, 1);
        Alig_1_red = iAlligator(_Symbol, _Period, PerChel, SdvigChel, PerZub, SdvigZub, PerGub, SdvigGub, alig_method, alig_Price, MODE_GATORTEETH, 2);
        
        Alig_0_blue = iAlligator(_Symbol, _Period, PerChel, SdvigChel, PerZub, SdvigZub, PerGub, SdvigGub, alig_method, alig_Price, MODE_GATORJAW, 1);
        Alig_1_blue = iAlligator(_Symbol, _Period, PerChel, SdvigChel, PerZub, SdvigZub, PerGub, SdvigGub, alig_method, alig_Price, MODE_GATORJAW, 2);
    
    if(Alig_0_green < Alig_0_red && Alig_1_green >= Alig_1_red)
        ticket = OpenOrder(_Symbol, OP_SELL, Lots, Bid, slippage, SLsell, TPsell, NULL, Magic, 0, clrRed); 
    else if(Alig_0_green < Alig_0_red && Alig_1_green >= Alig_1_red) && (Alig_0_red < Alig_0_blue && Alig_1_red >= Alig_1_blue)
        ticket = OpenOrder(_Symbol, OP_SELL, Lots, Bid, slippage, SLsell, TPsell, NULL, Magic, 0, clrRed);
            
    if(Alig_0_green > Alig_0_red  && Alig_1_green <= Alig_1_red)
        ticket = OpenOrder(_Symbol, OP_BUY, Lots, Ask, slippage, SLbuy, TPbuy, NULL, Magic, 0, clrBlue);
    else if(Alig_0_green > Alig_0_red  && Alig_1_green <= Alig_1_red) && (Alig_0_red > Alig_0_blue && Alig_1_red <= Alig_1_blue)
        ticket = OpenOrder(_Symbol, OP_BUY, Lots, Ask, slippage, SLbuy, TPbuy, NULL, Magic, 0, clrBlue);

    Вы не можете благодарить!
    Последний раз редактировалось SviteR; 29.05.2018 в 23:19.

  3. #1703
    Уважаемый Аватар для viktan
    Регистрация
    18.09.2014
    Адрес
    Far, far away...
    Сообщений
    3,028
    Promo (¢)
    11,670
    Благодарности
    Получено: 2,436
    Отправлено: 1,320
    Цитата Сообщение от SviteR Посмотреть сообщение
    посмотрите плиз все правильно сделано?????
    Пересечение двух линий - да.
    Второе условие else if{...} - нет.
    Во-первых, else там лишний. Если выполняется первое условие, второе даже не проверяется. Поэтому должны быть просто два условия if{}
    Во-вторых, пересечь две линии на одном баре аллигатор не может. Ну может быть крайне редко. Обычно между пересечением первой и второй линии проходит несколько баров. То есть сигнал возникает тогда, когда красная пересекла одну из линий на прошлом (или текущем) баре, И пересекла вторую линию не раньше, чем N баров тому назад. Лучше проверку этих условий вынести в отдельную функцию, и использовать там циклы...

    Вы не можете благодарить!
    Хоть и не ново, я напомню снова: перед лицом и друга и врага, Ты - господин несказанного слова, а сказанного слова - ты слуга.
    ©Омар Хайам

  4. #1704
    Новичок
    Регистрация
    24.07.2017
    Сообщений
    42
    Promo (¢)
    1,600
    Благодарности
    Получено: 3
    Отправлено: 7
    Я поняла вас! Спасибо! А вот подскажите ещё такой волнующий для меня моментик! Вот Аллигатор стоит на графике на 4-6 свечей впереди рынка.... Ничего страшного что я не делаю никаких проверок на его обгон всего рынка?

    Вы не можете благодарить!
    Последний раз редактировалось Caroline; 30.05.2018 в 21:48.

  5. #1705
    Новичок
    Регистрация
    30.05.2018
    Сообщений
    5
    Promo (¢)
    560
    Благодарности
    Получено: 1
    Отправлено: 0
    Здравствуйте уважаемые господа программисты, прошу Вашей помощи, т.к. в программировании разбираюсь на 3-, пытаюсь написать стратегию с отложенными ордерами, как ордера ставить я написал, застрял на выборе ближайшего от цены отложенного ордера и установке нового отложенного ордера на определённом расстоянии от ближайшего отложенного ордера и цены. Т.е. установлено 7 ордеров BUYSTOP, цена пошла вверх, сработали 3 ордера, до 4-го не дошла и пошла вниз, сработавшие ордера закрылись по тралу, цена идёт дальше вниз, нужно чтоб снова установились 3 таких же ордера через определённое расстояние от 4-го примерно на те же места при движении цены дальше вниз.
    Очень надеюсь на Вашу помощь.Спасибо.

    Вы не можете благодарить!

  6. #1706
    Новичок
    Регистрация
    12.10.2015
    Сообщений
    102
    Promo (¢)
    800
    Благодарности
    Получено: 3
    Отправлено: 22
    Здравствуйте! Подскажите где найти код или помогите написать по Траллингу со следующими условиями:

    Траллинг должен срабатывать через X пунктов в сторону открытия ордера и фиксированно сдвигать SL и TP на N количество пунктов заданным значением!!! и все это дело должно происходить каждые X пунктов....

    Вы не можете благодарить!

  7. #1707
    Новичок
    Регистрация
    30.05.2018
    Сообщений
    5
    Promo (¢)
    560
    Благодарности
    Получено: 1
    Отправлено: 0
    Цитата Сообщение от SviteR Посмотреть сообщение
    Здравствуйте! Подскажите где найти код или помогите написать по Траллингу со следующими условиями:

    Траллинг должен срабатывать через X пунктов в сторону открытия ордера и фиксированно сдвигать SL и TP на N количество пунктов заданным значением!!! и все это дело должно происходить каждые X пунктов....
    Здравствуйте, я не специалист, но есть такой код трала с изменяемым шагом:
    void Trailing()
    {

    for (int i = OrdersTotal() - 1; i >= 0; i--)
    {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

    if (OrderSymbol() != Symbol() || OrderMagicNumber() != magicbuy&&OrderMagicNumber() != magicsell) continue;
    if (OrderSymbol() == Symbol() && OrderMagicNumber() == magicbuy||OrderMagicNumber() == magicsell )


    {
    if(OrderType() == OP_BUY )
    {
    if( Bid - OrderOpenPrice() > ( TrailStop + TrailStep )*Point)
    {
    if(OrderStopLoss() < Bid - ( TrailStop + TrailStep )*Point||OrderStopLoss()==0)
    {

    if(!OrderModify(OrderTicket(),OrderOpenPrice(),Bid - ( TrailStop*Point),0,0,Red))
    Print("Ошибка модификации ордера на покупку");

    }

    }

    }


    if(OrderType() == OP_SELL )
    {
    if(OrderOpenPrice() - Ask > TrailStop*Point)
    {
    if(OrderStopLoss() > Ask + ( TrailStop + TrailStep )*Point||OrderStopLoss()==0 )
    {

    if(!OrderModify(OrderTicket(),OrderOpenPrice(),Ask + ( TrailStop*Point),0,0,Red))
    Print("Ошибка модификации ордера на продажу");
    }
    }
    }

    }
    }
    }
    Если магик один, то выбор второго магика нужно убрать.
    TrailStop - размер трала в пунктах
    TrailStep - шаг трала
    Мне такой трал очень понравился, он не двигается пока цена не выйдет в прибыль, ну а далее двигается на шаг.

    Вы не можете благодарить!

  8. #1708
    Новичок
    Регистрация
    12.10.2015
    Сообщений
    102
    Promo (¢)
    800
    Благодарности
    Получено: 3
    Отправлено: 22
    А как правильно написать логику по трэйлингу? Мне надо строгие условия: когда цена пошла в мою сторону от цены открытия на X пунктов

    Вы не можете благодарить!

  9. #1709
    Новичок
    Регистрация
    24.07.2017
    Сообщений
    42
    Promo (¢)
    1,600
    Благодарности
    Получено: 3
    Отправлено: 7
    Есть какая нить функция для расчета лота....

    Тоесть если я начал торговать со счетом в 1.000$ с лотом в 0.01, то когда счет будет 2.000$, то лот изменится на 0.02 и т.д ???

    Я реализовала на уровне 1-ого класса))):

    Код HTML:
    LOT = 0.01;
    if(AccounBalance() > 2000)
    {
    LOT = 0.02;
    }
    if(AccounBalance() > 3000)
    {
    LOT = 0.03;
    }

    Вы не можете благодарить!
    Последний раз редактировалось Caroline; 13.06.2018 в 18:05.

  10. #1710
    Уважаемый Аватар для viktan
    Регистрация
    18.09.2014
    Адрес
    Far, far away...
    Сообщений
    3,028
    Promo (¢)
    11,670
    Благодарности
    Получено: 2,436
    Отправлено: 1,320
    Цитата Сообщение от Caroline Посмотреть сообщение
    Есть какая нить функция для расчета лота....
    Конечно есть...

    Вы не можете благодарить!
    Хоть и не ново, я напомню снова: перед лицом и друга и врага, Ты - господин несказанного слова, а сказанного слова - ты слуга.
    ©Омар Хайам

Страница 171 из 180 ПерваяПервая ... 71 121 161 167 168 169 170 171 172 173 174 175 ... ПоследняяПоследняя

Похожие темы

  1. Всё очень просто 123 (Pattern 123)
    от Sergey3011 в разделе Индикаторные торговые стратегии
    Ответов: 33
    Последнее сообщение: 21.11.2017, 06:05
  2. Программирование (МТ4)
    от RoboMaks в разделе Реклама: Предлагаю трейдерам...
    Ответов: 3
    Последнее сообщение: 11.07.2015, 18:21
  3. Очень личное о трейдинге внутри дня
    от ADler 88 в разделе Разговоры о трейдинге
    Ответов: 14
    Последнее сообщение: 10.07.2015, 18:36
  4. Экспресс-курс "Программирование советников на языке MQL4"
    от Антонина Бойкова в разделе Открытый учебный центр
    Ответов: 14
    Последнее сообщение: 22.11.2012, 14:35

Метки этой темы

Ваши права

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