Не очень внимательно с описанием ознакомился, там скрин примера добавлен,Играйтесь)
не хватает этого. Но все-равно не отображаетЧто то нехватает
Стрелки поменял, а машки для красоты.Не очень внимательно с описанием ознакомился, там скрин примера добавлен,
стрелки сигналят в другую сторону
Стрелка одна, когда оба условия исполненоНе очень понятно почему столько стрелок много. Я так понял одна стрелка должна быть CCI, вторая тренда
- ССI вышел за верхнюю зону 150
- %R находиться в нижней зоне Sell Zone ниже линии -75.0000
а може нужна lambda?не хватает этого. Но все-равно не отображает
Господа, можно прикрутить на график места пересечения линий? Можно ромбики, черепушки, главное визуально наблюдать и менять цвет и толщину. Если, если это технически возможно, можно сделать что бы оставались метки первого пересечения? Немного подрисовывает.Посмотреть вложение 481840
а что крутой индюк? рисует?Господа, можно прикрутить на график места пересечения линий? Можно ромбики, черепушки, главное визуально наблюдать и менять цвет и толщину. Если, если это технически возможно, можно сделать что бы оставались метки первого пересечения? Немного подрисовывает.Посмотреть вложение 481840
//+------------------------------------------------------------------+
void OnTick ()
{
if (Level() && UsePinbarCandles && Pinbar()==1)
{
//.. здесь код по обозначению на графике паттерна и открытию ордера - эта часть кода работает//
}
}
//+------------------------------------------------------------------+
bool Level()
{
if (!UseLevels) return (true);
double LastFractalUp = 0;
double LastFractalDn = 0;
int j=0;
int m=0;
int k=0;
ArrayResize(Fract,300);
ArrayResize(FractLevels,300);
for (int i=10;i<FractHistory;i++)
{
LastFractalUp = iFractals(_Symbol,_Period,MODE_UPPER,1);
LastFractalDn = iFractals(_Symbol,_Period,MODE_LOWER,1);
if (LastFractalUp!=0)
{
Fract[j]=LastFractalUp;
j++;
}
if (LastFractalDn!=0)
{
Fract[j]=LastFractalDn;
j++;
}
}
for (int i=0;i<ArraySize(Fract);i++)
{
if (Fract[i]!=0) m++;
}
ArrayResize(Fract,m);
for (int i=0 ;i<ArraySize(Fract);i++)
{
if (i==0)
{
FractLevels[k]=Fract[ArrayMinimum(Fract,WHOLE_ARRAY,0)];
k++;
}
if (i>0&&Fract[i]>FractLevels[k-1]+LevelDiff*_Point)
{
FractLevels[k]=Fract[i];
k++;
}
}
m=0;
for (int i=0;i<ArraySize(FractLevels);i++)
{
if (FractLevels[i]!=0) m++;
}
ArrayResize(FractLevels,m);
for (int i=0;i<ArraySize(FractLevels);i++)
{
ObjectCreate(ChartID(),"Level_"+IntegerToString(i),OBJ_HLINE,0,0,FractLevels[i]);
}
//попадает ли свеча в диапазон найденных уровней
for (int i=0;i<ArraySize(FractLevels);i++)
{
if(Low[1]<FractLevels[i]+LevelDiff*_Point&&High[1]>FractLevels[i]-LevelDiff*_Point) return (true);
}
return (false);
}
да.а что крутой индюк? рисует?
есть простой метод поиска ошибок - принтовать все "подозреваемые места".код ниже не отображает уровни.. в чем же ошибка? подскажите, пожалуйста
эта строчка пропускает дальше или возвращает на каждом тикеif (!UseLevels) return (true);
в этот цикл условие пропускает или FractHistory меньше 10for (int i=10;i<FractHistory;i++)
какие значения доходят до этой строчки, может он выставляет линии по нулевой ценеObjectCreate(ChartID(),"Level_"+IntegerToString(i),OBJ_HLINE,0,0,FractLevels);
Извиняюсь за назойливость,но думаю что это моя крайняя просьба к вам в этом году!Твоим желаниям нет придела...
Извиняюсь за назойливость,но думаю что это моя крайняя просьба к вам в этом году!
Добавьте пожалуйста фильтр спреда в этот советник.
Заранее благодарен!