Пользовательские индикаторы > Индикатор отношения цен разных активов

Дополнительные индикаторы от пользователей Альфа-Директ 4. Готовые решения от пользователей.
Andrey
Сообщения: 4
Зарегистрирован: 24 апр 2020, 15:24

Индикатор отношения цен разных активов

Непрочитанное сообщение Andrey » 24 апр 2020, 15:30

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

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

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение evge » 24 апр 2020, 15:45

Стандартно пока нет возможности. Читать данные из других инструментов пока нет возможности.
Есть идея делать это через помещение на один график двух инструментов (это в АД4 возможно), а затем на оба инструмента вешать один индикатор, который будет писать \ читать файл с данными, тем самым организовав обмен этими данными. Про таймфрейм при этом думать не нужно будет, т.к. он будет один для обоих инструментов. Это теория всё.
никогда такого не было и вот опять

Andrey
Сообщения: 4
Зарегистрирован: 24 апр 2020, 15:24

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение Andrey » 24 апр 2020, 15:53

Я так и предполагал, что через помещение на один график. Но у меня совсем нет опыта написания индикаторов. Буду благодарен, если накидаете хотя бы примерно, что должно быть написано в коде, а дальше я доведу его до ума. Все-таки общее понимание, что такое код, у меня есть.

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

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение evge » 24 апр 2020, 16:02

Постараюсь в скором времени.
никогда такого не было и вот опять

BugsDigger
Сообщения: 533
Зарегистрирован: 11 ноя 2018, 17:11
Благодарил (а): 21 раз
Поблагодарили: 91 раз

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение BugsDigger » 24 апр 2020, 16:26

Кстати, файл может быть и виртуальным (MemoryMappedFile), тогда тоже будет через память.

Раздавать/принимать данные можно попробовать через именованные каналы (т.е. не через файл, а, фактически, через память).
Раздача м. идти из одного индикатора, принимать можно (?) несколькими клиентами.
Это только идея, насчет того, можно ли реализовать - не знаю.

Если таким образом передавать данные от одного индикатора другому (неважно как), то м.б. проблема синхронизации: если "приемный" индикатор вызовется раньше "передающего", то в канале/файле данных еще не будет, появятся только на следующем баре...

Andrey
Сообщения: 4
Зарегистрирован: 24 апр 2020, 15:24

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение Andrey » 25 апр 2020, 03:10

Подскажите еще, пожалуйста, в Альфа Директ как-то можно настроить график цены на нефть, чтобы цена отображалась в рублях, а не в долларах?

Andrey
Сообщения: 4
Зарегистрирован: 24 апр 2020, 15:24

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение Andrey » 25 апр 2020, 23:32

Написал код, но он не работает, как надо. Он цепляет котировки только одного инструмента - либо доллара, либо нефти, и, соответственно, выводит цену либо доллара, либо нефти в квадрате. Не понимаю, как заставить его обращаться к разным активам на графике.

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

function Initialize()
{
// Область определения параметров индикатора

// Обязательные параметры:
   IndicatorName = "A";   // Задайте название индикатора и сохраните с данным именем
   PriceStudy = false;   // Рисовать в области цены (true – да, false – нет)
   AddInput("Input1", Inputs.Candle,5,true,"Sim0=ФОРТС");   // Input - входной ряд (Inputs.Price) или свечи (Inputs.Candle)
    AddInput("Input2", Inputs.Candle,5,true,"BRK0=ФОРТС");
 AddSeries("A", DrawAs.Line, Color.Red);   // Задаем вид линии индикатора A

// Дополнительные параметры:
 AddParameter("Period", 20);   // Задаем имя изменяемого параметра и его значение
 AddVariable("Z", 0);   // Задаем имя глобальной переменной и её значение
}

function Evaluate()
{
// Область расчета значения индикатора

    // Присваиваем значение = 0.0
 A = Input1.Close[0]*Input2.Close[0];
}

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

Re: Индикатор отношения цен разных активов

Непрочитанное сообщение evge » 26 апр 2020, 06:26

Выше я уточнял, что нет такой возможности в АД4. Входящий ценовой ряд может быть только один, т е. добавление Input2 ничего не даст. На сегодняшний день это так. Может в будущих версиях АД4 реализуют.

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


Вернуться в «Пользовательские индикаторы»

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

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