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

Тема: Программирование на 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
    Сообщений
    83
    Promo (¢)
    660
    Благодарности
    Получено: 2
    Отправлено: 15
    Здраствуйте уважаемые программисты!!! Помогите написать правильную двойную логику на открытие ордеров!!!

    двойная логика заключается в том что если зеленая линия пересекла красную, то открывается ордер, и если зеленая пересекла красную и синюю то открывается другой ордер!!!! надо сделать так что бы это были 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...
    Сообщений
    2,816
    Promo (¢)
    11,505
    Благодарности
    Получено: 2,388
    Отправлено: 1,307
    Цитата Сообщение от SviteR Посмотреть сообщение
    посмотрите плиз все правильно сделано?????
    Пересечение двух линий - да.
    Второе условие else if{...} - нет.
    Во-первых, else там лишний. Если выполняется первое условие, второе даже не проверяется. Поэтому должны быть просто два условия if{}
    Во-вторых, пересечь две линии на одном баре аллигатор не может. Ну может быть крайне редко. Обычно между пересечением первой и второй линии проходит несколько баров. То есть сигнал возникает тогда, когда красная пересекла одну из линий на прошлом (или текущем) баре, И пересекла вторую линию не раньше, чем N баров тому назад. Лучше проверку этих условий вынести в отдельную функцию, и использовать там циклы...

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

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

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

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

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

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

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

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

  7. #1707
    Уже не гость
    Регистрация
    30.05.2018
    Сообщений
    2
    Promo (¢)
    540
    Благодарности
    Получено: 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
    Сообщений
    83
    Promo (¢)
    660
    Благодарности
    Получено: 2
    Отправлено: 15
    А как правильно написать логику по трэйлингу? Мне надо строгие условия: когда цена пошла в мою сторону от цены открытия на X пунктов

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

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

    Тоесть если я начал торговать со счетом в 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...
    Сообщений
    2,816
    Promo (¢)
    11,505
    Благодарности
    Получено: 2,388
    Отправлено: 1,307
    Цитата Сообщение от Caroline Посмотреть сообщение
    Есть какая нить функция для расчета лота....
    Конечно есть...

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

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

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

Ваши права

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