Программирование на MQL4 - это очень просто! - Страница 183
Страница 183 из 184 ПерваяПервая ... 83 133 173 179 180 181 182 183 184 ПоследняяПоследняя
Показано с 1,821 по 1,830 из 1838

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

  1. #1821
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,606
    Promo (¢)
    42,715
    Благодарности
    Получено: 557
    Отправлено: 63
    Цитата Сообщение от Caroline Посмотреть сообщение
    Может уже кто нить делал и поделится опытом как правильней.
    Чтобы сказать что правильнее, нужно изложить идею сигналов на фракталах полностью. Вариантов использования может быть множество, и каждый "правилен" только в контексте ТС. Обсуждение ТС на фракталах следует вести в других разделах форума, помните об этом,.. здесь же - конкретные решения в коде.

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

    Цитата Сообщение от yurecwa Посмотреть сообщение
    Помогите разобраться что не так с тралом. Вставляю в советник но нечего не происходит.
    Ошибка вот здесь, см.
    PHP код:
    bool Traling() 

      if(
    TrailingStop>0)
      {
         for(
    int i=OrdersTotal()-1i>=0i--)
        {  
          if(!
    OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;  
          if(
    OrderSymbol()!=Symbol()) continue;  
          if(
    OrderMagicNumber()!=Magic) continue;
          
    // цена рынка Bid достигла отметки запуская трала
          
    if(OrderType()==OP_BUY && Bid-OrderOpenPrice() >= TrailingStart*Point)
          {  
             
    // это условие не вяжется с условием запуска трала, потому что
             // (Bid-(TrailingStop+TrailingStep)*Point)<(Bid-OrderOpenPrice()) - отменяет предыдущее: (TrailingStop+TrailingStep)>TrailingStart
             
    if(OrderStopLoss() <= Bid-(TrailingStop+TrailingStep)*Point)  //- здесь ошибка
             // должно быть так:
             
    double newSL=Bid-(TrailingStep)*Point// значение цены ордера stoploss ниже цены рынка на TrailingStep!
             // если новое значение stoploss выгоднее - то передвигает цену ордера
             
    if(OrderStopLoss() < newSL)
             {  
                if(!
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(newSL,Digits),OrderTakeProfit(),0,Green))
                {
                   Print(
    "OrderModify error ",GetLastError());  
                }  
             }  
          }
          if(
    OrderType()==OP_SELL && OrderOpenPrice()-Ask >= TrailingStart*Point) {  
          if(
    OrderStopLoss() >= Ask+(TrailingStop+TrailingStep)*Point || OrderStopLoss()==0) {  
          if(!
    OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+TrailingStop*Point,Digits),OrderTakeProfit(),0,Green)) {
                   Print(
    "OrderModify error ",GetLastError()); 
                }  
             }  
          }  
       }  
    }   
       return(
    true); 
    Разбор условий работы трала для сделки Sell сделайте самостоятельно

    Вы не можете благодарить!
    Последний раз редактировалось wayfarer; 14.12.2018 в 07:33.
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  2. #1822
    Новичок
    Регистрация
    05.07.2015
    Сообщений
    51
    Promo (¢)
    635
    Благодарности
    Получено: 1
    Отправлено: 10
    Цитата Сообщение от wayfarer Посмотреть сообщение
    Разбор условий работы трала для сделки Sell сделайте самостоятельно
    Спасибо. Разобрался.

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

  3. #1823
    Новичок
    Регистрация
    12.10.2015
    Сообщений
    108
    Promo (¢)
    820
    Благодарности
    Получено: 3
    Отправлено: 22
    Граждане помогите!
    Хочу сделать пробитие фрактала ценой на той же свече (как на картинке)!
    Безымянный.png

    но не получается!!!
    Я получаю цены фракталов так, и сравниваю их, но мне надо конкретное пробитие ценой на той же свече!!
    Не подскажите как?


    PHP код:
       if(findFractal(1MODE_UPPERPeriod()) < findFractal(0MODE_UPPERPeriod()))
         {
          
    int ticket=OrderSend(NULL,OP_BUY,Lots,Ask,30,0,Bid+Tprof*_Point,NULL,Magik,0,clrBlue);
         }

       if(
    findFractal(1MODE_LOWERPeriod()) > findFractal(0MODE_LOWERPeriod()))
         {
          
    int ticket=OrderSend(NULL,OP_SELL,Lots,Bid,30,0,Ask-Tprof*_Point,NULL,Magik,0,clrRed);
         }

    double findFractal(int nbrint modeint timeframe)
    {
       
    int i=3n;
       for(
    n=0;n<=nbr;n++)
       {
          while(
    iFractals(Symbol(),timeframe,mode,i) == 0)
             
    i++;
          if(
    n<nbr)
             
    i++;
       }
       return(
    iFractals(Symbol(),timeframe,mode,i));

    Если сравнивать с обычной ценой
    price = (Ask + Bid) / 2;
    правильно будет?

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

  4. #1824
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,606
    Promo (¢)
    42,715
    Благодарности
    Получено: 557
    Отправлено: 63
    Цитата Сообщение от SviteR Посмотреть сообщение
    Хочу сделать пробитие фрактала ценой на той же свече (как на картинке)!
    Ваше условие непонятно, а тест неоднозначный.
    Функция findFractal() написана с ошибкой.

    По сути задачи: фрактал - задает сигнальный уровень цены, а цена рынка его пробивает, поэтому существует только две составляющие задачи
    1. на каждом тике иметь сигнальную цену - FractalPrice
    2. иметь значения цены рынка PrevAsk/PrevBid и Ask/Bid

    Тогда сигнал для Buy : PrevAsk< FrictalPrice && FractalPrice<=Ask; для Sell: PrevBid>FractalPrice&& FractalPrice>=Bid/
    У вас же сигнал в Buy это: последний фрактал < предыдущего фрактала, ни о каком пробитии не может быть речи в таком условии:
    if(findFractal(1, MODE_UPPER, Period()) < findFractal(0, MODE_UPPER, Period())).

    Вы не можете благодарить!
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  5. #1825
    Новичок
    Регистрация
    04.03.2017
    Сообщений
    26
    Promo (¢)
    1,620
    Благодарности
    Получено: 0
    Отправлено: 14
    Подскажите пожалуйста
    Возможно ли использовать в советнике два одинаковых индикатора, но с разными параметрами? Не будут ли они смешиваться между собой?

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

  6. #1826
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,606
    Promo (¢)
    42,715
    Благодарности
    Получено: 557
    Отправлено: 63
    Цитата Сообщение от Hi-FI Посмотреть сообщение
    Возможно ли использовать в советнике два одинаковых индикатора, но с разными параметрами? Не будут ли они смешиваться между собой?
    Можно - не будут, пока хватает CPU и ОЗУ можно плодить копии с разными настройками.

    Вы не можете благодарить!
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  7. #1827
    Новичок
    Регистрация
    04.03.2017
    Сообщений
    26
    Promo (¢)
    1,620
    Благодарности
    Получено: 0
    Отправлено: 14
    Цитата Сообщение от wayfarer Посмотреть сообщение
    Можно - не будут, пока хватает CPU и ОЗУ можно плодить копии с разными настройками.
    Даже если брать ни iCustom, а из терминала и для одного timeframe? Без копий, а ссылаться на один, но менять настройки.

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

  8. #1828
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,606
    Promo (¢)
    42,715
    Благодарности
    Получено: 557
    Отправлено: 63
    Цитата Сообщение от Hi-FI Посмотреть сообщение
    Даже если брать ни iCustom,
    Да же так!

    Вы не можете благодарить!
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

  9. #1829
    Новичок
    Регистрация
    04.03.2017
    Сообщений
    26
    Promo (¢)
    1,620
    Благодарности
    Получено: 0
    Отправлено: 14
    Цитата Сообщение от wayfarer Посмотреть сообщение
    Да же так!
    Спасибо за ответы! )
    Появился еще вопросик, как правильнее тестировать?
    На меньшем периоде с собиранием сведений со старшего или наоборот?

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

  10. #1830
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,606
    Promo (¢)
    42,715
    Благодарности
    Получено: 557
    Отправлено: 63
    Цитата Сообщение от Hi-FI Посмотреть сообщение
    На меньшем периоде с собиранием сведений со старшего или наоборот?
    Цитата Сообщение от Hi-FI Посмотреть сообщение
    Появился еще вопросик, как правильнее тестировать?
    Тестирование, процесс долгий и сложный. Подходить к нему следует тщательно и вдумчиво, сообразуясь с правилами:
    1. трендовая стратегия уязвима на коррекции - уделить внимание периодам коррекции
    2. контр-трендовая стратегия уязвима на тренде - уделить внимание периодам тренда
    3. прочие(например: скальпинг) - качеству тиковой истории.

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

    Тестер тиковой истории эмулирует тики, т.е. они выдуманные, генерированные. Правильно написанный советник должен показывать одинаковые результаты независимо от ТФ, на котором он запущен в тестере, ТФ, на который он опирается, его внутренний параметр. Тестер для работы возьмет все необходимые ТФ для работы, которые необходимы советнику. Для обеспечения неизменности котировок для тестера, стенд(копия терминала + котировки) должен быть отключен от и-нета, иначе будет перетирание истории котировок на некие взятые не у брокера, а с "матаквотов" - разработчик терминала.
    А так же см. тему " Тестирование и оптимизация советников: основные правила, принципы и технологии"

    Вы не можете благодарить!
    Последний раз редактировалось wayfarer; 12.01.2019 в 15:22.
    Для заказа кода, напишите в личку - я отвечу на ваше предложение.

Страница 183 из 184 ПерваяПервая ... 83 133 173 179 180 181 182 183 184 ПоследняяПоследняя

Похожие темы

  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

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

Ваши права

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