Icustom

 

Я хотел бы сделать советника с этим индикатором, но не могу понять, как написать функцию icustom?

Спасибо!

#property indicator_separate_window

#property indicator_buffers 3

#property indicator_color1 Black

#property indicator_color2 Lime

#property indicator_color3 Red

extern int period=10;

double ExtBuffer0[];

double ExtBuffer1[];

double ExtBuffer2[];

int init()

{

SetIndexStyle(0,DRAW_NONE);

SetIndexStyle(1,DRAW_HISTOGRAM);

SetIndexStyle(2,DRAW_HISTOGRAM);

IndicatorDigits(Digits+1);

SetIndexBuffer(0,ExtBuffer0);

SetIndexBuffer(1,ExtBuffer1);

SetIndexBuffer(2,ExtBuffer2);

IndicatorShortName("SOLAR WIND");

SetIndexLabel(1,NULL);

SetIndexLabel(2,NULL);

return(0);

}

int start()

{

//int period=10;

int limit;

int counted_bars=IndicatorCounted();

double prev,current,old;

double Value=0,Value1=0,Value2=0,Fish=0,Fish1=0,Fish2=0;

double price;

double MinL=0;

double MaxH=0;

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=0; i<limit; i++)

{ MaxH = High;

MinL = Low[Lowest(NULL,0,MODE_LOW,period,i)];

цена = (High+Low)/2;

Value = 0.33*2*((price-MinL)/(MaxH-MinL)-0.5) + 0.67*Value1;

Value=MathMin(MathMax(Value,-0.999),0.999);

ExtBuffer0=0.5*MathLog((1+Value)/(1-Value))+0.5*Fish1;

Value1=Value;

Fish1=ExtBuffer0;

}

bool up=true;

for(i=limit-2; i>=0; i--)

{

current=ExtBuffer0;

prev=ExtBuffer0;

if (((current0))||(current<0)) up= false;

if (((current>0)&&(prev0)) up= true;

if(!up)

{

ExtBuffer2=current;

ExtBuffer1=0.0;

}

else

{

ExtBuffer1=current;

ExtBuffer2=0.0;

}

}

return(0);

}

 

iCustom(NULL,0, "SOLAR WIND",10,1,0);

iCustom(NULL,0, "SOLAR WIND",10,2,0);

это то, что вы искали?

 

???

Для советника, который я программирую, мне нужно значение этого индикатора для баров до этого только что закрывшегося и последнего закрывшегося.

Как сделать, iCustom(NULL,0, "SOLAR WIND", 10, 1, 0);

ICUSTOM(NULL,0, "СОЛНЕЧНЫЙ ВЕТЕР", 10, 2, 0);

не работает?

Спасибо, с наилучшими пожеланиями.

 

iCustom(Symbol(), 0, "Sollar Wind", ... , int mode( Индекслинии индикатора ), int shift)

после названия индикатора - "Sollar Wind" - заполните свои переменные Extern

 

Но

Да, но согласно программированию индикатора в моем первом сообщении, где находятся переменные, чтобы иметь данные, которые мне нужны?

Спасибо, еще раз

 
maje:
Да, но согласно программированию индикатора в моем первом сообщении, где находятся переменные, чтобы иметь данные, которые мне нужны? Спасибо, еще раз

согласно кодам вашего индикатора, это должен быть один параметр после "SOLAR WIND" и в параметре Mode вы можете использовать 1 или 2 в зависимости от ваших потребностей

1 = первая гистограмма и 2 = вторая гистограмма в вашем индикаторе.

 

пример

Не могли бы вы показать мне практический пример, как написать icustom, чтобы иметь последнее значение для индикатора, упомянутого в топике?

Спасибо

 
maje:
Не могли бы вы показать мне практический пример, как написать icustom, чтобы иметь последнее значение для индикатора, упомянутого в топике? Спасибо

Получить последнее значение индикатора, упомянутого выше, для текущего бара:

double val1= iCustom(NULL,0, "SOLAR WIND",10,2,0);

А для предыдущего бара используйте:

double val1= iCustom(NULL,0, "SOLAR WIND",10,2,1);

 

Кто-нибудь уже разработал полную версию ea для этого индикатора. Если да, не могли бы вы поделиться с нами кодировкой? Не похоже, что это сложное ea для создания - простое пересечение с отрицательного значения на положительное, и наоборот.

Dave <<
 

double val1= iCustom(NULL,0, "SOLAR WIND",10,2,1);

Вопрос по индикатору Juice. Я могу написать индикатор icustom в таком виде, но в нем не хватает еще одной переменной индикатора:

double val1=iCustom(NULL,0, "Juice "8,0,0);

Проблема в том, что у Juice есть переменная Period, равная 8, и уровень .08. Как мне захватить уровень .08 или нет?????

Дэйв <<<
 

Ваши новые версии солнечного ветра также перерисовываются! Сделайте снимок экрана на 5 минуте, а затем еще один через 1 час или два! Есть ли другие решения проблемы перерисовки? Я бы очень хотел решить эту проблему, если это возможно.

Дэйв <<
Причина обращения: