Индикаторы: Расширение Фибо

 

Расширение Фибо:

Построение расширения фибо

Author: Evgeniy Gutorov

 

А поподробнее, в чём суть изменений?

 

forte928 Спасибо за работу! Желательно, чтобы было два расширения (вверх и вниз), как в вилке. А то получается одна половинка.

Если не затруднит, буду благодарен.

 
forte928, а можно уточнить, почему нет уровней 50 и 76,4 а есть 85,4 ?
 
Hyppo:
forte928, а можно уточнить, почему нет уровней 50 и 76,4 а есть 85,4 ?

Можешь сам Заменить функцию..

void FiboExpand(string FiboName,int iWindow,double iTime1,double iPrice1,double iTime2,double iPrice2,double iTime3,double iPrice3,color iColor)
{
if (ObjectFind(FiboName)<0) {
ObjectCreate(FiboName,OBJ_EXPANSION,0,0,0,0,0,0,0);
ObjectSet(FiboName,OBJPROP_FIBOLEVELS,8);
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+0,0); ObjectSetFiboDescription(FiboName,0,"0");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+1,0.146); ObjectSetFiboDescription(FiboName,1,"14.6");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+0,0.236); ObjectSetFiboDescription(FiboName,0,"FE 23.6");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+1,0.382); ObjectSetFiboDescription(FiboName,1,"FE 38.2");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+2,0.618); ObjectSetFiboDescription(FiboName,2,"FE 61.8");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+3,0.50); ObjectSetFiboDescription(FiboName,3,"FE50.0");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+4,0.764); ObjectSetFiboDescription(FiboName,4,"FE76.4");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+7,0.809); ObjectSetFiboDescription(FiboName,7,"80.9");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+5,0.854); ObjectSetFiboDescription(FiboName,5,"FE 85.4");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+6,1.00); ObjectSetFiboDescription(FiboName,6,"FE 100.0");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+10,1.146); ObjectSetFiboDescription(FiboName,10,"114.6");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+5,1.236); ObjectSetFiboDescription(FiboName,5,"123.6");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+6,1.382); ObjectSetFiboDescription(FiboName,6,"138.2");
ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+7,1.618); ObjectSetFiboDescription(FiboName,7,"FE 161.8");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+14,1.50); ObjectSetFiboDescription(FiboName,14,"150.0");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+15,1.764); ObjectSetFiboDescription(FiboName,15,"176.4");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+16,1.809); ObjectSetFiboDescription(FiboName,16,"180.9");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+8,1.854); ObjectSetFiboDescription(FiboName,8,"185.4");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+9,2.00); ObjectSetFiboDescription(FiboName,9,"200.0");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+19,2.146); ObjectSetFiboDescription(FiboName,19,"214.6");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+10,2.236); ObjectSetFiboDescription(FiboName,10,"223.6");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+11,2.382); ObjectSetFiboDescription(FiboName,11,"238.2");
// ObjectSet(FiboName,OBJPROP_FIRSTLEVEL+12,2.618); ObjectSetFiboDescription(FiboName,12,"261.8");
ObjectSet(FiboName,OBJPROP_LEVELCOLOR,iColor);
ObjectSet(FiboName,OBJPROP_LEVELSTYLE,STYLE_DOT);
ObjectSet(FiboName,OBJPROP_RAY,false);
}
ObjectSet(FiboName,OBJPROP_TIME1,iTime1);ObjectSet(FiboName,OBJPROP_PRICE1,iPrice1);
ObjectSet(FiboName,OBJPROP_TIME2,iTime2);ObjectSet(FiboName,OBJPROP_PRICE2,iPrice2);
ObjectSet(FiboName,OBJPROP_TIME3,iTime3);ObjectSet(FiboName,OBJPROP_PRICE3,iPrice3);
return;
}
 
Спасибо.., просто интересно, почему выбраны не совсем привычные уровни?
 
Hyppo:
Спасибо.., просто интересно, почему выбраны не совсем привычные уровни?

обратный код прямой код


100 0
85,4 14,6
76,4 23,6
61,8 38,2
38,2 61,8
23,6 76,4
14,6 85,4
0 100
 

Посмотрел на код процедуры FiboExpand, немного ужаснуло.

forte928, Осмелюсь дать совет: загоните уровни если не в параметры (это проблематично), то хотя бы в массив, и устанавливайте их на объект Фибо-расширения в цикле. Это улучшит читаемость кода, и даст простоту переопределения уровней. Пардон, что не прикладываю код, у меня свой индикатор каши просит.

Вообще, на беглый взгляд, код индикатора сильно перегружен. Когда разберусь со своим детищем, могу помочь с кодом, чем смогу

 
xp3rienced:

Посмотрел на код процедуры FiboExpand, немного ужаснуло.

forte928, Осмелюсь дать совет: загоните уровни если не в параметры (это проблематично), то хотя бы в массив, и устанавливайте их на объект Фибо-расширения в цикле. Это улучшит читаемость кода, и даст простоту переопределения уровней. Пардон, что не прикладываю код, у меня свой индикатор каши просит.

Вообще, на беглый взгляд, код индикатора сильно перегружен. Когда разберусь со своим детищем, могу помочь с кодом, чем смогу

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

этот индикатор был промежуточное звено в цепочке разработки более сложной модели выделения фигур и расчета соотношений..

 

Forte 928, прекрастный индикатор, но для расширения Фибо необходимо самый меньший уровень 0,618%. То что можно заменить функцию, это здорово предумано. Если можно еще раз переделать индикатор. Посмотри внимательно рис. Левый катет это линейные Фибо уровни от 0% до100%, правый катет - расширение Фибо.

Линейные уровни Фибо закреплены от точки 1 до точки 2( от 0% до 100%), а 3я точка движется с ценой. Если точка 3 остановилась на уровне 38,2% это значить, что цена дойдет по расширению Фибо 127%. Если точка 3 остановилася на 61,8% это значит, что цена по расширению дойдет до 200%. и т.д. Если это возможно, чтобы индикатор не привязывался к цене, а выставлялся на график, как стандартные линейные и расширение Фибо на МТ4 . Это будет настоящий профессиональный индикатор.

Пиши

С уважением russur8@yandex.ru

я
 

Здравствуйте.

Спасибо. Отличный индикатор. 

Можно добавить вариант построения расширения Фибо по предыдущим 3-м опорным точкам? Т.е., чтобы не учитывался последний (который еще не сформировался) пик, и расширение не двигалось за ценой.  Или как это сделать? Что в коде поправить?

Причина обращения: