Общие вопросы по разработке > А в АД4 можно трейсить?
А в АД4 можно трейсить?
Добрый вечер!
А можно ли в АД4, пошагово выполнять программу-робота, получая какие-то промежуточные результаты?
Заранее спасибо.
А можно ли в АД4, пошагово выполнять программу-робота, получая какие-то промежуточные результаты?
Заранее спасибо.
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: А в АД4 можно трейсить?
Отладки нет. Можно писать в log файл данные.
никогда такого не было и вот опять
Re: А в АД4 можно трейсить?
Подскажите как передать из индикатора (NRTRm) в робот признак Current "true/false" и вывести его в лог?
У меня в лог вываливается просто - "не число".
У меня в лог вываливается просто - "не число".
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: А в АД4 можно трейсить?
nik7799 писал(а):Current "true/false" и вывести его в лог?
Код: Выделить всё
LogData(String.Format("{0}", Current), IndicatorName);
или
Код: Выделить всё
LogData(Current.ToString(), IndicatorName);
или
Код: Выделить всё
LogData("" + Current, IndicatorName);
Все варианты проверил, выдают в лог: True, False
2017.04.20 07:18:47.022 False
2017.04.20 07:18:47.022 False
2017.04.20 07:18:47.022 False
2017.04.20 07:18:47.022 False
2017.04.20 07:18:47.022 True
2017.04.20 07:18:47.022 True
2017.04.20 07:18:47.022 True
никогда такого не было и вот опять
Re: А в АД4 можно трейсить?
Если в индикатор встраивать лог, все работает.
А у меня не получается затянуть это значение из индикатора в робот и уже в нем оперировать с логом и данным флагом.
А у меня не получается затянуть это значение из индикатора в робот и уже в нем оперировать с логом и данным флагом.
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: А в АД4 можно трейсить?
nik7799 писал(а):затянуть это значение из индикатора в робот
Только серии доступны в стратегиях / роботах из индикаторов.
Для этого надо из глоб. переменных current перенести в серии или добавить дополнительно к глоб. переменной current ещё и серию, которая будет дублировать там значения глоб. переменной.
Но в сериях нет значений boolean. Можно писать туда -1 (при false) и 1 (при true), и проверять > 0 или < 0 уже в стратегии.
никогда такого не было и вот опять
Re: А в АД4 можно трейсить?
Спасибо, так и сделал, добавил серию с присвоением по условию (-1) или (1).
Только пришлось изменить размерность (-0.1/+0.1), иначе графики бумаг с низкой стоимостью вытягивались в "дудочку".
Еще вопрос. Как организовать цикл проверки (подтверждения правильности) некоего действия?
К примеру, по неким критериям сработал EnterShort (Присваиваю FlagShort = X) и мне необходимо в течении следующих X периодов проверять по параметрам правильность этого действия и закрывать шорт (CloseShort) если нет подтверждения.
Если ввожу AddGlobalVariable как количество проверочных периодов Х, он сбрасывается при следующем периоде.
Какую переменную можно использовать чтобы она не сбрасывалась и работала в OnUpdate?
Только пришлось изменить размерность (-0.1/+0.1), иначе графики бумаг с низкой стоимостью вытягивались в "дудочку".
Еще вопрос. Как организовать цикл проверки (подтверждения правильности) некоего действия?
К примеру, по неким критериям сработал EnterShort (Присваиваю FlagShort = X) и мне необходимо в течении следующих X периодов проверять по параметрам правильность этого действия и закрывать шорт (CloseShort) если нет подтверждения.
Если ввожу AddGlobalVariable как количество проверочных периодов Х, он сбрасывается при следующем периоде.
Какую переменную можно использовать чтобы она не сбрасывалась и работала в OnUpdate?
- evge
- Администратор
- Сообщения: 1813
- Зарегистрирован: 04 фев 2016, 09:46
- Откуда: Млечный путь, планета Земля
- Благодарил (а): 83 раза
- Поблагодарили: 369 раз
- Контактная информация:
Re: А в АД4 можно трейсить?
nik7799 писал(а):Только пришлось изменить размерность (-0.1/+0.1), иначе графики бумаг с низкой стоимостью вытягивались в "дудочку".
Серию можно выводить в отдельную область, она не будет влиять на график. В новых версиях АД4 будет возможность рисовать Shadow серию (фоновую). Ещё лучший вариант это скрыть визуализацию серии, см. документацию по скриптам (Терминал 4.0. Скрипты пользовательских индикаторов и стратегий.doc)
AddSeries(Name)
AddSeries(Name, Type, Color)
AddSeries(Name, Type, Color, Visible)
AddSeries(Name, Type, Color, Visible, Axes)
AddSeries(Name, Type, Color, AxisType)
AddSeries(Name, Type, Color, AxisType, Visible, Axes) – создание выходного ряда, можно добавлять несколько.
Параметры:
• Name – имя выходного ряда.
• Type – константа, определяющая вид отображения выходного ряда:
o DrawAs.Line – линия;
o DrawAs.Histogram – гистограмма.
o DrawAs.Custom – произвольный метод рисования (определяется в области вычисления индикатора).
• Color – цвет линии, гистограммы (значения стандартные для MicroSoft).
• Visible – видимый ряд или нет:
o true (массив используется как выходной ряд);
o false (массив используется как скрытый ряд)
• Axes – область отображения ряда // Не сохраняется в конфигурацию
o Axes.Parent – ряд отображается в области входного ряда
o Axes.New – ряд отображается в отдельной области
• AxisType – опорная ось для рисования гистограммы и областей
o AxisType.Default – ряд отображается по умолчанию
o AxisType.ZeroBased – ряд масштабируется относительно нуля
nik7799 писал(а):Еще вопрос. Как организовать цикл проверки (подтверждения правильности) некоего действия?
К примеру, по неким критериям сработал EnterShort (Присваиваю FlagShort = X) и мне необходимо в течении следующих X периодов проверять по параметрам правильность этого действия и закрывать шорт (CloseShort) если нет подтверждения.
Если ввожу AddGlobalVariable как количество проверочных периодов Х, он сбрасывается при следующем периоде.
Какую переменную можно использовать чтобы она не сбрасывалась и работала в OnUpdate?
AddGlobalVariable - правильный вариант. Чтобы понять почему не работает, нужно видеть код.
Например, при возникновении сигнала сохраняем CurrentIndex в данную глоб. переменую.
В последующем, можно рассчитать количество баров от текущего бара до сигнального, для этого достаточно вычислить разность CurrentIndex - глоб. переменная и сравнить полученное значение с нужным параметром или числом.
никогда такого не было и вот опять
Re: А в АД4 можно трейсить?
У меня пока жесткая криворукость получается, такое показывать пока просто неловко.
Подправлю до условно-рабочего состояния и выложу код.
Подправлю до условно-рабочего состояния и выложу код.
Вернуться в «Общие вопросы по разработке»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 195 гостей