А вот и рисунок к предыдущему посту.
Rosh, не могу понять зачем в MRO1 ты стандартный ATR высчитываешь самостоятельно, только с задержкой на 1 бар по сравнению со стандартным (я не о конечном итоге, а о промежуточных расчетах). Ну не это главное, не врубаюсь, что ты вообще изначально задумал. Если правильно понял, ты хочешь, чтобы на малых таймфреймах разница между close предыдущей свечи и open текущей делилась на ATR большего таймфрейма? Если так, то гораздо проще все в одном индикаторе сделать. Если неправильно понял, поправь.
Rosh, не могу понять зачем в MRO1 ты стандартный ATR высчитываешь самостоятельно, только с задержкой на 1 бар по сравнению со стандартным (я не о конечном итоге, а о промежуточных расчетах). Ну не это главное, не врубаюсь, что ты вообще изначально задумал. Если правильно понял, ты хочешь, чтобы на малых таймфреймах разница между close предыдущей свечи и open текущей делилась на ATR большего таймфрейма? Если так, то гораздо проще все в одном индикаторе сделать. Если неправильно понял, поправь.
Конечно, я могу сделать это проще и этот вопрос я предвидел. А теперь представь, что ты хочешь наблюдать значения Стохастика с дневного тайм-фрейма на часовом (но не реале, а на истории). И тут уже немного придется потрудиться. И даже этот вариант я могу сделать через пользовательский индикатор, используя вызов переделанного пользовательского индикатора Стохастик. Я хотел просто настолько упростить жизнь писателя индикаторов и настолько усилить позиции МТ4 (точнее, я думал что именно это и подразумевалось под мультифреймовостью, пока не стал копать этот пример).
А что, остальные бета-тестеры со мной не согласны?
MetaQuotes, вопрос вроде задан. Как вами задумано использование индикаторов на разных временных фреймах при тестировании эксперта. Я только и жду, когда вы запустите тестер и можно будет использовать возможности мультифреймовости.
MetaQuotes, вопрос вроде задан. Как вами задумано использование индикаторов на разных временных фреймах при тестировании эксперта. Я только и жду, когда вы запустите тестер и можно будет использовать возможности мультифреймовости.
В принципе, разработчики уже ответили. Смотри здесь - "Каков механизм расчета iCustom(....)?"
Теперь пытаюсь сформулировать предложение по изменению механизма расчета индикаторов при обращении из тестера и при вызовах с более высоких тайм-фреймов.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не ту страну назвали Гондурасом, немного растроен. Нет так представлял.
Сделали в МТ4 возможность поглядывать на значения индикаторов на других инструментах и даже на других тайм-фреймах. Так как тестера пока нет, то решил обойтись индикатором. Написал исходный индикатор, предполагается, что он нам нужен на дневках (D1)
//+------------------------------------------------------------------+ //| MRO1.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int periodMRO1=10; //---- buffers double RatedRangeBuffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,RatedRangeBuffer); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double Range,AvrRange; int shift,i; // int i; int counted_bars=Bars-periodMRO1-1; //int counted_bars=IndicatorCounted(); //---- TODO: add your code here for (shift=counted_bars;shift>=0;shift--) { Range=0.0; for (i=shift+1;i<=shift+periodMRO1;i++) { Range=Range+MathAbs(High[i]-Low[i]); }; AvrRange=Range/periodMRO1; RatedRangeBuffer[shift]=MathAbs(Open[shift+1]-Close[shift+2])/AvrRange; }; //---- return(0); }Чтобы иметь его показания на более мелких тайм-фреймах, сделал еще один индикатор, который вызывает исходный.
//+------------------------------------------------------------------+ //| Test.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 Red //---- input parameters extern int PeriodMin=1440; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ExtMapBuffer1); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- TODO: add your code here //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int bigshift; int shift; int counted_bars=IndicatorCounted(); //---- TODO: add your code here for (shift=Bars;shift>=0;shift--) { bigshift=MathFloor(shift*Period()/PeriodMin); ExtMapBuffer1[shift]=iCustom(NULL,PeriodMin,"MRO1",10,0,bigshift); }; //---- return(0); }Скажу сразу, это плод моих попыток получить хоть что-то. Получил эдакие ступеньки. Но ведь до того,как я занялся этим экспериментом, я предполагал получить значения исходного индикатора в динамике, а получил статику. То есть, я могу получить либо значение индикатора в Close[1](Open[0]) либо в точке Close[0] - что является заглядыванием в будущее. Нельзя использовать индикаторы , использующие динамику цены: текущий Close, TypicalPrice и т.д. Очень жаль.
Картинку выложить не могу, так как сносил систему и забыл записать пароли для ftp-доступа к своему сайту. Постараюсь вставить завтра.
Может все-таки когда-нибудь появится возможность их вставки?