Помогите пожалуста начинающему

 

Подскажите где ошибка!!!

Файлы:
1.mq4  3 kb
 
Регистр смените в заголовке
 
AlexSTAL:
Регистр смените в заголовке

да уж

double MAA;
double MAB;
double ADA;
double ADB;


ADA=iAD(NULL,0,shift);
ADB=iAD(NULL,0,shift-1);
MAA=iMAOnArray(ADA,0,MA_Period,MA_shift,MODE_SMA,shift); <-- iMAOnArray хочет double var[];- массив то есть. и я думаю с ArraySetAsSeries(var, true)
MAB=iMAOnArray(ADB,0,MA_Period,MA_shift,MODE_SMA,shift-1); 

 В общем ищите себе пример работающий. 

 
akula:

Подскажите где ошибка!!!

Файлы:
1_3.mq4  2 kb
 
nikost 23.09.2010 16:17
akula:

Подскажите где ошибка!!!

Спасиба Nikost а как сечас скользащию вычесть?
 
akula:
nikost 23.09.2010 16:17
akula:

Подскажите где ошибка!!!

Спасиба Nikost а как сечас скользащию вычесть?
Файлы:
1_5.mq4  3 kb
 

nikost 23.09.2010 21:42

akula:
nikost 23.09.2010 16:17
akula:

Подскажите где ошибка!!!

Спасиба Nikost а как сечас скользащию вычесть?

Бальшое спасибо Nikost что возишся со мной!!!

есть неплохая стратегия, нужно чтобы скользящая от AD росла, ATR тоже верх, StanDev рост(от скользящей AD), а сам сигнал на BUY когда идёт пересичение линии 100 в CCI тоже от AD

if(ADA[i]<ADA[i+1] && ADA[i+1]>ADA[i+2]) а почему так неработает if(ADA[i]<ADA[i-1])
val1[i]=Low[i]-5*Point;

if(ADA[i]>ADA[i+1] && ADA[i+1]<ADA[i+2])
val2[i]=High[i]+5*Point;
i--;

Файлы:
1_5a1q.mq4  3 kb
 

в загдавик темы нужно писять не прописными буквами.

это правило на форумк.

с ССИ я запутался,еси не правильно переставь.

 

if(counted_bars<0) return(-1);

i=Bars-counted_bars -1;
while(i>=0)
{
AD[i]=iAD(NULL,0,i);
ATR[i]=iATR(NULL,0,ATR_period,i);
i--;
}
i=Bars-counted_bars -1;
while(i>=0)
{
MA[i]=iMAOnArray(AD,0,MA_period,0,MODE_SMA,i);
SD[i]=iStdDevOnArray(AD,0,SD_period,0,MODE_SMA,i);
CCI[i]=iCCIOnArray(AD,0,CCI_period,i);


if(MA[i]>MA[i+1] && SD[i]>SD[i+1] && CCI[i+1]< 100.0 && CCI[i]> 100.0 && ATR[i]>ATR[i+1])
val1[i]=Low[i]-(High[i+1]-Low[i+1])/2.0;

if(MA[i]<MA[i+1] && SD[i]>SD[i+1] && CCI[i+1]> -100.0 && CCI[i]< -100.0 && ATR[i]>ATR[i+1])
val2[i]=High[i]+(High[i+1]-Low[i+1])/2.0;
i--;
}
return(0);
}
//+------------------------------------------------------------------+

 

ещё варант -

период = 5

АТР_период = 14

if(counted_bars<0) return(-1);

i=Bars-counted_bars -1;
while(i>=0)
{
AD[i]=iAD(NULL,0,i);
ATR[i]=iATR(NULL,0,ATR_period,i);
i--;
}
i=Bars-counted_bars -1;
while(i>=0)
{
MA[i]=iMAOnArray(AD,0,period,0,MODE_SMA,i);
SD[i]=iStdDevOnArray(AD,0,period,0,MODE_SMA,i);
CCI[i]=iCCIOnArray(AD,0,period,i);
double Range=MathAbs(Close[i+1]+Close[i+2]-Open[i+1]-Open[i+2])/2.0;

if(MA[i]>MA[i+1] && SD[i]>SD[i+1] && CCI[i+1]< 100.0 && CCI[i]> 100.0 && ATR[i]>ATR[i+1])
val1[i]=Low[i]-Range;

if(MA[i]<MA[i+1] && SD[i]>SD[i+1] && CCI[i+1]> -100.0 && CCI[i]< -100.0 && ATR[i]>ATR[i+1])
val2[i]=High[i]+Range;
i--;
}
return(0);
}
//+------------------------------------------------------------------+

 

Спасиба ищё рас Коля, ты действительно хорошый специалист!

1) double Range=MathAbs(Close[i+1]+Close[i+2]-Open[i+1]-Open[i+2])/2.0; ----а ета функция усредняет?

2)я ищё не пробовал функцию (или || ) с нею можна в одну сторону создать два разных сигнала?

Причина обращения: