Вроде поправил
4irik:
Останавливается на нулевом баре. Может кто поправит.
//+------------------------------------------------------------------+ //| XSUM.mq4 | //| Copyright © 2009, Ivan Kornilov | //| Copyright © 2010, Victor Nicolaev | //| vinin.ucoz.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Ivan Kornilov" #property link "excelf@gmail.com" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 DodgerBlue #property indicator_color2 Red extern int period = 21; extern int shift = 5; extern int ma = 10; double XBuffer[]; double MABuffer[]; int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, XBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, MABuffer); SetIndexDrawBegin(0, (period+ma)); SetIndexDrawBegin(1, (period+ma)); IndicatorShortName("XSUM(" + period + "," + ma + ")"); } int start() { int i; int j; int counted_bars=IndicatorCounted(); int limit = Bars - counted_bars; if(counted_bars == 0) { limit = Bars - period-shift*3-1; } for(i = limit; i >= 0; i--) { double sum = 0; for(j=i;j<i+period;j++) { sum+= Close[j] / Close[j+shift]; } XBuffer[i] = sum; } for(i = 0; i < limit; i++) { MABuffer[i] = iMAOnArray(XBuffer, Bars, ma, 0, 2, i); } return(0); }
Vinin:
Вроде поправил
4irik:
Останавливается на нулевом баре. Может кто поправит.
//+------------------------------------------------------------------+ //| XSUM.mq4 | //| Copyright © 2009, Ivan Kornilov | //| Copyright © 2010, Victor Nicolaev | //| vinin.ucoz.ru | //+------------------------------------------------------------------+ #property copyright "Copyright © 2009, Ivan Kornilov" #property link "excelf@gmail.com" #property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 DodgerBlue #property indicator_color2 Red extern int period = 21; extern int shift = 5; extern int ma = 10; double XBuffer[]; double MABuffer[]; int init() { SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0, XBuffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1, MABuffer); SetIndexDrawBegin(0, (period+ma)); SetIndexDrawBegin(1, (period+ma)); IndicatorShortName("XSUM(" + period + "," + ma + ")"); } int start() { int i; int j; int counted_bars=IndicatorCounted(); int limit = Bars - counted_bars; if(counted_bars == 0) { limit = Bars - period-shift*3-1; } for(i = limit; i >= 0; i--) { double sum = 0; for(j=i;j<i+period;j++) { sum+= Close[j] / Close[j+shift]; } XBuffer[i] = sum; } for(i = 0; i < limit; i++) { MABuffer[i] = iMAOnArray(XBuffer, Bars, ma, 0, 2, i); } return(0); }
Vinin:
Вроде поправил
4irik:
Останавливается на нулевом баре. Может кто поправит.
Функционирует. Спасибо.
10 за идею
4irik:
Функционирует. Спасибо.
Можно конечно еще упростить, но надо ли. Тогда от авторской идеи ничего не останется
Vinin:
Можно конечно еще упростить, но надо ли. Тогда от авторской идеи ничего не останется
4irik:
Функционирует. Спасибо.
Можно конечно еще упростить, но надо ли. Тогда от авторской идеи ничего не останется
как упростить, если не секрет ?
Исправил проблему с нулевым баром. Ждем когда модератор одобрит.
excelf:
как упростить, если не секрет ?
как упростить, если не секрет ?
Ответил в личку
Можно придать индикатору привычный вид:
XBuffer[i] = sum-period;
По моему не очень. Сигналы открытия ещё может и даёт, но закрывать надо по другому индюку. Три балла.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
XSUM:
Author: excelf