Logo

Вход

Войти с помощью соц. сетей
Пока нет объявлений.
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
  • #1 Свернуть

    Обновление экстремума

    Здравствуйте. Как написать что High тени пинбара обновила максимальный High за 30 свечей, я написал так но ни чего не выходит

    MQL код:
      
    double val_index=iHighest(NULL,0,MODE_HIGH,30,i+1);
    datetime gi_time_01 = StringToTime(TimeToString(Time[i] , TIME_DATE)+ " " + StartHour);
    datetime gi_time_02 = StringToTime(TimeToString(Time[i] , TIME_DATE) + " " + EndHour);
    datetime datetime_0 = Time[i];

    //+------------------------------------------------------------------+
    //| МЕДВЕЖИЙ ПИН БАР |
    //+------------------------------------------------------------------+


    if (val_index<High[i+1])

    {

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]>0 &&
    (Close[i+1]-low[i+1])*2< High[i+1]-Open[i+1] &&
    High[i+1]-Open[i+1]>(Open[i+1]-Close[i+1])*2 )

    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]<0 &&
    (Open[i+1]-low[i+1])*2<High[i+1]-Close[i+1] &&
    High[i+1]-Close[i+1]>(Close[i+1]-Open[i+1])*2)
    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }
    }

    }


    return(rates_total);
    }


    еще так пробовал но тоже ни чего

    MQL код:
    bool gg = true;
    for(int i=0 ; i<30;i++ )
    {
    if( High[i] >= High[1] && i != 1 )
    {//
    gg=false;
    break;/
    }
    }

    if (gg)

    {

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]>0 &&
    (Close[i+1]-low[i+1])*2< High[i+1]-Open[i+1] &&
    High[i+1]-Open[i+1]>(Open[i+1]-Close[i+1])*2 )

    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]<0 &&
    (Open[i+1]-low[i+1])*2<High[i+1]-Close[i+1] &&
    High[i+1]-Close[i+1]>(Close[i+1]-Open[i+1])*2)
    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }
    }

    }


    return(rates_total);
    }


    надо чтобы и на истории было видно
    Последний раз редактировалось DAleksey; 21.11.2016, 11:28.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от DAleksey Посмотреть сообщение
    Здравствуйте. Как написать что High тени пинбара обновила максимальный High за 30 свечей, я написал так но ни чего не выходит

    MQL код:
      
    double val_index=iHighest(NULL,0,MODE_HIGH,30,i+1);
    datetime gi_time_01 = StringToTime(TimeToString(Time[i] , TIME_DATE)+ " " + StartHour);
    datetime gi_time_02 = StringToTime(TimeToString(Time[i] , TIME_DATE) + " " + EndHour);
    datetime datetime_0 = Time[i];

    //+------------------------------------------------------------------+
    //| МЕДВЕЖИЙ ПИН БАР |
    //+------------------------------------------------------------------+


    if (val_index<High[i+1])

    {

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]>0 &&
    (Close[i+1]-low[i+1])*2< High[i+1]-Open[i+1] &&
    High[i+1]-Open[i+1]>(Open[i+1]-Close[i+1])*2 )

    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]<0 &&
    (Open[i+1]-low[i+1])*2<High[i+1]-Close[i+1] &&
    High[i+1]-Close[i+1]>(Close[i+1]-Open[i+1])*2)
    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }
    }

    }


    return(rates_total);
    }


    еще так пробовал но тоже ни чего

    MQL код:
    bool gg = true;
    for(int i=0 ; i<30;i++ )
    {
    if( High[i] >= High[1] && i != 1 )
    {//
    gg=false;
    break;/
    }
    }

    if (gg)

    {

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]>0 &&
    (Close[i+1]-low[i+1])*2< High[i+1]-Open[i+1] &&
    High[i+1]-Open[i+1]>(Open[i+1]-Close[i+1])*2 )

    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }

    if( gi_time_01 < gi_time_02 && gi_time_01 <= datetime_0 && datetime_0 <= gi_time_02 &&
    Open[i+1]-Close[i+1]<0 &&
    (Open[i+1]-low[i+1])*2<High[i+1]-Close[i+1] &&
    High[i+1]-Close[i+1]>(Close[i+1]-Open[i+1])*2)
    {
    if(i==0)
    Alert("ADX_PA ("+Symbol()+") - SELL !!!");
    buf_2[i+1]=High[i+1]+K*Point;

    }
    }

    }


    return(rates_total);
    }


    надо чтобы и на истории было видно
    Тут ты определись, что чем сравниваешь?
    30-ю свечу с первой, не нулевой.
    Или на какой свече интервала в 30 свечей, первая,( или формирующаяся свеча,) пробила, стала больше, и т.д.
    Ну и при сравнении цены которые сравниваешь, обязательно нормализуй до количества знаков инструмента.
    Последний раз редактировалось MonyaMaker; 11.04.2017, 18:32.

    Комментарий

    Сейчас онлайн

    working...
    X