iMaOnArray
Если есть попытка написания эксперта - должен быть и код, который не работает. Без кода Вам никто не поможет.
double PID[100]; double MAS; //ArraySetAsSeries(PID,true); //---- for (int i=0; i<=100; i++) { //ArrayResize(PID,ArraySize(PID)+1); PID[i]=iMA(NULL,0,35,0,0,0,0); MAS=iMAOnArray(PID,0,45,3,MODE_EMA,0); } Comment(DoubleToStr(PID[0],4)+"n"+DoubleToStr(MAS,4));
1. Надо делать 2 разных цикла: первый для заполнения буфера значениями
SMA, второй для расчёта EMA на SMA
2. Не забывать об индексации - прямой и обратной.
3. А что это за запись в цикле такая? PID[i]=iMA(NULL,0,35,0,0,0,0); Вы все элементы массива PID заполняете одним и тем
же значением
4. То же что и 3, только относительно массива MAS
1. Надо делать 2 разных цикла: первый для заполнения буфера значениями
SMA, второй для расчёта EMA на SMA
2. Не забывать об индексации - прямой и обратной.
double PID[100]; double MAS; ArraySetAsSeries(PID,true); //---- for (int i=0; i<=100; i++) { //ArrayResize(PID,ArraySize(PID)+1); PID[i]=iMA(NULL,0,35,0,0,0,0); } for (int i=0; i<=100; i++) { MAS=iMAOnArray(PID,0,45,3,MODE_EMA,0); } Comment(DoubleToStr(PID[0],4)+"n"+DoubleToStr(MAS,4));Результат тоже не очень...
Я ещё пару пунктов добавил - 3 и 4
PID[i]=iMA(NULL,0,35,0,0,0,i);Надо так? Но так я тоже пробовал.
Ну а вот это что такое?
for (int i=0; i<=100; i++) { MAS=iMAOnArray(PID,0,45,3,MODE_EMA,0); } Comment(DoubleToStr(PID[0],4)+"\n"+DoubleToStr(MAS,4));
Попробуйте хотя бы вот так
for (i=0; i<=100; i++) { MAS=iMAOnArray(PID,0,45,3,MODE_EMA,i); Print(DoubleToStr(PID[i],4)," ",DoubleToStr(MAS,4)); }
double PID[100]; double MAS; ArraySetAsSeries(PID,true); //---- for (int i=0; i<=100; i++) { //ArrayResize(PID,ArraySize(PID)+1); PID[i]=iMA(NULL,0,35,0,0,0,i); } for (i=0; i<=100; i++) { MAS=iMAOnArray(PID,0,45,0,MODE_EMA,0); } Comment(DoubleToStr(PID[0],4)+"\n"+DoubleToStr(MAS,4));Кажись победил...
В общем проблема. Нужно для эксперта расчитать SMA по Close и на его основе расчитать EMA со сдвигом -3.
Пробовал iMAOnArray, но что-то не клеется: SMA расчитывается нормально, а EMA выдает лабуду даже с нулевым сдвигом. Может что посоветуете?