У вас не стоит Flash Player
Page 1 of 2 1 2 >
Настройки
#80619 - Wed Dec 07 2016 03:37 AM Перерасчет скрипта
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Блок "Перерасчет скрипта" инициирует повторное выполнение скрипта в заданные моменты времени.
В качестве источника принимает: источник, опцион или опционную серию.

Параметры блока:
Таймфрейм - время в секундах, кратно которому скрипт с этим блоком будет пересчитываться. По умолчанию: 30 секунд.
Смещение - время в секундах дополнительного отступа от расчетного времени перерасчета. Может быть как положительным так и отрицательным числом. По умолчанию: -1 секунда.
Logging - управляет записью в лог программы сообщений о расчете блока и срабатывании таймера. По умолчанию: false.
Key - идентификатор блока, строка. Ставьте уникальное (в пределах скрипта) значение. Важен, если в одном скрипте используется несколько таких блоков.

Значения параметров могут быть не целочисленными, например, смещение: 0,3 - означает, что пересчет произойдет через 300 миллисекунд после расчетного по таймфрейму времени.

Способы использования блока. Можно:
1. Выполнить скрипт агента через некоторое время после заданного временного интервала, например, с целью выставить стоп-заявку.
Пример: пусть интервал пересчета скрипта 1 час, параметры блока: Таймфрейм=3600 (3600=60*60); Смещение=20.
При этом скрипт отработает не только в 10, 11, 12 часов и т.д., но и в 10:00:20, в 11:00:20, и т.д. Если в эти моменты уже будет открыта новая позиция, то скрипт сможет выставить защитный стоп.

2. Выполнить скрипт агента в определенное время. Например, основной таймфрейм скрипта 1 час, параметры блока: Таймфрейм=59355 (16 часов *60*60 + 29 минут *60 + 15 секунд); Смещение=0. Скрипт дополнительно отработает в 16:29:15.

3. Выполнять скрипт заранее. Интервал пересчета скрипта 1 минута, таймфрейм 1 минута, смещение -1 секунда. Скрипт, в дополнение к стандартному поведению, будет выполнен в ... 10:00:59, 10:01:59, ...

4. Мониторить работу программы даже при отсутствии сделок/торгов. Не знаю зачем, но можно.

Имейте в виду:
Если основным инструментом поставить неликвидный опцион, то пересчетов скрипта кроме как от этого блока не будет, из-за отсутствия сделок по инструменту, пересчет будет происходить только в соответствии с параметрами блока (см. скрин 2).
При использовании блока, агент будет пересчитываться и в неторговое время.



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

Параметры:
Искомое - искомое сообщение (его часть) в логе программы в ответ на которое скрипт пересчитается. Например, "INFO :127:" - для реагирования на факт пересчета любого скрипта. Для других примеров сообщений, смотрите лог программы.

Периодичность, с - Временной интервал для периодической проверки наличия искомого сообщения в логе программы, в секундах
Logging, Key - как и у предыдущего блока.


Блоки работают только в версии ТСЛаб 2.0 в режиме агента, использовать их в лаборатории, мне кажется, нет смысла. Созданы по мотивам кубика "Метроном". Теоретически, в условиях сильной загрузки процессора, блоки могут работать не стабильно: пропускать моменты перерасчета и наоборот.

Используйте их на свой страх и риск! Я ни за что не отвечаю, ничего не гарантирую.


Attachments
ScriptRecalculator_1.png (157 downloads)
ScriptRecalculator_2.png (141 downloads)
ScriptRecalculator_2.rar (102 downloads)

_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80627 - Wed Dec 07 2016 10:30 AM Re: Перерасчет скрипта [Re: jhgjrht]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Вопрос такого рода, а в момент этого пересчета в скрипт поступает текущая коцанная свеча или нет? Потому как вопрос важный. Учитывает ли эта свеча все последние апдейты?
Возможно сюда стоит дописать некие сценарии использования для визуальщиков.
_________________________
__


Наверх
#80633 - Wed Dec 07 2016 10:42 AM Re: Перерасчет скрипта [Re: ra81]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Нет, конечно, свечи программа формирует, хотя в настройках скрипта есть способ пересчета "интервал и первая сделка", в этом случае, видимо, последняя свеча будет с учетом всех последних сделок, но я не проверял.
Нечего тут в сценарии дописывать. Все что делает этот блок - принудительно пересчитывает скрипт.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80634 - Wed Dec 07 2016 10:53 AM Re: Перерасчет скрипта [Re: jhgjrht]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Originally Posted By: jhgjrht
Блок "Перерасчет скрипта" инициирует повторное выполнение скрипта в заданные моменты времени.


jhgjrht спасибо!
А есть ли возможность сделать кубик, который будет инициализировать пересчет скрипта, когда приходит сообщение с номером.
http://wiki.tslab.ru/doc20rus/rukovodstv...yh-soobshchenij
Т.е. в кубике ставим номер сообщения, которое ждем, если пришло, то пересчет.
Желательно сделать с наименованием агента и наименованием блока(сигнала) по типу комментария заявки.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#80635 - Wed Dec 07 2016 11:07 AM Re: Перерасчет скрипта [Re: 777]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Пожалуйста! Спасибо за спасибо smile
Теоретически можно. Разработчики добавили метод Context.Recalc() который и инициирует пересчет. Что станет условием вызова этого метода решать автору скрипта или кубика. Но чтобы номер сообщения и имя агента получать, надо логи программы анализировать, а они могут быть большие. Нужны ли такие хитрозакрученные взаимосвязи? Может лучше как-то по другому задачу решить? И мне очень не нравится идея связывать разные агенты в "цепочки". Чем проще, тем лучше.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80636 - Wed Dec 07 2016 11:17 AM Re: Перерасчет скрипта [Re: jhgjrht]
777 Offline
Carpal Tunnel

Registered: Thu Apr 01 2010
Записи: 2564
Loc: г. Дзержинский
Я другую немного цель преследую.
Хочу уйти от сжатия. Т.е. пришло сообщение, что есть вход в позу(брокер прислал) делаю пересчет и выставляю стоп-лосс сразу, внутри бара. Как-то так.
_________________________
«Существует 3 типа лжи: ложь, наглая ложь и статистика»
Дизраэли.

Наверх
#80637 - Wed Dec 07 2016 11:35 AM Re: Перерасчет скрипта [Re: 777]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Понятно.
Позволю себе позанудствовать
Такое надо внутри программы реализовывать, как мне кажется. Если из скрипта, то сложностей больно много.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80640 - Wed Dec 07 2016 12:26 PM Re: Перерасчет скрипта [Re: 777]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: 777
Я другую немного цель преследую.
Хочу уйти от сжатия. Т.е. пришло сообщение, что есть вход в позу(брокер прислал) делаю пересчет и выставляю стоп-лосс сразу, внутри бара. Как-то так.

это через апи реализуется. пересчет каждый тик, а когда наш ордер сработал тогда вся логика проворачивается. сжатия не надо.
_________________________
__


Наверх
#80641 - Wed Dec 07 2016 12:44 PM Re: Перерасчет скрипта [Re: ra81]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Запрограммировать весь скрипт на API нормальному человеку (не программисту) - тяжело. И модифицировать его потом непросто. Кубиками значительно удобнее. А самый эффективный способ - это скрипт из своих кубиков, инкапсулирующих логически обособленные части скрипта.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80650 - Wed Dec 07 2016 04:53 PM Re: Перерасчет скрипта [Re: 777]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Originally Posted By: 777
А есть ли возможность сделать кубик, который будет инициализировать пересчет скрипта, когда приходит сообщение с номером.
http://wiki.tslab.ru/doc20rus/rukovodstv...yh-soobshchenij
Т.е. в кубике ставим номер сообщения, которое ждем, если пришло, то пересчет.
Желательно сделать с наименованием агента и наименованием блока(сигнала) по типу комментария заявки.

Сделал немного проще, ищется строка в логе.

Добавил кубик "Перерасчет скрипта по логу". См. первый пост.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80665 - Thu Dec 08 2016 02:15 PM Re: Перерасчет скрипта [Re: jhgjrht]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: jhgjrht
Запрограммировать весь скрипт на API нормальному человеку (не программисту) - тяжело. И модифицировать его потом непросто. Кубиками значительно удобнее. А самый эффективный способ - это скрипт из своих кубиков, инкапсулирующих логически обособленные части скрипта.

Как бы ответить, если ты сам написал на АПИ, то переработка потом делается куда проще чем в кубиках колупаться. Потому как правильная архитектура и блочность кода, побивает головняки с тыщей стрелочек и тормозами в виз редакторе.
Но для визуальщиков - деваться некуда.


А пересчет по логу = жесткий костыль вообще smile
_________________________
__


Наверх
#80667 - Thu Dec 08 2016 03:11 PM Re: Перерасчет скрипта [Re: ra81]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Originally Posted By: ra81
Originally Posted By: jhgjrht
Запрограммировать весь скрипт на API нормальному человеку (не программисту) - тяжело. И модифицировать его потом непросто. Кубиками значительно удобнее. А самый эффективный способ - это скрипт из своих кубиков, инкапсулирующих логически обособленные части скрипта.

Как бы ответить, если ты сам написал на АПИ, то переработка потом делается куда проще чем в кубиках колупаться. Потому как правильная архитектура и блочность кода, побивает головняки с тыщей стрелочек и тормозами в виз редакторе.
Но для визуальщиков - деваться некуда.


А пересчет по логу = жесткий костыль вообще smile

Смотря какая переработка и какие скрипты. Важна не столько блочность, сколько модульность, хотя, возможно, мы об одном и том же. Я, будучи неплохим разработчиком, написавшим изрядное количество кода, однажды с удивлением обнаружил, что предпочту кубики поменять-подвигать, если их немного - так быстрее и удобнее. А при комбинированном подходе (кубики на API и визуальный редактор) их много и не получается, также, есть и другие преимущества.

Костыль - это да, 100%. И перезапуск скрипта по таймеру из самого скрипта - тоже костыль. Надо подобное и еще кое-что другое в настройках скрипта в программе задавать, но от разработчиков решения не дождешься...
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80668 - Thu Dec 08 2016 03:54 PM Re: Перерасчет скрипта [Re: jhgjrht]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8134
Мы знаем, что в скрипте нужна событийная модель. Собственно она изначально была заложена в программе и даже чуть-чуть работала(в зачаточном виде). Но основная проблема заключается в том, что когда агент очень сильно начинает расходится с лабораторией, это вызывает массу вопросов и проблем у пользователя. Из-за этого событийная модель была убрана из программы версии 1.1 и вместо нее появились флаги в настройках агентов, которые дорабатываются и по сей день.
Т.о. на данный момент нет четкого представления, а какая она должна быть эта модель поведения скрипта в реале, непосредственно с полным управлением из скрипта.
Если есть целостная картинка в воображении, как это должно выглядеть, = любые предложения по этому поводу с удовольствием изучим. (в поддержку).

Наверх
#80669 - Thu Dec 08 2016 04:02 PM Re: Перерасчет скрипта [Re: ViL]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Спасибо за комментарий, Vil. Не ожидал.
Дело даже не в событийной модели - эти детали пользователю не интересны, а скорее в настройках запуска скрипта. Простые предложения я как-нибудь сформулирую и пришлю.
Кстати, объединение вместе лаборатории и модуля исполнения агентов, на мой взгляд - проектная ошибка. По отдельности им лучше, а разница между лабораторным и реальным поведением скриптов - всегда будет.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80677 - Fri Dec 09 2016 11:03 AM Re: Перерасчет скрипта [Re: jhgjrht]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Модель просто берите с метатрейдера и все. Чего голову греть. Или с квика. Там все просто.
Уже сейчас в лаборатории нельзя выбрать пересчет сделка или пок/прод. В чем проблема запихать туда еще пересчет по другим событиям? Так же не будут работать в лаборатории. В реале будут работать.

Я не вижу проблемы вообще. Да хотя бы на уровне АПИ сделать а визуальщиков оставить как есть. Потому как виз редактор по событийке должен быть другим. Прогеры через АПИ вылижут вашу модель потом накрутить визуал уже можно поверх, все равно это тупо надстройка над АПИ и все через АПи работает.
_________________________
__


Наверх
#80679 - Fri Dec 09 2016 12:53 PM Re: Перерасчет скрипта [Re: ra81]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Никакой модели я предлагать не собираюсь. Это не моя забота.
Перестаньте мусорить в моей ветке.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80681 - Fri Dec 09 2016 02:44 PM Re: Перерасчет скрипта [Re: jhgjrht]
serg Offline
Pooh-Bah

Registered: Fri May 14 2010
Записи: 1663
Loc: Россия
Originally Posted By: jhgjrht
По отдельности им лучше, а разница между лабораторным и реальным поведением скриптов - всегда будет.


прошу прощения, но коммент...
мой опыт однозначно показывает, что если скрипт правильно собран ( работаю только в визуале) - он практически один в один совпадает реал с лабораторией ( естественно с учетом проскальзования) smile

ЗЫ как много я не знаю..:) за кубики - спасибо !


Отредактировано serg (Fri Dec 09 2016 02:46 PM)

Наверх
#80684 - Fri Dec 09 2016 03:23 PM Re: Перерасчет скрипта [Re: jhgjrht]
ra81 Offline
Carpal Tunnel

Registered: Thu Sep 27 2012
Записи: 2860
Originally Posted By: jhgjrht
Никакой модели я предлагать не собираюсь. Это не моя забота.
Перестаньте мусорить в моей ветке.

модель я предлагал не вам. а разработчикам один из которых отписался чуть выше. не нужно все принимать на свой счет.
_________________________
__


Наверх
#80687 - Fri Dec 09 2016 04:40 PM Re: Перерасчет скрипта [Re: ra81]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Ответили то Вы мне. Пользуйтесь кнопкой "Reply", если хотите ответить не последнему написавшему.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
#80688 - Fri Dec 09 2016 04:46 PM Re: Перерасчет скрипта [Re: serg]
jhgjrht Offline
writer

Registered: Sun Nov 21 2010
Записи: 428
Originally Posted By: serg
Originally Posted By: jhgjrht
По отдельности им лучше, а разница между лабораторным и реальным поведением скриптов - всегда будет.


прошу прощения, но коммент...
мой опыт однозначно показывает, что если скрипт правильно собран ( работаю только в визуале) - он практически один в один совпадает реал с лабораторией ( естественно с учетом проскальзования) smile

ЗЫ как много я не знаю..:) за кубики - спасибо !

Пожалуйста!

Про разницу: я согласен - так и есть, результаты скрипта и агента будут соответствовать друг-другу ... с точностью до проскальзывания и времени входа\выхода. smile
Например, открыл агент позицию не на той же свече, что и скрипт, а на следующей (пока агент заявку выставлял, рынок ушел, но вернулся позже). Свеча другая, следовательно и номер у нее другой и время входа другое, да и цена, может другой оказаться, при некоторых настройках. Если агент отталкивается от этих значений, то может сдвинуться и выход из позиции. А за ним и последующая сделка может уползти. Далее эффект бабочки.
_________________________
Не пишите мне! Никому ничего делать не буду.

Наверх
Page 1 of 2 1 2 >


Moderator:  ViL, sar