Вы ошибаетесь, iRSI() вшит в терминал и всегда доступен, вне зависимости от манипуляций с файлами.Я на этом языке не разговариваю. Проще! Вы мне все сказали, - зачем я использую iCustom а не iRSI. Я в свою очередь пытаюсь объяснить, что только так он у меня и работает. iRSI не поставляется. Иного варианта я не знаю.
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Yellow
#property indicator_color2 C'0,47,0'
#property indicator_color3 FireBrick
#property indicator_color4 Silver
#property indicator_color5 Silver
#property indicator_width2 3
#property indicator_width3 3
extern int P1 = 20;
extern int P2 = 21;
extern int P3 = 6;
extern double P4 = 0.8;
double a[];
double b[];
double c[];
double d[];
double e[];
double Upperband[];
double Lowerband[];
double avg[];
double sDev;
string INDNAME ="Cubb_Macd";
int init()
{
IndicatorBuffers(8);
SetIndexBuffer(0, a);
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(1, b);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(2, c);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(3, d);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(4, e);
SetIndexStyle(4, DRAW_LINE);
SetIndexBuffer(5, Upperband);
SetIndexBuffer(6, Lowerband);
SetIndexBuffer(7, avg);
IndicatorShortName(INDNAME);
return(0);
}
int start(){
int limit;
int counted_bars = IndicatorCounted();
if(counted_bars < 0)
return(-1);
if(counted_bars > 0)
counted_bars--;
limit = Bars-counted_bars;
for(int i = 0; i < limit; i++)
a[i] = iMA(NULL,0, P1, 0, MODE_EMA, PRICE_CLOSE, i) -
iMA(NULL,0, P2, 0, MODE_EMA, PRICE_CLOSE, i);
for(i = 0; i < limit; i++){
avg[i] = iMAOnArray(a, 0, P3, 0, MODE_EMA, i);
sDev = iStdDevOnArray(a, 0, P3, MODE_EMA, 0, i);
Upperband[i] = avg[i] + (P4 * sDev);
Lowerband[i] = avg[i] - (P4 * sDev);
b[i]=a[i];
c[i]=a[i];
d[i]=Upperband[i];
e[i]=Lowerband[i];
if(a[i] > a[i+1])
c[i] = EMPTY_VALUE;
if(a[i] < a[i+1])
b[i] = EMPTY_VALUE;
}
return(0);
}
У него все значения очень маленькие может поэтому не получается?Ребята посмотрите еще вот этот индикатор, у меня с него почему-то iCUSTOM не получается. Все делаю как с предыдущими инд. но нечего подобного.
PHP:#property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Yellow #property indicator_color2 C'0,47,0' #property indicator_color3 FireBrick #property indicator_color4 Silver #property indicator_color5 Silver #property indicator_width2 3 #property indicator_width3 3 extern int P1 = 20; extern int P2 = 21; extern int P3 = 6; extern double P4 = 0.8; double a[]; double b[]; double c[]; double d[]; double e[]; double Upperband[]; double Lowerband[]; double avg[]; double sDev; string INDNAME ="Cubb_Macd"; int init() { IndicatorBuffers(8); SetIndexBuffer(0, a); SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(1, b); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(2, c); SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(3, d); SetIndexStyle(3, DRAW_LINE); SetIndexBuffer(4, e); SetIndexStyle(4, DRAW_LINE); SetIndexBuffer(5, Upperband); SetIndexBuffer(6, Lowerband); SetIndexBuffer(7, avg); IndicatorShortName(INDNAME); return(0); } int start(){ int limit; int counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; limit = Bars-counted_bars; for(int i = 0; i < limit; i++) a[i] = iMA(NULL,0, P1, 0, MODE_EMA, PRICE_CLOSE, i) - iMA(NULL,0, P2, 0, MODE_EMA, PRICE_CLOSE, i); for(i = 0; i < limit; i++){ avg[i] = iMAOnArray(a, 0, P3, 0, MODE_EMA, i); sDev = iStdDevOnArray(a, 0, P3, MODE_EMA, 0, i); Upperband[i] = avg[i] + (P4 * sDev); Lowerband[i] = avg[i] - (P4 * sDev); b[i]=a[i]; c[i]=a[i]; d[i]=Upperband[i]; e[i]=Lowerband[i]; if(a[i] > a[i+1]) c[i] = EMPTY_VALUE; if(a[i] < a[i+1]) b[i] = EMPTY_VALUE; } return(0); }
не могу открыть, сбросьте в личку, плз
Ну что? Нет никаких идей по macd? И MTF тоже глючит. Вроде несложный. Я даже его как починил. Все работало и MTF тоже работал. Но я потерял файл который сделал. И не могу вспомнить, что я тогда сделал. Остался только вот этот кривой.
Лучше приведите свой код.. чтоб было что смотреть что у Вас не получаетсяРебята посмотрите еще вот этот индикатор, у меня с него почему-то iCUSTOM не получается. Все делаю как с предыдущими инд. но нечего подобного.
PHP:#property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Yellow #property indicator_color2 C'0,47,0' #property indicator_color3 FireBrick #property indicator_color4 Silver #property indicator_color5 Silver #property indicator_width2 3 #property indicator_width3 3 extern int P1 = 20; extern int P2 = 21; extern int P3 = 6; extern double P4 = 0.8; double a[]; double b[]; double c[]; double d[]; double e[]; double Upperband[]; double Lowerband[]; double avg[]; double sDev; string INDNAME ="Cubb_Macd"; int init() { IndicatorBuffers(8); SetIndexBuffer(0, a); SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(1, b); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(2, c); SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(3, d); SetIndexStyle(3, DRAW_LINE); SetIndexBuffer(4, e); SetIndexStyle(4, DRAW_LINE); SetIndexBuffer(5, Upperband); SetIndexBuffer(6, Lowerband); SetIndexBuffer(7, avg); IndicatorShortName(INDNAME); return(0); } int start(){ int limit; int counted_bars = IndicatorCounted(); if(counted_bars < 0) return(-1); if(counted_bars > 0) counted_bars--; limit = Bars-counted_bars; for(int i = 0; i < limit; i++) a[i] = iMA(NULL,0, P1, 0, MODE_EMA, PRICE_CLOSE, i) - iMA(NULL,0, P2, 0, MODE_EMA, PRICE_CLOSE, i); for(i = 0; i < limit; i++){ avg[i] = iMAOnArray(a, 0, P3, 0, MODE_EMA, i); sDev = iStdDevOnArray(a, 0, P3, MODE_EMA, 0, i); Upperband[i] = avg[i] + (P4 * sDev); Lowerband[i] = avg[i] - (P4 * sDev); b[i]=a[i]; c[i]=a[i]; d[i]=Upperband[i]; e[i]=Lowerband[i]; if(a[i] > a[i+1]) c[i] = EMPTY_VALUE; if(a[i] < a[i+1]) b[i] = EMPTY_VALUE; } return(0); }
Лучше приведите свой код.. чтоб было что смотреть что у Вас не получается
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Yellow
#property indicator_color2 C'0,47,0'
#property indicator_color3 FireBrick
#property indicator_color4 Silver
#property indicator_color5 Silver
#property indicator_width2 3
#property indicator_width3 3
double a[];
double b[];
double c[];
double d[];
double e[];
string INDNAME ="CM";
int init()
{
SetIndexBuffer(0, a);
SetIndexStyle(0, DRAW_LINE);
SetIndexBuffer(1, b);
SetIndexStyle(1, DRAW_LINE);
SetIndexBuffer(2, c);
SetIndexStyle(2, DRAW_LINE);
SetIndexBuffer(3, d);
SetIndexStyle(3, DRAW_LINE);
SetIndexBuffer(4, e);
SetIndexStyle(4, DRAW_LINE);
IndicatorShortName(INDNAME);
return(0);
}
int start(){
int limit;
int counted_bars = IndicatorCounted();
limit = Bars;
for(int i = 0; i < limit; i++){
a[i] = iCustom(NULL,0,"Cubb_Macd", 0, 0, 0, i);
b[i] = iCustom(NULL,0,"Cubb_Macd", 0, 0, 1, i);
c[i] = iCustom(NULL,0,"Cubb_Macd", 0, 0, 2, i);
d[i] = iCustom(NULL,0,"Cubb_Macd", 0, 0, 3, i);
e[i] = iCustom(NULL,0,"Cubb_Macd", 0, 0, 4, i);
}
return(0);
}
PHP:a[i] = iCustom(NULL,0,"Cubb_Macd", P1, P2, P3, P4, 0, i);
Я же давал тебе ссылку на документацию чтобы ты не пробовал через ... в ...Не знаю? Я вымотался и терминал тоже. Он у меня уже раз сто завис. То ли я не правильно вписываю,то ли не то вписываю. И через запятую и через точку и в кавычках, и периоды и переменные. Только один сплошной висяк.
Параметры:
symbol - Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
name - Имя пользовательского индикатора.
... - Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
mode - Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.
shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).
Пример:
double val=iCustom(NULL, 0, "SampleInd",13,1,0);
a = iCustom(NULL,0,"Cubb_Macd", 0, 0, 0, i);
a = iCustom(NULL,0,"Cubb_Macd", P1, P2, P3, P4, 0, i);
a = iCustom(NULL,0,"Cubb_Macd", "P1", "P2"," P3"," P4", 0, i);
a = iCustom(NULL,0,"Cubb_Macd", 20, 21,6, 0.8, 0, i);
a = iCustom(NULL,0,"Cubb_Macd", avg, Upperband,Lowerband, 0, i);
a = iCustom(NULL,0,"Cubb_Macd", "avg", "Upperband","Lowerband", 0, i);
Вот основные варианты и еще как то пытался извратиться, но нечего кроме сплошного висяка.