rss

Профиль компании

Финансовые компании

Блог компании TSLab | Мелочи, которыми многие не пользуются в алготрейдинге

Симбиоз двух алгоритмов или банальный учет направленности одного тикера относительно другого, мы все понимаем, но редко учитываем это при создании алгоритма.

На примере вчерашнего алгоритма, см статью -> smart-lab.ru/company/tslab/blog/663259.php сделали скрипт по си. В самой логике ничего не меняли, только добавили еще одно условие, открывать сделки, только если совпадает направление по ртс (ну естественно имеется ввиду если растет ртс то продавать си можно, и наоборот)
Делается это через экспорт импорт значений, которые легко можно передавать между скриптами в TSLab.
Мелочи, которыми многие не пользуются в алготрейдинге

То есть в одном скрипте экспортируем с уникальным именем, а во втором импортируем по этому же имени. В зависимости от типов данных, импорт будет или логических значений или вещественных и целочисленных.

Ниже смотрим на эффект
Мелочи, которыми многие не пользуются в алготрейдинге
Вроде же хорошая эквити? нет. горбатые холмы тоже плохо — не станем философствовать, хоть и для си горб объясним удвоением цены.
Но вот так выглядет уже после фильтра по ртс
Мелочи, которыми многие не пользуются в алготрейдинге

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

после
Мелочи, которыми многие не пользуются в алготрейдинге

При этом, можно углубиться, и «зациклить» оба скрипта, и торговать и ртс с учетом уже отфильтрованного си, но сделать это уже нельзя так просто. Ко всему прочему еще нужно будет писать очередность исполнения, кто формирует сигнал первый и по какому принципу отрабатывать его с учетом если уже были сделки от ртс, но на си не закрылась, и тд. В целом много подводных камней, которые нужно прописывать. Мы же ничего не меняли, в приведенном примере, и не пытались подгонять красивые результаты. то есть параметры «дефолтные», можно сказать. При создании конечно предполагалось, что для шортовых позиций, будут больше объемы, для растущего меньше, так как падаем всегда панически и резко, а растем потом долго, медленно и нудно, потому разделен объем в лонг и шорт.

Так же, делитесь впечатлениями и мнениями относительно контента, что еще хотелось бы видеть в нашем блоге?! и является ли он вам полезным!?

Скачать первый скрипт
Скачать второй скрипт
Присоединяйтесь к нам в телеграмм канал

  • обсудить на форуме:
  • TSLab
★16
24 комментария
А чего сложного, есть же блоки которые фильтруют. Есть открытая позиция — нет- можно открыть))
avatar

ICEDONE, Это да, а дальше как? вот к пример ртс ведущий, си ведомый.

ртс открыл лонг, си следом шорт. Далее ртс закрылся, а си еще нет. Следом поступает сигнал для ртс, игнорировать его, так как Си еще не закрылся? Открывать его с учетом того что си в направлении? или же ждать пока закроется и си, только после этого формируя новый сигнал для ртс?) вот про такую очередность говорилось. + есть еще сценарий ртс открылся, а си за это время 2 или 3 раза может войти в том же направлении. А может например разок в том направлении, потом увидит обратное и снова в том, а ведь обратный сигнал при «зацикливании» закроет сделку по ртс (ну такие условия в скрипте). можно конечно много сценариев прописать, но мысль думаю понятна.

avatar
Компания TSLab, Ну они вроде как разносторонние инструменты можно использовать, блоки если есть длинная позиция. и т.д.))
avatar
Контент однозначно полезный. На SL много болтовни с сомнительной пользой, и сильно не хватает конкретики. Ваши материалы помогают не только осваивать TSLab, но и дают пищу для размышлений и дальнейшего развития идей. 
Спасибо вам за подобные материалы!
avatar
OnlyHuman, Спасибо и вам!)
avatar
Хорошая мысль, отличный блог 
avatar
Если мне нужна система, которая использует 2 разных ценовых потока, я сразу оба и возьму, а не стану городить огород так, как здесь написано. 
avatar

SergeyJu, Собрать 2 алгоритма внутри одного — не проблемно, особенно если они не сложные. Это лишь разные методы использования.

а в чем огород?) добавили только 2 блока.

avatar
Там ошибка выпадает
avatar
ICEDONE, Какая ошибка, и где выпадает?)
avatar
Компания TSLab, как только открываешь
avatar
ICEDONE, у вас версия тслаб 2.0? или ранняя необновленная 2.1?
avatar
Компания TSLab, 2.042.0.32утром оьновлятьчя не просил
avatar
ICEDONE, «экспортные» блоки только в 2.1 появились. в 2.0 их не было, потому ругается
avatar
а вы можете писать не только о квадратиках но и о коде? это гораздо интереснее.
а отладчик кода у вас в программе есть?
avatar

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

отладчик есть docs.tslab.pro/pages/viewpage.action?pageId=20185805

avatar
Компания TSLab, спасибо за ссылку.
я одним глазом посмотрел и сразу возник вопрос. прежде чем погружаться в детали необходимо получить на него ответ.
я пользуюсь другим тестером и там логика выполнения программы следующая.
язык там совсем не C# но в терминах его скрипт будет выглядеть примерно так:
есть класс стратегии   в котором есть глобальные переменные пользователя и метод обработки данных. т.е. свечек.
тестер Сам производит итерацию по свечкам запуская метод на каждой новой свече и есть доступ как глобальным переменным так и к истории свечек. скрипт вызывает методы для покупки и и.д. которые уже рассчитывает сам терминал. ведет позу и т.д.

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

я правильно понял логику программы?
avatar

Susanin, писать на языке «высокого» (но на самом деле с точки зрения трейдера НИЗКОГО) уровня — неэффективно по трудозатратам.

 

По моему опыту оптимально писать на C# отдельные кубики со своими торговыми ноу-хау (допустим, какие-то индикаторы или обращение к внешним пакетам математической и статистической обработки данных R, Python, Matlab, ...). Но саму торговую логику рисовать именно в виде блок-схем.

 

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

avatar
ch5oh, ну такая логика совсем не эффективна. зачем все рассчитывать с начала. если можно считать только новые данные. я считаю это огромный недостаток архитектуры.
если вы из разработчиков то обратите на  это внимание. изменить это не сложно. 

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

avatar

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

 

Вам кажется, что кодить проще, потому что Вы не пробовали рисовать блок-схемами. Кодить более сложные алгоритмы с запутанными зависимостями и развитым пользовательским интерфейсом непосредственно в коде будет очень утомительно и при этом будет вероятность что-то напутать (скажем, вычислить дельту не по модельной улыбке, а по биржевой или рыночной). Например, в стандартном опционном скрипте чуть больше 100 кубиков использовано. Излишне говорить, что в каждом из этих кубиков упрятан нетривиальный функционал, валидация входных значений, возня с пограничными значениями и прочее, что программисты так любят заметать под коврик и оставлять грабли на радость техподдержке и юзерам.

Пример скрипта

Впрочем, понятно, что на вкус и цвет все фломастеры разные. Главное, чтобы Вам лично было профитно разрабатывать и торговать свои стратегии в той платформе, которую Вы хорошо освоили.

avatar
ch5oh, 
А что за скрипт такой в окошке представлен? продажа волатильности при постоянном дельта-хедже?

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

 

avatar

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

 

Улыбка

Позиция

avatar

теги блога Компания TSLab

....все тэги



UPDONW