а как там с моим главным вопросом. повторюсь. с помощью какой функции я могу заполнить массив последними 5-ю ценами. для того что бы выяснить с какой стороны цена пересекает линию? Заранее благодарен.
soroko: это я понял, а как сдвигать цену внутри массива. Функцией ArrayCopy пробовал, она передает 0,0 или тот же самый Bid. И еще меня беспокоит массивность кода, нельзя это все сделать одной функцией?
soroko: а как там с моим главным вопросом. повторюсь. с помощью какой функции я могу заполнить массив последними 5-ю ценами. для того что бы выяснить с какой стороны цена пересекает линию? Заранее благодарен.
Вам надо получить базовые знания программирования.
Не могу получить параметры индикатора, которого нет на графике. Ниже код, в котором убрано все лишнее, строки получения параметра индикатора скопированы со справки. Сам индикатор присоединяется к часовому графику, но поработать я хочу с пятиминутным. GetLastError() выдает ошибку 4006, хотя ничего вроде криминального нет...
int m_MA_M5;
intOnInit()
{
m_MA_M5 = iMA(NULL, PERIOD_M5, 12, 0, MODE_SMA, PRICE_CLOSE);
if (m_MA_M5 <=0 )
{
Print("Error create MA");
return (INIT_FAILED);
}
//---return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constdatetime &time[],
constdouble &open[],
constdouble &high[],
constdouble &low[],
constdouble &close[],
constlong &tick_volume[],
constlong &volume[],
constint &spread[])
{
//---if (prev_calculated == rates_total)
return (rates_total);
MqlParam parameters[];
ENUM_INDICATORindicator_type;
int params=IndicatorParameters(m_MA_M5,indicator_type,parameters);
if (params<0)
{
Print("Error geted data Last Error=", GetLastError());
}else{
//--- заголовок сообщенияstring par_info="Short name M5"+", type "
+EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
//--- for(int p=0;p<params;p++)
{
par_info+=StringFormat("parameter %d: type=%s, long_value=%d, double_value=%G,string_value=%s\r\n",
p,
EnumToString((ENUM_DATATYPE)parameters[p].type),
parameters[p].integer_value,
parameters[p].double_value,
parameters[p].string_value
);
}
Print(par_info);
}
//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+
Тиковый и реальный объём (если есть).
а чем отличается тиковый от реального???
а чем отличается тиковый от реального???
тиковый - количество сделок, реальный с учетом их размера
тогда почему реальный везде 0 показывает ?
тогда почему реальный везде 0 показывает ?
нет данных, на форексе реальные объемы не известны, это для других бирж, типа фортс
спасибо за экономию моего времени которое я бы потратил на поиски)
это я понял, а как сдвигать цену внутри массива. Функцией ArrayCopy пробовал, она передает 0,0 или тот же самый Bid. И еще меня беспокоит массивность кода, нельзя это все сделать одной функцией?
а как там с моим главным вопросом. повторюсь. с помощью какой функции я могу заполнить массив последними 5-ю ценами. для того что бы выяснить с какой стороны цена пересекает линию? Заранее благодарен.
Не могу получить параметры индикатора, которого нет на графике. Ниже код, в котором убрано все лишнее, строки получения параметра индикатора скопированы со справки. Сам индикатор присоединяется к часовому графику, но поработать я хочу с пятиминутным. GetLastError() выдает ошибку 4006, хотя ничего вроде криминального нет...