Перейти к содержимому


Фото
* * * * - 9 голосов

Конструктор роботов TradeSсript


1108 ответов в этой теме

#1 Сигурд

Сигурд

    Участник

  • Трейдеры
  • PipPip
  • 153 сообщений

Отправлено 15 May 2012 - 06:26 AM

В процессе ознакомления с конструктором возникло несколько вопросов по функционалу.
1) Есть ли в TradeScript возможность работы с временными параметрами? К примеру, я хочу задать в сценарий следующее ограничение - не открывать новых позиций в: первый таймфрейм дня, последний таймфрейм перед дневным клирингом, первый таймфрейм после дневного клиринга, последний таймфрейм основной торговой сессии, и т.д. Есть предположение, что это можно сделать через функцию countif, но только если верно предположение из второго вопроса и если внутри дня не происходят остановки торгов.
2) Верно ли я понимаю, что функции sumif и countif вне зависимости от заданного в сценарии таймфрейма, моментом начала своего расчета имеют начало дня, а периодом расчета - весь день?
3) В чем причина значительной временной задержки появления сигналов даже на самых простых стратегиях, рассчитываемых на двух последних таймфреймах? при анализе минутного таймфрейма информация о появлении сигнала отражается во вкладке "сигналы" примерно через минуту. то есть, к примеру, информация о сигнале с временем появления, обозначенным во вкладке "сигналы", равным 14:33:00 появляется в этой вкладке только в 14:34:00. Соответственно я предполагаю, что и приказ на биржу от этого сценария пойдет с такой же задержкой.
  • PMaster, Illireffifoni и tourporse это понравилось

#2 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 15 May 2012 - 10:19 AM

В процессе ознакомления с конструктором возникло несколько вопросов по функционалу.

3) В чем причина значительной временной задержки появления сигналов даже на самых простых стратегиях, рассчитываемых на двух последних таймфреймах? при анализе минутного таймфрейма информация о появлении сигнала отражается во вкладке "сигналы" примерно через минуту. то есть, к примеру, информация о сигнале с временем появления, обозначенным во вкладке "сигналы", равным 14:33:00 появляется в этой вкладке только в 14:34:00. Соответственно я предполагаю, что и приказ на биржу от этого сценария пойдет с такой же задержкой.

:)
Нет все не так. Если у вас таймфрейм 1 минута и сигналы формируются по окончании бара, то это означает, что на баре, начавшемся в 14:33:00 и окончившемся 14:34:00, сигнал может появиться не раньше 14:34:00. Тогда же заявка и отправится на биржу. Никаких задержек здесь нет и быть не может - проверено.
В ближайшее время мы выложим плагин, где будет возможно формирование сигналов внутри бара.

#3 SPb

SPb

    Гуру психологии и торговли

  • Трейдеры
  • PipPipPip
  • 440 сообщений

Отправлено 15 May 2012 - 10:22 AM

3) В чем причина значительной временной задержки появления сигналов даже на самых простых стратегиях, рассчитываемых на двух последних таймфреймах? при анализе минутного таймфрейма информация о появлении сигнала отражается во вкладке "сигналы" примерно через минуту. то есть, к примеру, информация о сигнале с временем появления, обозначенным во вкладке "сигналы", равным 14:33:00 появляется в этой вкладке только в 14:34:00. Соответственно я предполагаю, что и приказ на биржу от этого сценария пойдет с такой же задержкой.
[/quote]
Если у вас стратегия на минутном интервале то приказ должен быть отправлен по окончанию этого интервала (отсюда и задержка в 1 мин) т.е. по закрытию этого интервала.

#4 Сигурд

Сигурд

    Участник

  • Трейдеры
  • PipPip
  • 153 сообщений

Отправлено 15 May 2012 - 10:25 AM

:)
Нет все не так. Если у вас таймфрейм 1 минута и сигналы формируются по окончании бара, то это означает, что на баре, начавшемся в 14:33:00 и окончившемся 14:34:00, сигнал может появиться не раньше 14:34:00. Тогда же заявка и отправится на биржу. Никаких задержек здесь нет и быть не может - проверено.
В ближайшее время мы выложим плагин, где будет возможно формирование сигналов внутри бара.

Тогда почему цена в закладке "сигналы" при этом берется open, а не close? то есть фактически сигнал появился в 14:34, а цена берется из 14:33. Могу на примере для лучшего понимания. Вот только что у меня в закладке сигналы появилась новая запись. 15.05.2012 11:24:00 Sell 138780 (инструмент - июньский фьючерс на РТС). Если посмотреть на котировки, то эта цена была в 11:24:00. Но сигнал-то фактически поступил в 11:25:00. ТО есть через минуту после того, как цена, указанная в закладке "сигналы" была актуальна. а вот цена закрытия минуты 11:24 - 138700 как раз и соответствует времени появления сигнала.

#5 SPb

SPb

    Гуру психологии и торговли

  • Трейдеры
  • PipPipPip
  • 440 сообщений

Отправлено 15 May 2012 - 10:33 AM

В процессе ознакомления с конструктором возникло несколько вопросов по функционалу.
1) Есть ли в TradeScript возможность работы с временными параметрами? К примеру, я хочу задать в сценарий следующее ограничение - не открывать новых позиций в: первый таймфрейм дня, последний таймфрейм перед дневным клирингом, первый таймфрейм после дневного клиринга, последний таймфрейм основной торговой сессии, и т.д. Есть предположение, что это можно сделать через функцию countif, но только если верно предположение из второго вопроса и если внутри дня не происходят остановки торгов.
2) Верно ли я понимаю, что функции sumif и countif вне зависимости от заданного в сценарии таймфрейма, моментом начала своего расчета имеют начало дня, а периодом расчета - весь день?
3) В чем причина значительной временной задержки появления сигналов даже на самых простых стратегиях, рассчитываемых на двух последних таймфреймах? при анализе минутного таймфрейма информация о появлении сигнала отражается во вкладке "сигналы" примерно через минуту. то есть, к примеру, информация о сигнале с временем появления, обозначенным во вкладке "сигналы", равным 14:33:00 появляется в этой вкладке только в 14:34:00. Соответственно я предполагаю, что и приказ на биржу от этого сценария пойдет с такой же задержкой.

1. мы пока не видим в трейдсрипте возможности работать с физическим временем. Если кто видит или понимает как это сделать - пусть пишет в форум
2. не совсем так, поскольку трейдскрипт понимает историю, а в истории есть вчерашние периоды, то соответственно он будет считать в начале торгов с учетом вчерашних периодов (минуток, часов, дней и т.п.) в зависимости что будет прописанно в вашей торговой стратегии, а не от открытия сессии

#6 Сигурд

Сигурд

    Участник

  • Трейдеры
  • PipPip
  • 153 сообщений

Отправлено 15 May 2012 - 10:40 AM

1. мы пока не видим в трейдсрипте возможности работать с физическим временем. Если кто видит или понимает как это сделать - пусть пишет в форум
2. не совсем так, поскольку трейдскрипт понимает историю, а в истории есть вчерашние периоды, то соответственно он будет считать в начале торгов с учетом вчерашних периодов (минуток, часов, дней и т.п.) в зависимости что будет прописанно в вашей торговой стратегии, а не от открытия сессии

1. а если не пытаться сделать это средствами трейдскрипта, а использовать для это функционал риск-менеджмента?
2. тогда скажите пожалуйста, где можно ознакомиться с более подробным описанием использования функций sumif и countif. В мануале упоминается день. И в аргументах функций нет параметра, ограничивающего временной интервал.

#7 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 15 May 2012 - 10:53 AM

2. тогда скажите пожалуйста, где можно ознакомиться с более подробным описанием использования функций sumif и countif. В мануале упоминается день. И в аргументах функций нет параметра, ограничивающего временной интервал.

В мануале упоминается день, поскольку изначально ТС был разработан для торговли на дневных периодах. Теперь он работает на любых, хоть на тиковых, - вы их выбираете сами при настройке стратегии, но анахронизм "день" в качестве перифраза понятия "период" остался.

#8 Сигурд

Сигурд

    Участник

  • Трейдеры
  • PipPip
  • 153 сообщений

Отправлено 15 May 2012 - 11:17 AM

В мануале упоминается день, поскольку изначально ТС был разработан для торговли на дневных периодах. Теперь он работает на любых, хоть на тиковых, - вы их выбираете сами при настройке стратегии, но анахронизм "день" в качестве перифраза понятия "период" остался.

Так как в обеих упомянутых мною функциях подсчет идет нарастающим итогом, абсолютно непонятно, с какого бара этот подсчет начинается. Допустим, что я использую минутный таймфрейм. Прописываю формулу sumif(close>ref(close,1),volume). В моем понимании формула должна возвращать вектор, содержащий сумму всех объемов баров (в описываемом случае минутных) где цена закрытия выше цены закрытия предыдущего бара с какого-то момента по настоящее время. Так вот момент, с которого начинается подсчет - это текущий бар минус "мин. кол-во баров", задаваемое в стратегии? И если да, то правильно ли я понял, что этот момент будет единым для всех формул, использующих функции sumif и countif?

#9 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 16 May 2012 - 11:27 AM

Уважаемая тех. поддержка пожалуйста решите проблему с "Машками". Каждый раз когда обновляешь окно с графиком, "машки" простраиваются не корректно.

Внесли в план улучшения юзабилити графиков.

#10 anatoly

anatoly

    Новичок

  • Трейдеры
  • Pip
  • 2 сообщений

Отправлено 16 May 2012 - 02:43 PM

Уважаемые разработчики!

Ответьте, пожалуйста, на пару вопросов:
1. Инструкция "Руководство пользователя TradeScriptTM " содержит описание всех функций и операторов?
2. Если ли возможность в TradeScript TM запрограммировать одним из условий совершения сделки на минутном интервале точное время, например 10.30 или 23.45? Если да, то как это сделать? Если сейчас нельзя этого сделать, то можно ли ожидать появления такой возможности.

Спасибо.

#11 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 16 May 2012 - 04:36 PM

Уважаемые разработчики!

Ответьте, пожалуйста, на пару вопросов:
1. Инструкция "Руководство пользователя TradeScriptTM " содержит описание всех функций и операторов?

Не всех. Мы не показали в мануале те функции, в корректной работе которых сомневались.

2. Если ли возможность в TradeScript TM запрограммировать одним из условий совершения сделки на минутном интервале точное время, например 10.30 или 23.45? Если да, то как это сделать? Если сейчас нельзя этого сделать, то можно ли ожидать появления такой возможности.
Спасибо.

Я не настолько хорошо изучал язык TradeScript, чтобы однозначно сказать "да, есть" или "нет, нет".
Так что вопрос остается открытым. Надеюсь по мере накопления опыта у наших пользователей все меньше и меньше будет белых пятен, подобных этому.

#12 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 16 May 2012 - 04:46 PM

подскажите как сделать что-бы робот не отрабатывал сигналы Long при открытой длинной позиции и сигналы Short при открытой короткой позиции а то он фигачет и каждый однонаправленный

сигнал докупает ещё лоты или продаёт столько на сколько денег хватит

Два способа текущего решения вашей беды и один потенциальный:
1) Общие настройки риск-менеджмента по инструменту. Можно установить лимит объема открытой позиции и робот не сможет за него выйти.
2) правильно писать скрипты, которые не допускают построения финансовых пирамид :)
3) ждать когда будут введены дополнительные настройки вкладки Торговля, запрещающие конкретному роботу набирать позу более выставленного лимита.

#13 SPb

SPb

    Гуру психологии и торговли

  • Трейдеры
  • PipPipPip
  • 440 сообщений

Отправлено 16 May 2012 - 05:36 PM

Подскажите в TradeScript как написать чтобы робот держал в памяти определлённое произошедшее условие и при пробое этой точки открывал позу например  

SET A = REF((HIGH, 3) < (HIGH, 2 ) > (HIGH, 1 )) AND CLOSE > A в данном случае будет ли робот держать в памяти последний момент когда это условие выполнилось и при пробое последней ценой (HIGH, 2 ) откроет позу или нет

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

#14 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 17 May 2012 - 11:48 AM

Я имел в виду такую ситуацию например если (предидущий бар растущий а текущий бар падующий) = назовём это = ( А ) и все следующии бары падующие затем все следующии бары растущие затем происходит закрытие текущего бара выше точки ( А ) такая формула будет правильной или нет SET A = (REF (CLOSE, 1) > REF(OPEN, 1) AND CLOSE< OPEN) AND LAST > A

вот я и написал держать в памяти последний момент когда это условие = (А)  выполнилось

1. Я не понял формулировки условия срабатывания алерта. Постарайтесь сформулировать его более ясно и четко, иначе вы сами не сможете его алгоритмизировать.
2. Скрипт в любом случае неправильный, поскольку вы путаете и сравниваете между собой логические и числовые переменные.

#15 SPb

SPb

    Гуру психологии и торговли

  • Трейдеры
  • PipPipPip
  • 440 сообщений

Отправлено 17 May 2012 - 12:11 PM

Добрый вечер!
Робот, безусловно, выполняет условие. Тут без вопросов.
Вопрос в другом - при выставлении условия в рисках Риск-менеджмент ругается, но позиции исправно продолжают набираться.:russian_ru:
Скорее всего, остается писать фильтры :smile255:

Жаль, что такая полезная функция конфликтует с алгоритмом :(

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

#16 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 17 May 2012 - 12:39 PM

Добрый вечер!
Робот, безусловно, выполняет условие. Тут без вопросов.
Вопрос в другом - при выставлении условия в рисках Риск-менеджмент ругается, но позиции исправно продолжают набираться.:russian_ru:

Теоретически такое возможно, хотя нам с Spb и не удалось это подтвердить.
Возможно, если ваши роботы одновременно шарашат по несколько заявок на биржу, так что каждая из заявок меньше лимита. В силу конечности скорости света и конечности времени обработки одной заявки биржей, риск-менеджмент может не успеть узнать о том, что позиция изменилась, перед тем как отправить в рынок новую заявку.
Если это так, то с законами природы не поборешься - надо просто тщательнее настраивать своих роботов.
Для того, чтобы убедиться в этом окончательно, просьба:
Прислать нам
• скриншот с таблицей настроек риск-менеджмента
• скриншот с позицией, превышающей настройки риск-менеджмента
Очень важно прислать подробное описание ситуации - как заявки выходили на рынок, какой между ними был промежуток времени и т.п. В идеале – прислать нам робота (мы гарантируем, что код робота никуда дальше не пойдет).
Присылайте на адрес ostashov@iqi.ru с соответствующей пометкой.

#17 Сигурд

Сигурд

    Участник

  • Трейдеры
  • PipPip
  • 153 сообщений

Отправлено 17 May 2012 - 01:20 PM

Уважаемые разработчики!
Столкнулся с проблемой - при двух запущенных в режиме тестирования стратегиях попытка остановить одну из них приводит к остановке отображения всех данных СмартХ. Причем сами данные продолжают обрабатываться. Это видно по тому, что в диспетчере задач СмартХ и менеджер стратегий отображаются в состоянии "работает" и счетчик трафика показывает, что поток данных с биржи продолжает поступать. Спасает только принудительное снятие процесса СмартХ.
Уточнение - проблема остается даже при одной запущенной стратегии.
Уточнение 2 - но при этом часть стратегий останавливается корректно (запускаются и считаются корректно все).
Уточнение 3 - проблема перестала появляться. Настроек никаких, в том числе файрвола и антивируса не менял.

Путем пошагового усложнения скрипта удалось выяснить, в каком случае появляется проблема. Скрипт структуры "неравенство" and "неравенство" работает и останавливается нормально, а если его усложнить до "неравенство" and "неравенство" and "неравенство", возникает вышеописанная проблема. В мануале сказано, что "Логическое И" используется для логического умножения ДВУХ выражений. Но при задействовании ТРЕХ выражений, конструктор не обнаруживает ошибки в скрипте и запускает его.
И еще один момент, всплывший в процессе пошагового изменения скрипта. При закомментировании (использовании символа #) всех строк в одной из вкладок (Buy, Sell, Exit Buy, Exit Sell), конструктор выдает сообщение об ошибке "No Script". Но ведь в других вкладках этой же стратегии скрипт есть. Получается, что чтобы запустить часть стратегии (только Buy к примеру) скрипт в остальных вкладках недостаточно закомментить, а надо удалять.

#18 Sandman

Sandman

    Новичок

  • Трейдеры
  • Pip
  • 3 сообщений

Отправлено 17 May 2012 - 02:32 PM

Спасибо за понимание!
Действительно, скорее всего риск-менеджмент не поспевает за выставляющимися заявками.
Выход вижу только один - переписать скрипт таким образом, чтобы робот реагировал только на первую заявку и не действовал до момента продажи.
Не знаю только пока, удастся ли это осуществить :(



#19 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 17 May 2012 - 08:18 PM

Спасибо за понимание!
Действительно, скорее всего риск-менеджмент не поспевает за выставляющимися заявками.
Выход вижу только один - переписать скрипт таким образом, чтобы робот реагировал только на первую заявку и не действовал до момента продажи.
Не знаю только пока, удастся ли это осуществить :(

А в чем проблема-то? Используйте отработку сигнала по окончанию бара и не используйте несколько одинаковых скриптов в разных роботах ...

#20 Sidor

Sidor

    Гуру нашего муравейника

  • Moderators
  • 3794 сообщений

Отправлено 17 May 2012 - 08:27 PM

Путем пошагового усложнения скрипта удалось выяснить, в каком случае появляется проблема. Скрипт структуры "неравенство" and "неравенство" работает и останавливается нормально, а если его усложнить до "неравенство" and "неравенство" and "неравенство", возникает вышеописанная проблема. В мануале сказано, что "Логическое И" используется для логического умножения ДВУХ выражений. Но при задействовании ТРЕХ выражений, конструктор не обнаруживает ошибки в скрипте и запускает его.

Недокументированная бага. Исправить нет возможности. Проще задокументировать

И еще один момент, всплывший в процессе пошагового изменения скрипта. При закомментировании (использовании символа #) всех строк в одной из вкладок (Buy, Sell, Exit Buy, Exit Sell), конструктор выдает сообщение об ошибке "No Script". Но ведь в других вкладках этой же стратегии скрипт есть. Получается, что чтобы запустить часть стратегии (только Buy к примеру) скрипт в остальных вкладках недостаточно закомментить, а надо удалять.

похоже,тоже недокументированная бага. Задокументируем.



Ответить



  


Rambler's Top100 Яндекс.Метрика