Регистр смените в заголовке
да уж
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);
В общем ищите себе пример работающий.
nikost 23.09.2010 21:42
Подскажите где ошибка!!!
Бальшое спасибо 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--;
в загдавик темы нужно писять не прописными буквами.
это правило на форумк.
с ССИ я запутался,еси не правильно переставь.
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)я ищё не пробовал функцию (или || ) с нею можна в одну сторону создать два разных сигнала?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Подскажите где ошибка!!!