Единственное что могу предложить — вот такой индикатор (чудом нашёл).
Давным-давно писал по нему советник, но итоги не помню.
Может пригодится.
//+------------------------------------------------------------------+
//| VininI_Impuls.mq4 |
//| Victor Nicolaev |
//| vinin@mail.ru |
//+------------------------------------------------------------------+
/*
Надо написать советник (может переворотный) на этом индикаторе.
Можно использовать один буфер или поиграться с двумя (тремя) буферами.
*/
#property copyright "Copyright 2008. Victor Nicolaev"
#property link "vinin@mail.ru"
#property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Green
#property indicator_color2 Red
#property indicator_color3 Yellow
#property indicator_level1 0
extern int Bar0 = 60;
extern int Bar1 = 240;
extern int Bar2 =1440;
extern int MAPeriod = 5;
//extern int Limit =1440;
//---- buffers
double Buffer0[];
double Buffer1[];
double Buffer2[];
double Ma0[];
double MA1[];
double MA2[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init() {
//---- drawing settings
IndicatorBuffers(6);
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(0,Ma0);
SetIndexBuffer(1,MA1);
SetIndexBuffer(2,MA2);
SetIndexBuffer(3,Buffer0);
SetIndexBuffer(4,Buffer1);
SetIndexBuffer(5,Buffer2);
SetIndexDrawBegin(0,Bar2+MAPeriod);
SetIndexDrawBegin(1,Bar2+MAPeriod);
SetIndexDrawBegin(2,Bar2+MAPeriod);
return(0); }//int init()
//+------------------------------------------------------------------+
int start() {
int limit;
int counted_bars=IndicatorCounted();
int i,j;
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
// if (Limit>0) limit=MathMin(Limit,limit);
for (i = limit;i>=0;i--){
Buffer0[i] = (Close[i] - Open[i+Bar0]) / Bar0;
Buffer1[i] = (Close[i] - Open[i+Bar1]) / Bar1;
Buffer2[i] = (Close[i] - Open[i+Bar2]) / Bar2;
}
for (i = limit;i>=0;i--){
Ma0[i] = iMAOnArray(Buffer0, 0, MAPeriod, 0, MODE_SMA, i);
MA1[i] = iMAOnArray(Buffer1, 0, MAPeriod, 0, MODE_SMA, i);
MA2[i] = iMAOnArray(Buffer2, 0, MAPeriod, 0, MODE_SMA, i);
}
return(0);
}
Сейчас обратил внимание, что даже моя памятка осталась когда первый раз его увидел!!!
В начале в настройках добавьте
И замените функцию.Прежнюю удалите и добавьте эту:
ssg