[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 25

 
BARS >>:

Все были чайниками )))

Собственно вот с чем столкнулся. Самый максимальный период по константам это PERIOD_MN1 или 43200.

А как бы вычислить разницу между Hi и Low по текущей валютной паре с начала квартала и года?

Пытаюсь по-тупому, но не получается...

volotil_04  = MathAbs((iHigh(NULL,1440*90,0)  - iLow(NULL,1440*90,0))   /Point);   // с начала квартала
volotil_05  = MathAbs((iHigh(NULL,1440*365,0) - iLow(NULL,1440*365,0))  /Point);   // с начала года

Может функцию какую надо написать? Помогите, плиз... 

 

Уважаемые господа профи, никак не мгу найти индюк мувинга со старшим таймфреймом есть только такой 'MA-4H'

но у него недостаток - не хватает заданных типов цены, как в него добавить HIGH и LOW?

 
Goalkeeper писал(а) >>

Может функцию какую надо написать? Помогите, плиз...

High[iHighest(NULL,PERIOD_MN1,MODE_HIGH,12,0)], или High[iHighest(NULL,PERIOD_D1,MODE_HIGH,365,0)]
Вот например максимум за год... Думаю принцип понятен.
 
Figar0 >>:
Вот например максимум за год... Думаю принцип понятен.

Пасибки... Буду пробовать... Только это ведь за предыдущие полные 12 месяцев начиная с текущего дня, да? А как сделать, чтоб с начала только текущего года вычислялось?

 
keekkenen >>:

то значение что помещается в буфер, по которому рисуется гистограмма

Еще вопрос по поводу значения, которое индикатор будет передавать эксперту через iCustom.

А если в самом индикаторе есть условие:

Если одна переменная больше другой - рисуется красная гистограмма, в противном случае синяя.

Какое значение он будет передавать эксперту и есть ли возможность заставить его передавать в эксперт значение 1 в случае красной гистограммы и -1 в случае синей?


Вопрос№2:

часто в коде встречаю Return (0); и Return (-1); как это используется на практике и зачем никак не разберусь(( подскажите, пожалуйста.

 
Goalkeeper писал(а) >>

Пасибки... Буду пробовать... Только это ведь за предыдущие полные 12 месяцев начиная с текущего дня, да? А как сделать, чтоб с начала только текущего года вычислялось?

Вычислить номер бара начала года (iBarShift нам в помощь) и подставить его вместо 0.

 
xruss писал(а) >>

Вопрос№2:

часто в коде встречаю Return (0); и Return (-1); как это используется на практике и зачем никак не разберусь(( подскажите, пожалуйста.

Это просто значение возвращаемое функцией, если оно не обрабатывается, можно возвращать что угодно, хоть просто return;

 
Figar0 >>:

Это просто значение возвращаемое функцией, если оно не обрабатывается, можно возвращать что угодно, хоть просто return;

теперь понял. спасибо.


а по первому вопросу не подскажите- я пишу эксперта, который работает с индикатором (начерез iCustom.

А в самом индикаторе строятся гистограммы (как бары) и строятся они по условию:

Если одна переменная (которая вычисляется из цен бара) больше другой - рисуется красная гистограмма, в противном случае синяя.

Какое значение он будет передавать эксперту и есть ли возможность заставить его передавать в эксперт значение 1 в случае красной гистограммы и -1 в случае синей?

 
xruss >>:

..Если одна переменная (которая вычисляется из цен бара) больше другой - рисуется красная гистограмма, в противном случае синяя.

Какое значение он будет передавать эксперту и есть ли возможность заставить его передавать в эксперт значение 1 в случае красной гистограммы и -1 в случае синей?

Вы сами ответите на свой вопрос, если поймете, что каждый рисующийся буфер имеет один свой цвет. Двухцветная линия, которую Вы видите на графике, на самом деле рисуется двумя буферами. В те моменты, когда она красная, "красный" буфер равен значению линии, а "синий" равен 0 (или EmptyValue). И наоборот. Следовательно, Вам надо брать два iCustom, для двух буферов.

А какая там внутри индикатора логика, выходным буферам по барабану. Работаете, как с черным ящиком.

 
Figar0 >>:

Вычислить номер бара начала года (iBarShift нам в помощь) и подставить его вместо 0.

чё-т пробую, а не совсем получается... что я не так делаю, а?

   datetime d0 = StrToTime(Year()+".01.01");
   int newyear = iBarShift(NULL, PERIOD_MN1, d0);
   volotil_05  = MathAbs((High[iHighest(NULL,PERIOD_D1,MODE_HIGH,365,newyear)] - Low[iLowest(NULL,PERIOD_D1,MODE_LOW,365,newyear)])  /Point);   // с начала года
Причина обращения: