Logo

Вход

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

    За гранью понимания)

    Здравствуйте форумчане! Привожу пример простого индикатора, который при пересечении MACD и 0 выводит стрелки на графике цены.
    В индикаторе использую множитель для таймфрейма

    MQL код:
     input int      Faktor=4; 


    Если кинуть этот индикатор на минутный график, то по умолчанию он показывает пересечение MACD и 0 на М4, я просто умножаю показания индикатора MACD на 4

    MQL код:
     Handle=iMACD(NULL,0,12*Faktor,26*Faktor,9*Faktor,P  RICE_CLOSE);


    Проблема следующая - если сравнить пересечение MACD и 0 с М1 и М4 то на М1 будет смещение на 3-7 баров вперед.
    Как исправить это смещение по времени на М1??


    код индикатора

    MQL код:
    //+------------------------------------------------------------------+
    //| Proba4.mq5 |
    //| Copyright 2016, MetaQuotes Software Corp. |
    //| [url]https://www.mql5.com[/url] |
    //+------------------------------------------------------------------+
    #property copyright "Copyright 2016, MetaQuotes Software Corp."
    #property link "https://www.mql5.com"
    #property version "1.00"
    #property indicator_chart_window
    #property indicator_buffers 1
    #property indicator_plots 1
    //--- plot Label1
    #property indicator_label1 "Label1"
    #property indicator_type1 DRAW_ARROW
    #property indicator_color1 clrGreen
    #property indicator_style1 STYLE_SOLID
    #property indicator_width1 1
    //--- input parameters
    input int Faktor=4; //Множитель ТФ
    //--- indicator buffers
    double Label1Buffer[];
    //-- служебные массивы
    double SignalBuffer[];

    int Handle;
    //+------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+------------------------------------------------------------------+
    int OnInit()
    {
    //--- indicator buffers mapping
    SetIndexBuffer(0,Label1Buffer,INDICATOR_DATA);
    //--- setting a code from the Wingdings charset as the property of PLOT_ARROW
    PlotIndexSetInteger(0,PLOT_ARROW,233);
    IndicatorSetInteger(INDICATOR_DIGITS,_Digits);

    Handle=iMACD(NULL,0,12*Faktor,26*Faktor,9*Faktor,P RICE_CLOSE);
    //---
    return(INIT_SUCCEEDED);
    }
    //+------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+------------------------------------------------------------------+
    int OnCalculate(const int rates_total,
    const int prev_calculated,
    const datetime &time[],
    const double &open[],
    const double &high[],
    const double &low[],
    const double &close[],
    const long &tick_volume[],
    const long &volume[],
    const int &spread[])
    {
    //---
    int to_copy,limit;
    if(prev_calculated==0)
    {
    limit=1;
    to_copy=rates_total-1;
    if(CopyBuffer(Handle,1,0,rates_total,SignalBuffer) <=0)
    {
    Print("Getting MACD is failed! Error",GetLastError());
    return(0);
    }
    }
    else
    {
    limit=prev_calculated-1;
    to_copy=rates_total-1;
    if(CopyBuffer(Handle,1,0,rates_total,SignalBuffer) <=0)
    {
    Print("Getting MACD is failed! Error",GetLastError());
    return(0);
    }
    }

    for(int i=limit; i<to_copy;i++)
    if(SignalBuffer[i-1] < 0 && SignalBuffer[i] > 0)
    Label1Buffer[i]=high[i];//пересечение на графике
    else
    Label1Buffer[i]=EMPTY_VALUE; //пустое значение
    //--- return value of prev_calculated for next call

    return(rates_total);
    }
    //+------------------------------------------------------------------+
    Вложения
    Последний раз редактировалось Gold; 04.02.2017, 20:55.
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    Сообщение от Niral Посмотреть сообщение
    Как исправить это смещение по времени на М1??
    Никак! И индикатор тут не при чем. А вот почему - попробуйте самостоятельно ответить на этот вопрос.
     

    Комментарий

    • #3 Свернуть

      Вы наверное не прочитали название темы)))
       

      Комментарий

      • #4 Свернуть

        Сообщение от Niral Посмотреть сообщение
        Вы наверное не прочитали название темы)))
        Ну отчего же... Прочитал... Потому и ответил так, чтоб еще осталось место для самостоятельного творчества.
           

        Комментарий

        • #5 Свернуть

          Сообщение от ir0407 Посмотреть сообщение
          Ну отчего же... Прочитал... Потому и ответил так, чтоб еще осталось место для самостоятельного творчества.
          Сообщение от Niral Посмотреть сообщение
          Вы наверное не прочитали название темы)))
          А ничего страшного, что два MACD с разными параметрами на графике стоят? И естественно пересечение в разных местах будет! Или вы считаете, что умножив параметры индюка на какой-то коэффициент Вы получите значения со старшего таймфрейма? Если на графике М4 в четыре раза меньше свечей чем на М1, умножив параметры индюка на 4 Вы ни как не получите его значения с М4, это будут значения с М1, только в четыре раза больше! Ведь в расчёте MACD (12, 26, 9) на графике М4 для экспоненциальной средней, берётся всего 12 значений, а для MACD (48, 104, 36) на графике М1- аж 48 значений цены!!! Почитайте как рассчитывается индюк!
           
          "Правила рынка" (с)

          Комментарий

          • #6 Свернуть

            Расхождения скорей всего,т.к наверно ен совсем точно рассчитали период и ТФ, поэтому есть незначительные расхождения, но для ТС думаю эти расхождения не должны быть критичными.Вы сигнал по масд использует как сигнальщик или как фильтр?
             
            Друзья!Давайте будем дружить-станьте моими партнерами!
            Помогу в трейдинге Приглашаю всех в скайп
            Лучшие видео приколы с youtube.com

            Комментарий

            • #7 Свернуть

              Сообщение от SerGeys Посмотреть сообщение
              Расхождения скорей всего,т.к наверно ен совсем точно рассчитали период и ТФ, поэтому есть незначительные расхождения, но для ТС думаю эти расхождения не должны быть критичными.Вы сигнал по масд использует как сигнальщик или как фильтр?

              Сигнал со старшего ТФ я использую как сигнальный и как фильтр, поэтому важно чтобы было точное наложение младшего и старшего ТФ. Т.е. к примеру я хочу на периоде М1 видеть что происходит на М4.. Можно было бы считывать показания со старшего ТФ, но как тогда быть с нестандартными ТФ....
                 

              Комментарий

              • #8 Свернуть

                Сообщение от Viktor1987 Посмотреть сообщение
                умножив параметры индюка на какой-то коэффициент Вы получите значения со старшего таймфрейма
                Совершенно верно! получаю со смещением по времени...
                Готов выслушать Ваш вариант решения данного вопроса..
                   

                Комментарий

                • #9 Свернуть

                  Сообщение от Niral Посмотреть сообщение
                  Совершенно верно! получаю со смещением по времени...
                  Нет у вас никакого смещения по времени. У вас есть только бездумное загрубление параметров индикатора и все. Как результат - показания индикатора запаздывают и размазываются на более длительный период. Такова уж его природа.
                     

                  Комментарий

                  • #10 Свернуть

                    Сообщение от ir0407 Посмотреть сообщение
                    Такова уж его природа.
                    Так как же все таки решить этот вопрос???
                       

                    Комментарий

                    • #11 Свернуть

                      Сообщение от Niral Посмотреть сообщение
                      Так как же все таки решить этот вопрос???
                      1. Разобраться как работают индикаторы и за что отвечают их параметры. Так чтоб это было не "За гранью понимания".
                      2. Пересмотреть свою хотелку в соответствии с новыми полученными знаниями.
                       
                      Последний раз редактировалось ir0407; 01.02.2017, 06:20.

                      Комментарий

                      • #12 Свернуть

                        Сообщение от ir0407 Посмотреть сообщение
                        1. Разобраться как работают индикаторы и за что отвечают их параметры. Так чтоб это было не "За гранью понимания".
                        2. Пересмотреть свою хотелку в соответствии с новыми полученными знаниями.
                        Да уж..... хороший форум....
                           

                        Комментарий

                        • #13 Свернуть

                          Сообщение от Niral Посмотреть сообщение
                          Да уж..... хороший форум....
                          ДА ПОЧИТАЙте же Вы как рассчитывается индюк! потом почитайте про параметры индюка, внимательно! В нём есть всего один параметр который отвечает за таймфрейм, его можно вынести во внешние параметры и получать показания индюка с любого, нужно Вам таймфрейма!
                           
                          "Правила рынка" (с)

                          Комментарий

                          • #14 Свернуть

                            Сообщение от Niral Посмотреть сообщение
                            Сигнал со старшего ТФ я использую как сигнальный и как фильтр, поэтому важно чтобы было точное наложение младшего и старшего ТФ. Т.е. к примеру я хочу на периоде М1 видеть что происходит на М4.. Можно было бы считывать показания со старшего ТФ, но как тогда быть с нестандартными ТФ....
                            Откуда у вас такие странные ТФ, впервые слышу о ТФ м4.
                             
                            Друзья!Давайте будем дружить-станьте моими партнерами!
                            Помогу в трейдинге Приглашаю всех в скайп
                            Лучшие видео приколы с youtube.com

                            Комментарий

                            • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                            • #15 Свернуть

                              Сообщение от SerGeys Посмотреть сообщение
                              Откуда у вас такие странные ТФ, впервые слышу о ТФ м4.
                              Странно это слышать от человека, зарегистрированного здесь с 2011 года))) откройте МТ5...
                                 

                              Комментарий

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

                              working...
                              X