#property strict int OnInit() { double p,t; double pp[]; ArrayResize(pp,96); ArraySetAsSeries(pp,true); p=iMA(Symbol(),0,96,0,MODE_EMA,PRICE_CLOSE,0); ArrayCopy(pp,Close,0,0,96); //CopyClose(Symbol(),0,0,96,pp); //for(int i=0; i<96;i++){pp[i]=Close[i];} t=iMAOnArray(pp,0,96,0,MODE_EMA,0); Print(" iMa=",p," iMAON=",t); return(INIT_SUCCEEDED); } void OnTick() { }кнопка SRC на панели при написании коментария для вставки кода
Вот ваш код так хоть прочитать можно.
ALXIMIKS:
кнопка SRC на панели при написании коментария для вставки кода
Вот ваш код так хоть прочитать можно.
кнопка SRC на панели при написании коментария для вставки кода
Вот ваш код так хоть прочитать можно.
Прошу прощения, не знал.
Ну а что касается самой темы, что не так?
Интересно, а зачем же OnTick, если весь код и так в OnInit прекрасно помещается )))
Нету ни какой ошибки все работает верно как и должно.
Ема требует разгона для получения значений.
При расчете iMA - разгон берется от Bars - 1 и рассчитываются в кеш значения для всех баров. Потом возвращается значение только для нужного из кеша.
При расчете iMAOnArray - разгон берется от размера массива. Так как разгон короче, то и получается разногласие в результатах.
И чем ближе к началу разгона - тем больше разногласие.
Для того что бы выровнять результаты в данном случае попробуйте увеличить размер массива для расчета iMAOnArray в 2.05 раза.
Ема требует разгона для получения значений.
При расчете iMA - разгон берется от Bars - 1 и рассчитываются в кеш значения для всех баров. Потом возвращается значение только для нужного из кеша.
При расчете iMAOnArray - разгон берется от размера массива. Так как разгон короче, то и получается разногласие в результатах.
И чем ближе к началу разгона - тем больше разногласие.
Для того что бы выровнять результаты в данном случае попробуйте увеличить размер массива для расчета iMAOnArray в 2.05 раза.
Спасибо разобрался сам, действительно все дело в разгоне.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Плиз хелп. Выкладываю код. Скажите почему разные значения выдают iMa и iMAOnArray. Перепробовал разные варианты ( те которые //). Ничего не помогает.
#property copyright "Copyright 2014,"
#property link ""
#property version "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//---
double p,t;
double pp[];
ArrayResize(pp,96);
ArraySetAsSeries(pp,true);
p=iMA(Symbol(),0,96,0,MODE_EMA,PRICE_CLOSE,0);
ArrayCopy(pp,Close,0,0,96);
//CopyClose(Symbol(),0,0,96,pp);
//for(int i=0; i<96;i++){pp[i]=Close[i];}
t=iMAOnArray(pp,0,96,0,MODE_EMA,0);
Print(" iMa=",p," iMAON=",t);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//---
}
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick()
{
//---
}
//+------------------------------------------------------------------+