To mój pierwszy wpis na forum.
Jestem początkującym programistą dlatego proszę na mnie nie krzyczeć

Napisałem sobie prosty wskaźnik, który w przypadku gdy EMA100>EMA200 daje sygnał 1 a w przypadku EMA100<EMA200 daje sygnał -1. Wynik trafia do tablicy SYG[].
Chciałbym jednak w drugiej tablicy otrzymać wynik dotyczący poprzedniej świeczki czyli SYGPopSw=SYG[i+1]
Program jednak nie działa tzn - nie rysuje mi wykresu SYGPopSw
Poniżej wklejam cały kod:
Kod: Zaznacz cały
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 DodgerBlue
//--- input parameters
double SYGPopSw[];
double SYG[];
int init()
{
string short_name;
//---- indicator line
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,SYGPopSw);
short_name="Wskaznik";
IndicatorShortName(short_name);
SetIndexLabel(1,short_name);
//----
SetIndexDrawBegin(0,300);
//----
return(0);
}
int deinit()
{
//----
//----
return(0);
}
int start()
{
int i, counted_bars=IndicatorCounted();
if(Bars<=300) return(0);
i=Bars-300-1;
if(counted_bars>=300) i=Bars-counted_bars-1;
while(i>=0)
{
if (iMA(NULL,0,100,8,MODE_EMA,PRICE_CLOSE,i)>iMA(NULL,0,200,8,MODE_EMA,PRICE_CLOSE,i))
{
SYG[i]=1;
}
else if (iMA(NULL,0,100,8,MODE_EMA,PRICE_CLOSE,i)<iMA(NULL,0,200,8,MODE_EMA,PRICE_CLOSE,i))
{
SYG[i]=-1;
}
else
{
SYG[i]=SYG[i+1];
}
SYGPopSw[i]=SYG[i+1];
i--;
}
return(0);
}
//+------------------------------------------------------------------+
Bardzo proszę o pomoc i wskazanie błędu.[/code]