Общие вопросы по разработке > Анонсированное исполнение внутри бара не состоялось

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 23 сен 2016, 23:59

Смотрите, у меня сигнал LONG со вчерашнего дня на D по итогу закрытия бара. Заявка висит весь сегодняшний день.

Но сегодняшний бар на D не закрыт , он закроется завтра. и завтра робот исполнит сигнал LONG/

ПОТОМУ ЧТО UseClosedBar==True

Где можно почитать про Evaluate() и OnUpdate() ?

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 00:13

Den писал(а):Смотрите, у меня сигнал LONG со вчерашнего дня на D по итогу закрытия бара.


Если вы про свой индикатор (который рисует сигнал задним числом [1] на прошлом баре), то сигнала у вас нет и будет он только завтра, поэтому всё верно и правильно.

Индикатор, если вы хотите ориентироваться на его сигналы, рисовать должен их на [0] баре, текущем, а не на предыдущих. Вы так себя вводите в заблуждение!
никогда такого не было и вот опять

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

Re: Анонсированное исполнение внутри бара не состоялось

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

Den писал(а):Где можно почитать про Evaluate() и OnUpdate() ?


Вся документация есть на сайте http://alfadirect.ru в разделе

Обучение \ Учебные материалы \ Стратегии и роботы

Терминал 4.0. Скрипты пользовательских индикаторов и стратегий
Документ содержит описание языка и функций для создания пользовательских индикаторов и стратегий.

Терминал 4.0. Стратегии и роботы. Описание
Документ содержит описание работы с основными формами создания, тестирования и запуска робота.

Терминал 4.0. Краткая инструкция по работе со стратегиями и роботами
Документ содержит минимальный объем информации необходимый для корректного создания стратегий, запуска и контроля роботов
никогда такого не было и вот опять

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 00:16

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

У робота OnUpdate() не позволяет подать ему заявку на текущем. Потому что у робота UseClosedBar==True

Так?

В общем я понял :lol: Вы все время говорили со мной от лица Робота
Последний раз редактировалось Den 24 сен 2016, 00:21, всего редактировалось 1 раз.

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 00:20

Den писал(а):Ну так получается он задним числом -то для робота, а не для нас с вами. У нас бар уже закрыт, а у робота нет, хоть и есть сигнал индикатора.


Нет и для нас он ещё не факт что будет с сигналом, т.к. в вашем индикаторе текущий бар влияет на то будет ли сигнал на предыдущем (задним числом) баре или не будет. И в течение отрисовки текущего бара, сигнал может исчезнуть, если смотреть именно на индикатор.

Den писал(а):У робота OnUpdate() не позволяет подать ему заявку на текущем. Потому что у робота UseClosedBar==True


Нет, он подает заявки на текущем баре. У вас неверное представление. Вся проблема в том, что ориентируетесь на свой индикатор рисующий вам сигналы задним числом.
никогда такого не было и вот опять

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 00:25

Нет, ну как Input.Close[1] > Input.Close[0] может быть задним числом-то? Бар [1] закрылся ФИЗИЧЕСКИ. Индикатор сравнивает закрытый бар в текущим и если условие совпадает , то рисует сигнал.

Любой индикатор рисует задним числом. Это вообще самый элементарный.

Какой по-вашему рисует НЕ ЗАДНИМ ЧИСЛОМ?

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 00:35

Den писал(а):Нет, ну как Input.Close[1] > Input.Close[0] может быть задним числом-то? Бар [1] закрылся ФИЗИЧЕСКИ. Индикатор сравнивает закрытый бар в текущим и если условие совпадает , то рисует сигнал.


Вы показываете УСЛОВИЕ и спрашивает про то, где тут предыдущий бар.

В условии вы сравниваете CLOSE текущего бара (это не обязательно последний, как вы думаете, в этом ваша ошибка) с предыдущим баром [1].

А сигнал рисуете не на текущем, а на предыдущем баре в серии H[1], L[1] !!!

Den писал(а):Какой по-вашему рисует НЕ ЗАДНИМ ЧИСЛОМ?


Любой, другой, который рисует на текущем баре [0] сигнал.

Вам надо понять логику как работает отрисовка индикатора.

[0] это всегда текущий бар (даже все предыдущие это тоже [0])

т.е. относительно каждого из них есть смещение НАЗАД В ПРОШЛОЕ, а это [1] - 1 бар назад, [2] - 2 бара назад и так далее

так вот визуально бары все которые мы видим они все в индикаторе в evaluate() имеют индекс в ряде Input = 0, т.е. они все имеют смещение 0 и функция evaluate() расчет ведет для каждого из них (!!! это принципиально важно!!!), а вот относительно каждого из них мы можем заглянуть в историю со смещением [1],[2],[3] и т.д.

так вот сигналы надо рисовать на [0] баре, а не задним числом, т.е. со смещением в истории назад, как делали вы в сериях H[1], L[1].

НЕ ПУТАЙТЕ

Текущий бар и последний бар

Последний бар так же в evaluate имеет индекс [0], а все стоящие перед ним это [1],[2]... и т.д.
У последнего бара совпадает его CurrentIndex с MaxIndex.

Читайте инструкцию, думаю вопросов станет меньше. Смотрите код других индикаторов.
никогда такого не было и вот опять

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Den » 24 сен 2016, 00:43

Понятно ! Спасибо evge !

Последний простой вопрос - как его заставить подать заявку внутри дневного бара D ? Приведите самый простой пример ?

Doctor
Сообщения: 7
Зарегистрирован: 23 сен 2016, 10:59

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение Doctor » 24 сен 2016, 00:47

Den писал(а):В АДу до сих пор запрещена подача заявок внутри бара. Потому что UseClosedBar==True

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

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

Re: Анонсированное исполнение внутри бара не состоялось

Непрочитанное сообщение evge » 24 сен 2016, 00:52

Doctor писал(а):А вторая, эти сигналы исполняет


А как наладить их диалог? :)
никогда такого не было и вот опять


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

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

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