А поподробнее, в чём суть изменений?
Можешь сам Заменить функцию..
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; }
обратный код прямой код
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, Осмелюсь дать совет: загоните уровни если не в параметры (это проблематично), то хотя бы в массив, и устанавливайте их на объект Фибо-расширения в цикле. Это улучшит читаемость кода, и даст простоту переопределения уровней. Пардон, что не прикладываю код, у меня свой индикатор каши просит.
Вообще, на беглый взгляд, код индикатора сильно перегружен. Когда разберусь со своим детищем, могу помочь с кодом, чем смогу
Посмотрел на код процедуры 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-м опорным точкам? Т.е., чтобы не учитывался последний (который еще не сформировался) пик, и расширение не двигалось за ценой. Или как это сделать? Что в коде поправить?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Расширение Фибо:
Author: Evgeniy Gutorov