если мне нужно например на часовом графике в некоторой точке узнать значение дневного МА на закрытии предыдущего дня, то каким наиболее элегантным способом это сделать?
- Переменная EXTERN в пользовательском индикаторе
- Тупиковый период.
- Ошибка при выставлении ордера советником
все данные выдаются верно, а для нулевого бара действуют ограничения:
"Особенности и ограничения тестирования в MetaTrader 4"
"Особенности и ограничения тестирования в MetaTrader 4"
Нулевой бар другого периода по тому же самому тестируемому символу моделируется приблизительно
Open = корректный Open,
Close = корректный Close,
Low = min (Open,Close),
High = max (Open,Close),
Volume = итоговый Volume (неверный)
Open = корректный Open,
Close = корректный Close,
Low = min (Open,Close),
High = max (Open,Close),
Volume = итоговый Volume (неверный)
тему я не совсем верно написал.
меня интересует пример кода для вычисления МА старшего таймфрейма например 2-бара назад.
например индикатор прикрлеплен на 1 час (текущее время 8:20), а надо узнать значение МА на 2-м 4 часовом баре (т.е. открытом в 0:00 и закрытом в 4:00).
вызов iMA(NULL,PERIOD_H4,13,0,MODE_EMA,PRICE_CLOSE,shift+2); я так понимаю выдаст значение 4-х часовой МА на 7:00 (момент закрытия часого бара открытого в 6:00 == 8:00 - 2 ).
а нужно на 4:00
??
меня интересует пример кода для вычисления МА старшего таймфрейма например 2-бара назад.
например индикатор прикрлеплен на 1 час (текущее время 8:20), а надо узнать значение МА на 2-м 4 часовом баре (т.е. открытом в 0:00 и закрытом в 4:00).
вызов iMA(NULL,PERIOD_H4,13,0,MODE_EMA,PRICE_CLOSE,shift+2); я так понимаю выдаст значение 4-х часовой МА на 7:00 (момент закрытия часого бара открытого в 6:00 == 8:00 - 2 ).
а нужно на 4:00
??
нет, все правильно, вызов iMA(NULL,PERIOD_H4,13,0,MODE_EMA,PRICE_CLOSE,shift+2); выдаст значение 4-х часовой МА на баре закрытом в 4:00.
а вот пример того, что я хотел добиться:
а вот пример того, что я хотел добиться:
//+------------------------------------------------------------------+
//| ema.mq4 |
//| Copyright © 2005, Nick Bilak, beluck[AT]gmail.com |
//| http://metatrader.50webs.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Nick Bilak"
#property link "http://metatrader.50webs.com/"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Magenta
//---- input parameters
extern int Len=13;
//---- buffers
double ema[];
int highTF;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
int p=Period();
switch (p) {
case 1: highTF = 5; break;
case 5: highTF = 30; break;
case 15: highTF = 60; break;
case 30: highTF = 240; break;
case 60: highTF = 240; break;
case 240: highTF = 1440; break;
case 1440: highTF = 10080; break;
default: return(-1); break;
}
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,ema);
IndicatorShortName("EMAHtf("+Len+","+highTF+")");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted(),limit,shift,htBar,htShift;
if (counted_bars<0) return(-1);
if (counted_bars>0) counted_bars--;
limit=Bars-Len-1;
if(counted_bars>Len) limit=Bars-counted_bars-1;
for (shift=limit;shift>=0;shift--) {
htShift=(Time[shift] % (highTF*60))/Period()/60;
htBar=(shift+htShift)/(highTF/Period());
ema[shift]=iMA(NULL,highTF,Len,0,MODE_EMA,PRICE_CLOSE,htBar);
}
return(0);
}
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь