а к чему эти пляски?
if(nCountedBars<=2) i=Bars-nCountedBars-3;
if(nCountedBars>2)
while(i>=2)
а к чему эти пляски?
if(nCountedBars<=2) i=Bars-nCountedBars-3;
if(nCountedBars>2)
while(i>=2)
а ну это из предыдущего моего произведения )))
в любом случае сути это не меняет
А смысл в |O-C|>=2/3*(H-L) в части (H-L) в чём интересно? Ну так - логика интересна?
К примеру открылись по 1,0(О), закрылись по 1,0(С), максимум был 3,0(Н), минимум 1,5(L). И что?
По движению лучше тики как то учесть или |O-C|>= только использовать за какой нибудь период:
(iOpen(Symbol(),Period(),0)+iOpen(Symbol(),Period(),1))/2-(iClose(Symbol(),Period(),0)+iClose(Symbol(),Period(),1))/2
А смысл в |O-C|>=2/3*(H-L) в части (H-L) в чём интересно? Ну так - логика интересна?
К примеру открылись по 1,0(О), закрылись по 1,0(С), максимум был 3,0(Н), минимум 1,5(L). И что?
По движению лучше тики как то учесть или |O-C|>= только использовать за какой нибудь период:
не понял вопроса
как это открылись по 1,0, а минимум 1,5 - используются цены одного бара
про тики тоже не внял ))
меняет. сделайте нормальную проверку и расчет до 0.
переделал
картина не изменилась
int start()
{
int i,nCountedBars,limit;
int counted_bars=IndicatorCounted();
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
for(i=0; i<limit; i++)
{
teni=(High[i]/Point)-(Low[i]/Point);
telo=MathAbs((Open[i]/Point)-(Close[i]/Point));
if(telo>=teni*2/3 && teni>=6)
{
ExtUp[i]=High[i]+3*Point;
}
}
//----
return(0);
}
сделайте teni и telo буферами и посмотрите на их значения по Ctrl+D
корректные
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Три строчки текста, но в чем засада не пойму.
Задача: выделить бары в которых |O-C|>=2/3*(H-L), т.е. те, в которых есть относительно существенное движение цены.
Проблема в том, что индикатор выделяет такие бары "один через два", и я не вижу причину этого.
Может кто поможет, заранее спасибо.
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Red
//---- buffers
double telo,teni,ExtUp[];
int init()
{
//---- indicator buffers mapping
SetIndexBuffer(0,ExtUp);
//---- drawing settings
SetIndexStyle(0,DRAW_ARROW);
SetIndexArrow(0,119);
//----
SetIndexEmptyValue(0,0.0);
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//---- TODO: add your code here
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int i,nCountedBars;
nCountedBars=IndicatorCounted();
//---- last counted bar will be recounted
if(nCountedBars<=2)
i=Bars-nCountedBars-3;
if(nCountedBars>2)
{
nCountedBars--;
i=Bars-nCountedBars-1;
}
//----Up and Down Fractals
while(i>=2)
{
teni=(High[i]/Point)-(Low[i]/Point);
telo=MathAbs((Open[i]/Point)-(Close[i]/Point));
if(telo>=teni*2/3 && teni>=6)
{
ExtUp[i]=High[i]+3*Point;
}
i--;
}
//----
return(0);
}