Здравствуйте. Нужна подсказка. Мне необходимо нарисовать линию по МА и пару линий выше и ниже на определенное кол-во пунктов, но необходимо, чтобы данные брались из определенного таймфрейма, и вот эта линия, оставаясь такой же, рисовалась на всех остальных таймфермах. Пробовал просто через индикатор, вызывая МА только с параметром, допустим M30, но, визуально, переключаясь между графиками, линии вроде как похожи, но по цене в одинаковых точках не соответствуют друг другу. Буду очень рад вашему совету, подскажите, как правильно сделать так, чтобы на всех графиках рисовалась одинаковая линия, сгенерированная МА по определенному таймфрейму?
- Как программно нарисовать линии по точкам?
- Подскажите пожалуйста. Параллельные линии.
- Создание простой программы
От чего берётся МА?
Вообще-то я хотел спросить: программировать умеешь?
Программировать умею. Но на MQL4 опыта пока не много.
Stingerrr:
Программировать умею. Но на MQL4 опыта пока не много.
Почти моя ситуация, но я исправляюсь )))))
Программировать умею. Но на MQL4 опыта пока не много.
Функции мне известны...посмотрю, спасибо. От недостатка опыта в этом языке мне просто было интересно каким образом это лучше сделать...скрипт, индикатор, может и то и то, взаимодействие между ними...я не очень представляю. Тоже хотел задать вопрос, используя iMA(,,) по определенному периоду, запоминаю значения, которые он возвращает и пытаюсь нарисовать на других таймфреймах линию по этим же значениям... чисто теоретически, значения то одни и те же...почему линии не соответствуют друг другу?
MikeM:
Почти моя ситуация, но я исправляюсь )))))
Почти моя ситуация, но я исправляюсь )))))
Понимаю) Желаю успеха)
Stingerrr:
... каким образом это лучше сделать...скрипт, индикатор, может и то и то, взаимодействие между ними...я не очень представляю.
Скрипт - программа, выполняющаяся только один раз после запуска.... каким образом это лучше сделать...скрипт, индикатор, может и то и то, взаимодействие между ними...я не очень представляю.
Индикатор - программа,часть которой автоматически выполняется с приходом каждого нового тика.
Stingerrr:
значения то одни и те же...почему линии не соответствуют друг другу?
Хорошо бы увидеть пример числовых данных и линий, а то непонятно.
значения то одни и те же...почему линии не соответствуют друг другу?
#property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Red #property indicator_color2 LimeGreen #property indicator_color3 LimeGreen //---- indicator parameters extern int MA_Period=10; extern int Pips = 50; //---- indicator buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; //---- int ExtCountedBars=0; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int draw_begin; string short_name; //---- drawing settings SetIndexStyle(0,DRAW_LINE,STYLE_SOLID); SetIndexStyle(1,DRAW_LINE,STYLE_DOT); SetIndexStyle(2,DRAW_LINE,STYLE_DOT); SetIndexShift(0,0); SetIndexShift(1,0); SetIndexShift(2,0); IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)); if(MA_Period<1) MA_Period=1; draw_begin=MA_Period-1; //---- indicator short name IndicatorShortName("Kanal("+MA_Period+")"); SetIndexLabel(0,"MA"+MA_Period+" for Close"); SetIndexLabel(1,"Kanal(MA"+MA_Period+")+("+Pips+")Upper"); SetIndexLabel(2,"Kanal(MA"+MA_Period+")-("+Pips+")Lower"); SetIndexDrawBegin(0,draw_begin); SetIndexDrawBegin(1,draw_begin); SetIndexDrawBegin(2,draw_begin); //---- indicator buffers mapping SetIndexBuffer(0,ExtMapBuffer1); SetIndexBuffer(1,ExtMapBuffer2); SetIndexBuffer(2,ExtMapBuffer3); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; if(Bars<=MA_Period) return(0); ExtCountedBars=IndicatorCounted(); //---- check for possible errors if (ExtCountedBars<0) return(-1); //---- last counted bar will be recounted if (ExtCountedBars>0) ExtCountedBars--; limit=Bars-ExtCountedBars; //---- Lines counted in the buffers for(int i=0; i<limit; i++) { ExtMapBuffer1[i] = iMA(NULL,PERIOD_H1,MA_Period,0,MODE_SMA,PRICE_CLOSE,i); ExtMapBuffer2[i] = iMA(NULL,PERIOD_H1,MA_Period,0,MODE_SMA,PRICE_CLOSE,i)+Pips*Point; ExtMapBuffer3[i] = iMA(NULL,PERIOD_H1,MA_Period,0,MODE_SMA,PRICE_CLOSE,i)-Pips*Point; } //---- done return(0); }Начнем с начала. Вот индикатор. Допустим, при переходе на новый таймфрейм индикатор выполняется и рисует линию. МА мы вызываем, он работает на часовом периоде. И по сути каждый раз строит линию по часовому периоду. Но значение линий в одинаковых точках на разных таймфреймах не одинаковы. Если есть желание, можете сами попробовать)
MTF MA гуглите.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь