Компания TSLab
Компания TSLab Блог компании TSLab
09 декабря 2020, 14:45

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

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

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

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

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

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

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

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

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

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

24 Комментария
  • ICEDONE
    09 декабря 2020, 15:02
    А чего сложного, есть же блоки которые фильтруют. Есть открытая позиция — нет- можно открыть))
      • ICEDONE
        09 декабря 2020, 15:27
        Компания TSLab, Ну они вроде как разносторонние инструменты можно использовать, блоки если есть длинная позиция. и т.д.))
  • OnlyHuman
    09 декабря 2020, 15:06
    Контент однозначно полезный. На SL много болтовни с сомнительной пользой, и сильно не хватает конкретики. Ваши материалы помогают не только осваивать TSLab, но и дают пищу для размышлений и дальнейшего развития идей. 
    Спасибо вам за подобные материалы!
  • Friend
    09 декабря 2020, 15:14
    Хорошая мысль, отличный блог 
  • SergeyJu
    09 декабря 2020, 15:30
    Если мне нужна система, которая использует 2 разных ценовых потока, я сразу оба и возьму, а не стану городить огород так, как здесь написано. 
  • ICEDONE
    09 декабря 2020, 17:19
    Там ошибка выпадает
      • ICEDONE
        09 декабря 2020, 17:43
        Компания TSLab, как только открываешь
  • Susanin
    10 декабря 2020, 17:28
    а вы можете писать не только о квадратиках но и о коде? это гораздо интереснее.
    а отладчик кода у вас в программе есть?
      • Susanin
        11 декабря 2020, 00:50
        Компания TSLab, спасибо за ссылку.
        я одним глазом посмотрел и сразу возник вопрос. прежде чем погружаться в детали необходимо получить на него ответ.
        я пользуюсь другим тестером и там логика выполнения программы следующая.
        язык там совсем не C# но в терминах его скрипт будет выглядеть примерно так:
        есть класс стратегии   в котором есть глобальные переменные пользователя и метод обработки данных. т.е. свечек.
        тестер Сам производит итерацию по свечкам запуская метод на каждой новой свече и есть доступ как глобальным переменным так и к истории свечек. скрипт вызывает методы для покупки и и.д. которые уже рассчитывает сам терминал. ведет позу и т.д.

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

        я правильно понял логику программы?
        • ch5oh
          11 декабря 2020, 10:09

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

           

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

           

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

          • Susanin
            11 декабря 2020, 12:43
            ch5oh, ну такая логика совсем не эффективна. зачем все рассчитывать с начала. если можно считать только новые данные. я считаю это огромный недостаток архитектуры.
            если вы из разработчиков то обратите на  это внимание. изменить это не сложно. 

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

            • ch5oh
              11 декабря 2020, 14:20

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

               

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

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

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

              • Антон Калашников
                20 декабря 2020, 11:51
                ch5oh, 
                А что за скрипт такой в окошке представлен? продажа волатильности при постоянном дельта-хедже?

                • ch5oh
                  20 декабря 2020, 16:12

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

                   

            • ch5oh
              11 декабря 2020, 14:29

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

               

              Улыбка

              Позиция

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн