Помогите разобраться с советником
Все не так просто, посмотрите код индикатора 'Fractals', функционально он сопоставим с тем, что Вы пытаетесь сделать.
А один потому, что надо в цикле проходить все бары от 0 до Bars, а Вы ищите фрактал исключительно на 3м баре.
Потомучто у вас жесткое условие по определению только фрактала на первых шести свечах:
if(High[1]<High[3]&&
High[2]<High[3]&&
High[3]>High[4]&&
High[3]>High[5])
Тоесть ваш индикатор не ищет фракталы дальше шестой свечи.
Потомучто у вас жесткое условие по определению только фрактала на первых шести свечах:
if(High[1]<High[3]&&
High[2]<High[3]&&
High[3]>High[4]&&
High[3]>High[5])
Тоесть ваш индикатор не ищет фракталы дальше шестой свечи.
При появлении новых данных индексы баров сдвигаются и разве start не должен снова проверять условия уже на новых данных?
При появлении новых данных индексы баров сдвигаются и разве start не должен снова проверять условия уже на новых данных?
Кажется я понял, что Вы хотите сделать, типа искать фракталы онлайн, а не на истории. Так работает, думается Вы сами поймете в чем была ошибка.
int start() { double C; datetime B; string A="Fractal"; //---- if (High[1]<High[3]&& High[2]<High[3]&& High[3]>High[4]&& High[3]>High[5]) { B=Time [3]; C=High [3]; ObjectCreate(A+B, OBJ_ARROW, 0, B,C); ObjectSet(A+B, OBJPROP_ARROWCODE, C); } //---- if (Low[1]>Low[3]&& Low[2]>Low[3]&& Low[3]<Low[4]&& Low[3]<Low[5]) { B=Time [3]; C=Low [3]; ObjectCreate(A+B, OBJ_ARROW, 0, B, C); ObjectSet(A+B, OBJPROP_ARROWCODE, C); } //---- //---- return; }
Написала советник для определения фракталов.
Он определил фрактал, но пометил только один.
Не могу понять, почему он не отметил все фракталы на графике.
Подскажите пожалуста, кто знает.
int start()
{
double C;
datetime B;
int A;
//----
if
(High[1]<High[3]&&
High[2]<High[3]&&
High[3]>High[4]&&
High[3]>High[5])
{
A++;
B=Time [c];
C=High [c];
ObjectCreate("A", OBJ_ARROW, 0, B,C);
ObjectSet("A", OBJPROP_ARROWCODE, C);
}
//----
if
(Low[1]>Low[3]&&
Low[2]>Low[3]&&
Low[3]<Low[4]&&
Low[3]<Low[5])
{
A++;
B=Time [3];
C=Low [3];
ObjectCreate("A", OBJ_ARROW, 0, B, C);
ObjectSet("A", OBJPROP_ARROWCODE, C);
}
//----
//----
return;
}