Индикаторы: Прогнозирующий индикатор WmiFor - страница 4

 

Отличная работа!

 
А не кто, не взялся бы, сделать это!?
alexeymosc:
  Если бы делал я сам, я бы показывал только усредненный прогноз (у вас это коричневая линия) и сверху и снизу границы коридора, расчитанного как +- 2*СКО, взятого по каждой точке расчета. Таким образому будет видно, как действительно шел рынок в прошлом и 95-97% вариаций будут в этот коридор укладываться.
 
NEKSUS_:
А не кто, не взялся бы, сделать это!?
alexeymosc:
Если бы делал я сам, я бы показывал только усредненный прогноз (у вас это коричневая линия) и сверху и снизу границы коридора, расчитанного как +- 2*СКО, взятого по каждой точке расчета. Таким образому будет видно, как действительно шел рынок в прошлом и 95-97% вариаций будут в этот коридор укладываться.

Я это уже сделал. Не очень наглядно получилось и в конечный вариант не попало.
 

Очень интересно. А можете прикрутить вертикальную линию, что-бы от неё проводился сравнительный анализ -- выделил линию и переташил её куда пожелаешь.

Так, мне кажется, будет удобней подбирать параметры(количество баров и прочее). +10

 
1235813213455:

Очень интересно. А можете прикрутить вертикальную линию, что-бы от неё проводился сравнительный анализ -- выделил линию и переташил её куда пожелаешь.Так, мне кажется, будет удобней подбирать параметры(количество баров и прочее). +10

Тоже присоединяюсь к такому функционалу!!! - а для этого сдвиг этой вертикальной линии нужно привязать к Offset и переинициализировать SetIndexShift всех буферов, что-то приблизительно такое:

datetime gdt_ZEROLine;
int start()
{
    int counted_bars = IndicatorCounted();
    string ls_NameHLINE = "ZERO";
//----
    //---- Перерисчитываем один раз в начале бара чарта
    if (IsNewBar()
    //---- Перерисовываем, если есть ZERO-линия и она сдвинута
    || (ObjectFind (ls_NameHLINE) != -1 && gdt_ZEROLine != ObjectGet (ls_NameHLINE, OBJPROP_TIME1)))
    {
        gdt_ZEROLine = ObjectGet (ls_NameHLINE, OBJPROP_TIME1);
        if (ObjectFind (ls_NameHLINE) == -1) Offset = 0;
        //---- Находим номер бара на текущем периоде где находится ZERO-линия
        else
        {Offset = iBarShift (Symbol(), 0, gdt_ZEROLine);}
        //---- Переинициализируем буферы с новым Offset
        SetIndexShift (0, -Offset);
        for (int li_IND = 1; li_IND < 8; li_IND++)
        {SetIndexShift (li_IND, ForBars - Offset);}
        ReCalculate();
    }
//----
    return (0);
}

соответственно данному коду вертикальную линию нужно наименовать "ZERO" или

ls_NameHLINE = "ZERO";
наименовать по своему усмотрению.
Интересная работа!
 

И ещё - да простит меня автор...

Чтобы при инициализации индюка не вылезала такая ошибка:

2011.07.28 12:56:45     WmiFor EURUSD,H1: ArrayInitialize function internal error

нужно заполнение буфера (инициализацию) проводить после его объявления:

    SetIndexBuffer (0, ForSource);
    SetIndexStyle (0, DRAW_LINE, STYLE_SOLID, EMPTY, EMAColor);
    SetIndexShift (0, -Offset);
    SetIndexLabel (0, "EMA");
    ArrayInitialize (ForSource, EMPTY_VALUE);
и так с каждым буфером.
 
TarasBY:

И ещё - да простит меня автор...


В принципе, ни на что не влияет (все равно обнуляю массив позже), но так правильней. Спасибо за замечание, поправлю в следующей версии.

 
А если, в плане усовершенствования алгоритма, взять не саму цену, а её приращение в единицу времени (напрашиваются минутки)?!...
 
Красиво перерисовывает (я про стрелочки) - это не критика - это размышления, соответственно в таком виде от него (индикатора) то ли есть польза, то ли нет - как кому повезёт. А чтобы убедиться в полезности инструмента, можно сидеть перед монитором месяц-другой, а можно, пробежавшись по истории, по состоянию на начало каждых суток (естественно нужно в настройки добавить параметр - с какого времени производить прогноз) - дать прогноз на сутки вперёд, например, в виде стрелочки + в скобочках дать прогноз величины движения в пп. и количество образцов, участвовавших в прогнозе. Это будет наглядно, и в то же время практично в подборе оптимальных параметров индикатора, например, PeriodMA, SimPercents или наименьшего количества образцов (что можно добавить в параметры индюка) для составления прогноза.


P.S. Если пойти дальше, то по результатам прогноза, а их можно сравнить с реальным движением, то можно вывести на чарт табличку итогов (отключаемо) качества прогнозирования с текущими настройками индюка. А если пойти ещё дальше и определить принцип формирования стопа, то можно получить виртуальный итог работы по показаниям индикатора...

 
TarasBY:
Красиво перерисовывает (я про стрелочки) - это не критика - это размышления, соответственно в таком виде от него (индикатора) то ли есть польза, то ли нет - как кому повезёт. А чтобы убедиться в полезности инструмента, можно сидеть перед монитором месяц-другой, а можно, пробежавшись по истории, по состоянию на начало каждых суток (естественно нужно в настройки добавить параметр - с какого времени производить прогноз) - дать прогноз на сутки вперёд, например, в виде стрелочки + в скобочках дать прогноз величины движения в пп. и количество образцов, участвовавших в прогнозе. Это будет наглядно, и в то же время практично в подборе оптимальных параметров индикатора, например, PeriodMA, SimPercents или наименьшего количества образцов (что можно добавить в параметры индюка) для составления прогноза.


P.S. Если пойти дальше, то по результатам прогноза, а их можно сравнить с реальным движением, то можно вывести на чарт табличку итогов (отключаемо) качества прогнозирования с текущими настройками индюка. А если пойти ещё дальше и определить принцип формирования стопа, то можно получить виртуальный итог работы по показаниям индикатора...


Такой параметр есть - Offset. Например, если на графике H1 Offset = 24, мы забываем про прошедшие сутки и строим прогноз для них. Параметр был специально введен для анализа надежности прогноза.
Причина обращения: