программно - сложно, проще предварительно закинуть на график тестера все используемые индикаторы (с нужными настройками), и сохранить шаблон как tester.tpl, этот шаблон будет загружаться автоматически.
Если можно сделать, то подскажите пожалуйста как. Что нужно написать в коде советника, чтобы при запуске в тестере советника, используемый индикатор рисовался на графике по ходу тестирования, а не появлялся лишь после прогонки по истории?
Размещаете его на графике инструмента на соответствующем ТФ и входными параметрами, как и в тестируемом советнике, далее сохраняете этот шаблон с таким же именем, как у советника. Все. При запуске в тестере стратегий этого сова - все пользуемые индикаторы будут отображаться при визуализации тестирования на всем протяжении теста.
FAQ: программно - сложно, проще предварительно закинуть на график тестера все используемые индикаторы (с нужными настройками), и сохранить шаблон как tester.tpl, этот шаблон будет загружаться автоматически.
extern int Per = 6; // Период RSI extern int RSI_Price = 6; // цена :0-Close; 1-Open; 2-High; 3-Low; 4-"high+low)/2"; 5-"(H+L+C)/3"; 6-"(H+L+C+C)/4". extern int up = 70; // Уровень перекупленности индикатора RSI extern int dn = 30; // Уровень перепроданности индикатора RSI extern int N = 6; // Число баров выше уровня перекупленности/ниже уровня перепроданности, больше которого сигнал = "0"
double Buffer[];
int init() { SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,Buffer); SetIndexLabel(0,"Sign"); return(0); }
int start() { int counted_bars=IndicatorCounted(); if (Bars <= Per+11) return(0); if (counted_bars > 0) counted_bars--; int limit = Bars-counted_bars;
for (int i=0; i<limit; i++) { double a = iRSI( NULL,0,Per,RSI_Price,i); double b = iRSI( NULL,0,Per,RSI_Price,i+1);
double Sign=1;
int count = 0; if ((a>up) || (a<dn) || (b>up && a<up) || (b<dn && a>dn)) { for (int j=0; j<=N; j++) { double R=iRSI(NULL,0,Per,RSI_Price,j); if((R>up)||(R<dn)) count++; } if (count>N) Sign=0; } Buffer[i] = Sign; } return(0); }
Добрый вечер!
Если можно сделать, то подскажите пожалуйста как. Что нужно написать в коде советника, чтобы при запуске в тестере советника, используемый индикатор рисовался на графике по ходу тестирования, а не появлялся лишь после прогонки по истории?
Размещаете его на графике инструмента на соответствующем ТФ и входными параметрами, как и в тестируемом советнике, далее сохраняете этот шаблон с таким же именем, как у советника. Все. При запуске в тестере стратегий этого сова - все пользуемые индикаторы будут отображаться при визуализации тестирования на всем протяжении теста.
2 FAQ, Roman. Спасибо!
программно - сложно, проще предварительно закинуть на график тестера все используемые индикаторы (с нужными настройками), и сохранить шаблон как tester.tpl, этот шаблон будет загружаться автоматически.
Спасибо! А я каждый раз закидывал!
Здравствуйте !
Проблема с расчетом сигнала:
если RSI выше уровня перекупленности или ниже уровня перепроданности более чем N баров, то сигнал = "0", во всех остальных случаях сигнал = "1".
Может, ошибка с циклом, - счётчик не работает, т.е. сигнал "0" возникает сразу за уровнями...
#property indicator_buffers 1
extern int Per = 6; // Период RSI
extern int RSI_Price = 6; // цена :0-Close; 1-Open; 2-High; 3-Low; 4-"high+low)/2"; 5-"(H+L+C)/3"; 6-"(H+L+C+C)/4".
extern int up = 70; // Уровень перекупленности индикатора RSI
extern int dn = 30; // Уровень перепроданности индикатора RSI
extern int N = 6; // Число баров выше уровня перекупленности/ниже уровня перепроданности, больше которого сигнал = "0"
double Buffer[];
int init()
{ SetIndexStyle(0,DRAW_NONE); SetIndexBuffer(0,Buffer); SetIndexLabel(0,"Sign");
return(0);
}
int start()
{ int counted_bars=IndicatorCounted();
if (Bars <= Per+11) return(0); if (counted_bars > 0) counted_bars--; int limit = Bars-counted_bars;
for (int i=0; i<limit; i++)
{ double a = iRSI( NULL,0,Per,RSI_Price,i);
double b = iRSI( NULL,0,Per,RSI_Price,i+1);
double Sign=1;
int count = 0;
if ((a>up) || (a<dn) || (b>up && a<up) || (b<dn && a>dn))
{ for (int j=0; j<=N; j++)
{ double R=iRSI(NULL,0,Per,RSI_Price,j);
if((R>up)||(R<dn)) count++;
}
if (count>N) Sign=0;
}
Buffer[i] = Sign;
}
return(0);
}
Добрый день, подскажите пожалуйста, каким можно пользоваться индикатором, который показывает объем, но не тиковый?
Добрый день, подскажите пожалуйста, каким можно пользоваться индикатором, который показывает объем, но не тиковый?
Добрый. Смотрите эту статью.
Вверху экрана - менюбар - вкладка ТА.
Вот нашел статью
https://www.mql5.com/ru/code/9376
но там что то с сайтом, а похожего никто не встречал?