Общие вопросы по разработке > CurrentIndex

Общие вопросы по разработке в Альфа-Директ 4. Обсуждение разработки пользовательских индикаторов, стратегий.
Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

CurrentIndex

Непрочитанное сообщение Den » 16 ноя 2017, 13:35

Добрый день !

Евгений , подскажите пожалуйста, где H ?

Код: Выделить всё

function Initialize()
{
IndicatorName = "C_Index";
AddInput("Input1", Inputs.Candle);   
   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
AddShadowSeries("D", DrawAs.Custom, Color.HotPink);

}

function Evaluate()
{



if (Input.High[0] >= CurrentIndex  )
{


            H[0] = Input1.High[0];

             
}     

if (Input.Low[0] <= CurrentIndex   )
{



               L[0] = Input1.Low[0];
     
       
}     

               H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 4, Color.Fuchsia, 100);
               L.DrawArrowUp(Color.Lime, LineStyles.Solid, 4, Color.Lime, 100);


}


Вложения
C_I.png
C_I.png (6.41 КБ) 6886 просмотров

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: CurrentIndex

Непрочитанное сообщение Den » 16 ноя 2017, 13:36

а должно быть так
Вложения
C_I_2.png
C_I_2.png (6.92 КБ) 6885 просмотров

Аватара пользователя
evge
Администратор
Сообщения: 1654
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 305 раз
Контактная информация:

Re: CurrentIndex

Непрочитанное сообщение evge » 16 ноя 2017, 13:41

Индекс бара и цену нет смысла сравнивать, т.к. он никакого отношения к цене не имеет.

CurrentIndex – возвращает значение текущего индекса бара в момент вызова функции Evaluate(). Используется для ограничения начального интервала расчета.
никогда такого не было и вот опять

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: CurrentIndex

Непрочитанное сообщение Den » 16 ноя 2017, 13:44

это да конечно, но как сделать, чтобы появились Н ?

Аватара пользователя
evge
Администратор
Сообщения: 1654
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 305 раз
Контактная информация:

Re: CurrentIndex

Непрочитанное сообщение evge » 16 ноя 2017, 13:45

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

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: CurrentIndex

Непрочитанное сообщение Den » 16 ноя 2017, 13:52

CurrentIndex тут в качестве Last (чтобы, индикатор проставлял H[0] = Input[0] )

В общем я хотел вас спросить, как указать вот этот High[0] ?

Не получается чёто у меня
Вложения
h2.png
h2.png (5.8 КБ) 6869 просмотров

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: CurrentIndex

Непрочитанное сообщение Den » 16 ноя 2017, 13:59

Не хочет показывать :)

Код: Выделить всё

function Initialize()
{
IndicatorName = "COUNT";
AddInput("Input1", Inputs.Candle);   
   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   


}

function Evaluate()

{
var lastLVal = MY.C_I(Input1).GetLastValues ("L", 1)[0];
var lastHVal = MY.C_I(Input1).GetLastValues ("H", 1)[0];




if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.C_I(Input1).GetLastValues ("H", 1)[0].Y) )

if (MY.C_I(Input1).GetLastValues ("H", 10)[0].Y  == LAST)

if ((MY.C_I(Input1).GetLastValues ("H", 1)[0].Y > MY.C_I(Input1).GetLastValues ("H", 1)[1].Y))

 
   
          H[1] = MY.С_I(Input1).GetLastValues ("H", 1)[0].Y;
         


             


if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.C_I(Input1).GetLastValues ("L", 1)[0].Y) )

if (MY.C_I(Input1).GetLastValues ("L", 1)[0].Y == LAST )

if ((MY.C_I(Input1).GetLastValues ("L", 1)[0].Y > MY.C_I(Input1).GetLastValues ("L", 1)[1].Y))


     
 
         L[1] = MY.C_I(Input1).GetLastValues ("L", 1)[0].Y;
       
     
H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 10, Color.Fuchsia, 100);             
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 10, Color.Lime, 100);
}


Последний раз редактировалось Den 16 ноя 2017, 14:17, всего редактировалось 1 раз.

Аватара пользователя
evge
Администратор
Сообщения: 1654
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 305 раз
Контактная информация:

Re: CurrentIndex

Непрочитанное сообщение evge » 16 ноя 2017, 14:12

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

Аватара пользователя
Den
Сообщения: 345
Зарегистрирован: 09 фев 2016, 15:52
Благодарил (а): 14 раз
Поблагодарили: 4 раза

Re: CurrentIndex

Непрочитанное сообщение Den » 16 ноя 2017, 14:17

Так я ж говорю, указать Н, который помечен стрелкой.

Вот он далее

Это, как вы видите, S-фрейм

В коде выше в указан Н с первой картинки, но он не желает :)
Вложения
h1.png
h1.png (6.61 КБ) 6857 просмотров

Аватара пользователя
evge
Администратор
Сообщения: 1654
Зарегистрирован: 04 фев 2016, 09:46
Откуда: Млечный путь, планета Земля
Благодарил (а): 64 раза
Поблагодарили: 305 раз
Контактная информация:

Re: CurrentIndex

Непрочитанное сообщение evge » 16 ноя 2017, 14:24

и какое услови(е,я) для его показа?
никогда такого не было и вот опять


Вернуться в «Общие вопросы по разработке»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 10 гостей