Стратегии и роботы > Как передать значение из робота в индикатор?
-
- Сообщения: 71
- Зарегистрирован: 10 ноя 2017, 12:43
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Как передать значение из робота в индикатор?
Можно ли, если можно то как передать значение из робота в индикатор?
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Как передать значение из робота в индикатор?
Добавить доп. параметры в индикаторе и передавать их из стратегии.
Если индикатор встроенный, сделать ещё один пользовательский с нужными доп. параметрами.
Если индикатор встроенный, сделать ещё один пользовательский с нужными доп. параметрами.
никогда такого не было и вот опять
Re: Как передать значение из робота в индикатор?
Посмотрите стратегию Invest_Grid из Библиотеки, там индикатор рисует уровни покупки и продажи для стратегии
-
- Сообщения: 71
- Зарегистрирован: 10 ноя 2017, 12:43
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Re: Как передать значение из робота в индикатор?
Спасибо ребят за подсказки.Но въехать я чего-то не могу.
Если есть у Вас минутка и желание, можете накидать коротенький код с пояснениями, если нет, то нет.
На всякий случай напишу легенду. Робот получает значение от линии индикатора. Затем сверяет его со вчерашней свечей и если вчерашний High больше значения индикатора, тогда передает индикатору новое значение( вчерашний High). Индикатор рисует линию ( вчерашний High).
Если есть у Вас минутка и желание, можете накидать коротенький код с пояснениями, если нет, то нет.
На всякий случай напишу легенду. Робот получает значение от линии индикатора. Затем сверяет его со вчерашней свечей и если вчерашний High больше значения индикатора, тогда передает индикатору новое значение( вчерашний High). Индикатор рисует линию ( вчерашний High).
Re: Как передать значение из робота в индикатор?
Пример уже написан в стратегии Invest_Grid
Создаете индикатор PlotLine с входным параметром Price, который указывает, где рисовать линию
PlotLine(Price)
Далее создаете стратегию и указываете в инициализации
И в OnUpdete()
Меняете значение Price
Создаете индикатор PlotLine с входным параметром Price, который указывает, где рисовать линию
PlotLine(Price)
Код: Выделить всё
function Initialize()
{
IndicatorName = "PlotLine";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("PlotLine", DrawAs.Line, Color.Red);
AddParameter("Price", 20);
AddLevel(0, Color.Red, "PlotLine");
}
function Evaluate()
{
Levels[0].Level = Price;
}
Далее создаете стратегию и указываете в инициализации
Код: Выделить всё
AddGlobalVariable("MinPrice", Types.Double, 0);
AddChartIndicator("MY.PlotLine", new Dictionary <string, string>{ {"Price", "Price"} });
И в OnUpdete()
Меняете значение Price
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Как передать значение из робота в индикатор?
Зависит всё от того, что подразумевалось под вопросом передать значение в "Индикатор" из робота, т.к. для какой цели не указано, а это может быть:
Передача в индикаторы доп. параметров для каких-то расчетов в самом индикаторе и возврате сери(и,й) из индикатора для дальнейшего анализа и выполнения действий в стратегии.
или
Передача параметров в индикаторы, которые нужно отрисовать из стратегии на графиках через AddChartIndicator().
или
и то и другое
Передача в индикаторы доп. параметров для каких-то расчетов в самом индикаторе и возврате сери(и,й) из индикатора для дальнейшего анализа и выполнения действий в стратегии.
или
Передача параметров в индикаторы, которые нужно отрисовать из стратегии на графиках через AddChartIndicator().
или
и то и другое

никогда такого не было и вот опять
-
- Сообщения: 71
- Зарегистрирован: 10 ноя 2017, 12:43
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Re: Как передать значение из робота в индикатор?
Никак.
Код индикатора( взят выше ) работает и показывает значение которые ему задаю:
код робота который вызывает индикатор для отрисовки:
Что не так не мойму?
Код индикатора( взят выше ) работает и показывает значение которые ему задаю:
Код: Выделить всё
function Initialize()
{
IndicatorName = "PlotLine";
PriceStudy = true;
AddInput("Input", Inputs.Candle);
AddSeries("PlotLine", DrawAs.Line, Color.Red);
AddParameter("Price", 20);
AddLevel(0, Color.Red, "PlotLine");
}
function Evaluate()
{
Levels[0].Level = Price;
}
код робота который вызывает индикатор для отрисовки:
Код: Выделить всё
function Initialize()
{
StrategyName = "Robot";
AddParameter("P1", 0, "", 1);
AddInput("Input1", Inputs.Candle, 1, true, "");
LongLimit = 0;
ShortLimit = 0;
AddGlobalVariable("Price", Types.Double, 0);
AddChartIndicator("MY.PlotLine", new Dictionary <string, string>{ {"Price", "Price"} });}
function OnUpdate()
{
Price=GetAsk();
ShowMessage("!!!!!!!!");
}
Что не так не мойму?
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Как передать значение из робота в индикатор?
Проверил, ничего в коде не менял.
Работает. На графике привязанном к роботам отобразился PlotLine индикатор и уровень бегает за ценой Ask.
Может вы ждете что он будет бегать в отдельном графике никак не связанном с вашим роботом?
Нажмите кнопку "График" в диспетчере роботов у запущенного робота, или свяжите график с диспетчером через группу (одинаковый значек слева окна (кроме кружка))
Работает. На графике привязанном к роботам отобразился PlotLine индикатор и уровень бегает за ценой Ask.
Может вы ждете что он будет бегать в отдельном графике никак не связанном с вашим роботом?
Нажмите кнопку "График" в диспетчере роботов у запущенного робота, или свяжите график с диспетчером через группу (одинаковый значек слева окна (кроме кружка))
никогда такого не было и вот опять
-
- Сообщения: 71
- Зарегистрирован: 10 ноя 2017, 12:43
- Благодарил (а): 3 раза
- Поблагодарили: 2 раза
Re: Как передать значение из робота в индикатор?
Спасибо Вам большое oxi, evge! Без Вашей помощи разбирался бы наверное годы:).
Сделал привязку-связь у диспетчера роботов все пошло!
Еще вопрос тоже в тему.
Можно вторым роботом получать значения передаваемые в этот индикатор первым роботом? То есть как бы связь между роботами через индикатор.
Сделал привязку-связь у диспетчера роботов все пошло!
Еще вопрос тоже в тему.
Можно вторым роботом получать значения передаваемые в этот индикатор первым роботом? То есть как бы связь между роботами через индикатор.
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: Как передать значение из робота в индикатор?
Учтите ещё то, что в зависимости от таймфрейма вашего робота будет и меняться в индикаторе уровень.
Т.к. OnUpdate() вызывается по таймфрейму робота.
Я ставил 5 сек у робота.
Т.к. если поставить 1 час, то и изменения мы увидим не чаще чем 1 раз в час.
Т.к. OnUpdate() вызывается по таймфрейму робота.
Я ставил 5 сек у робота.
Т.к. если поставить 1 час, то и изменения мы увидим не чаще чем 1 раз в час.
никогда такого не было и вот опять
Вернуться в «Стратегии и роботы»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей