Финансовая лаборатория

Биржевая торговля и торговые роботы

Всем привет. Сегодня продолжение рассказа о том, как можно запустить арбитражного робота для реализации задачи индексного арбитража с помощью нашей программы FinLab.PairTrade.

Начало смотрите вот тут: (часть 1; часть 2; часть 3)

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

Для того, чтобы запустить индексный арбитраж нам нужно пройти следующие шаги:

Шаг №1:

Открываем программу FinLab.PairTrade и создаем заготовку для индексного арбитража.

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

В качестве формулы

выступает уже известная нам формула, о которой я писал в предыдущем посте:

В качестве переменных выступают указываемые программе

Более подробно ШАГ 1 Вы сможете увидеть в снятом видео.

:

Для добавления заготовки  - нажимаем на кнопку «ДОБАВИТЬ».

После этого:

  • вводим осмысленное имя заготовки,
  • выбираем имя метода – RTSSHedge (более подробно о методах можно почитать в инструкции пользователя);
  • добавляем первую переменную формулы - фьючерс на индекс РТС с коэффициентом 1;
  • добавляем вторую переменную формулы - фьючерс на доллар с коэффициентом 1.
  • обязательно нажимаем на кнопку «ПРИМЕНИТЬ».

Таким образом, мы сделали заготовку, указав метод, которым будет считаться вторая нога.

Шаг №2:

Создаём уровневую задачу по СПРЕДу без перекрытия.

Эта задача нужна для того, чтобы в реальном времени считать СПРЕД, у которого в качестве первой ноги будет выступать фьючерс на индекс РТС-стандарт, а в качестве второй ноги – посчитанный нами в предыдущем шаге финансовый инструмент.

В нужные моменты, которые определяются нами в виде уровней, где мы хотим купить или продать СПРЕД, будет совершаться операция по покупке (или продаже) нужного количества контрактов фьючерса на индекс РТС-стандарт (т.е. нашей первой ноги).

Ввести уровни – очень просто – нужно уже подготовленную в Excel таблицу скопировать в буфер, перейти в программу FinLab.PairTrade (настройка уровней) и нажать на кнопку «ВСТАВКА».

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

Шаг №3:

Создаём две задачи без перекрытия:

Эти задачи нужны для того, чтобы когда мы запустим суперзадачу, эти задачи будут проводить хеджирование сразу после сделки по фьючерсу на индекс RTS-standart.

а) Задачу RTS – Empty – без перекрытия с очень коротким периодом усреднения

  • первой ногой выбираем фьючерс на индекс РТС
  • второй ногой выбираем EMPTY
  • убираем галочку «Обязательно хеджироваться»;
  • вводим размер лота равный единице
  • вводим коэффициент, равный посчитанному ранее коэффициенту.
  • Период усреднения делаем очень маленьким (0,1 минуты или 6 секунд).
  • Обязательно убираем галочку «Догонять рынок»

б) Задачу Si – Empty – без перекрытия с очень коротким периодом усреднения

  • Аналогично задаче по фьючерсу на индекс РТС.

Основное, на что здесь нужно обратить внимание – это то, что создаваемые задачи будут постоянно считать текущую цену (усредненный СПРЕД за 6 секунд), т.е. это будет цена (Bid + Ask)/2.  И мы заранее готовим задачу, которая будет ставить лимитированную заявку по цене, рассчитываемой по формуле (Bid + Ask) / 2 + Целевой спред.

Величину целевого спреда нужно установить такой, чтобы в любом случае сделка произошла. Т.е. величина Целевого СПРЕДа должна быть такой, чтобы эмулировались рыночные заявки.

Шаг №4:

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

Суперзадача предназначена для того, чтобы «связать» ранее созданные задачи в едино целое.  Причём в этой «связке» будет ведущая задача, от которой зависит какое количество контрактов будут покупать или продавать зависящие от нее задачи. В нашем случае ведущей задачей будет уровневая задача по фьючерсу на индекс RTS-standard

Ведомыми задачами – простые задачи без перекрытия по фьючерсу на индекс РТС и доллару.

  • Нажимаем на кнопку «Создать суперзадачу»
  • Выбираем сохраненную ранее задачу, состоящую из 3-х задач;
  • Проходим все необходимые шаги, копируя в буфер нужные таблицы (таблица 1 – для хеджа, таблица 2 для уровней).

В результате у нас появился комплекс, состоящий из нескольких задач, объединённых в единое целое суперзадачей. При этом уровневая задача показывает когда и сколько нужно покупать контрактов на фьючерс на индекс РТС-стандарт, а простые задачи хеджируют, т.е. покупают или продают нужное количество контрактов по фьючерсу на индекс РТС и доллар.

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

Можно наслаждаться торговлей!

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

Для тех, кто еще не подписался на новые статьи по RSS… (кто не знает, что такое RSS – можете посмотреть здесь>>) – советую сделать это. Если Вам понравилась данная статья – поддержите наш блог (заодно посмотрите, о чём пишут другие трейдеры).

В конце также дам Вам ссылку на блог очень интересного человека, который уже очень давно торгует, используя принцип парного трейдинга. Он подходит к торговле очень основательно. Можете почитать его посты на форуме РТС, но недавно он начал вести блог, посвященный парному трейдингу. Всем советую посмотреть – мысли там очень интересные. Вот ссылка>>

Комментариев: 26

  1. [...] 4 – Тяжело в ученье – легко в бою!!! Практический индексный… Метки: FinLab.PairTrade, Арбитраж, Видео, Новичкам, СПРЕД, [...]

  2. Лапочка пишет:

    А можно глупый вопросик, только не ругайте сразу.
    Вот у вас формула в руководстве для метода RTSSHedge
    Price(rts)*Koef(rts)*Price(si)*Koef(si)/500000

    Мы вроде в предыдущих постах считали вторую ногу без учета Koef(si), который равен был 2,820.
    Заранее убегаю в чулан, чтобы не получить шишек. Но всеже, учитывается или нет этот коэффициент. Если учитывается, то спред получается вроде другой, чем Вы нам показали во втором посте.

  3. Вячеслав пишет:

    Спасибо, кое что нашел интересное для себя с работой Вашего софта, Дмитрий!
    И все же пока не понял, почему в качестве сигнала на сделку мы опираемся на спред, построенный, вторая нога которого без учета всех инструментов, то есть в данном случае Si?
    Хотя действительно в Вашей формуле, которая используется в роботе этот коэффициент присутствует, но пока как то не в понятной для меня пропорции. Если действительно следовать формуле, которая в мануале, то спред должен быть другим, чем мы расчитывали ранее. Вот тогда может действительно в практике этот инструмент (Si) и зачитывается для расчета.
    Просто в моем понимании этот спред должен был выглядеть иначе RTSS – (RTS + 3*Si).
    Единственное что конечно RTS надо привести к рублям, что Вы наглядно ранее и показали как это сделать.
    Ладненько, попробую чуть позже на практике в Вашем ПО это реализовать, может и найду остальные ответы сам.

    • Как же 2-я нога без учета всех инструментов? Ведь мы постоянно считаем её по приведенной формуле, а в качестве аргументов у этой формулы – фьючерс на индекс РТС и фьючерс на доллар.

      • Вячеслав пишет:

        Фьючерс на доллар мы использовали в формуле предыдущих расчетов только для получения значения курса доллара для перевода RTS в рубли.
        Я имел ввиду именно использовать его (Si) еще и в самом спреде RTSS–(RTS + 3*Si). Если Si здесь не учитывать, а просто хеджироваться им, то мы можем наоборот понести убытки от изменения курса доллара не в нашу сторону.
        Просто приведу пример из того спреда, что мы построили ранее в уроках(статье). Специально выбрал побольше размах для наглядности.
        10.06.2010 в 17-00 мы продаем спред по +28р и 21.06.2010 в 17-00 откупаем по -15р. Итого доход 43р без учета комиссий и всего остального. Вроде все супер.
        А теперь мы добавим сюда сальдо самого хеджирующего Si(вернее даже 3*Si)
        Спред уже другой
        Значение спреда 10.06.2010 в 17-00 -95529р, а 21.06.2010 в 17-00 -92874р.
        А значаит, если мы продадим по -95529 и откупим по -92874, то убыток будет 2655р вместо дохода, посчитанного ранее.
        Я именно про это хотел сказать, может я что не понял еще, но, если сам SI оставить в свободном полете без контроля в спреде, то убытки будут большие, хоть и редко, но могут полностью перекрыть доход за предыдущий период.

  4. Вячеслав пишет:

    Дмитрий, а как на счет продолжения этой статьи.
    Вот я хочу корзину фьючерсов простив RTS захеджированного также долларом.
    Как это сделать?
    Это по сути получается две корзины против друг друга, в описаниее функциональности робота не указана такая возможность. Только против одного инструмента можно сделать корзину. Или это что то пропущено в руководстве и такая возможность есть?
    Можете показать как это реализовать у Вас? Тем более там используются другие методы в заготовке в любом случае, так что будет в любом случае познавательно многим еще похожий, но всеже другой пример индексного арбитража.

    • Просто считать СПРЕД по 2-м корзинам можно. Делаете 2 заготовки (на каждую ногу) и делаете задачу где в качестве 1-й ноги первая корзина, а в качестве 2-й ноги – вторая корзина.
      Торговать тоже можно будет – только нужно продумать – как выстроить таблицу хеджирования.

      • Вячеслав пишет:

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

        • Вячеслав, с удовольствием покажу этот процесс, но прошу не обижаться – только через 3 недели. Уезжаю на отдых. Пока меня не будет – на вопросы будет gorky отвечать. А как приеду – то отдохнувший и полный сил сразу со всем разгребусь… Надеюсь. :-)

          • Вячеслав пишет:

            Дмитрий, я помню о Ваших планах. Будете случаем в Геленджике на пирушке Бондаря, привет всему его коллективу. Я их помню, но приехать не получается :(
            Тем более, о чем Вы говорите, какие обиды? :)
            Если я найду в Вашем лице хорошего разработчика с НАДЕЖНОЙ системой, то наоборот буду всем хвалить и рекламировать.
            А пока я найду, чем заняться. Продлил время тестирования. Кстати заметил, что наконец то появился виртуальный режим, это очень радует, очень. Жаль только не понятно, то ли просто сделки виртуальные еще не совершились, то ли никакой инфы про профит-убыток по ним нет нигде.
            Из минусов пока один, всеже много вылетов программы и подвисаний. Тестирую на разных серверах на разных площадках, в принципе результат одинаковый. Все же я это списываю на безобразно глючный смартком, жаль потестировать с Плазой нет пока возможности.
            В смысле у Вас нет такой кнопочки в софте “Соединяюсь с новейшим шлюзом Плаза 2. Полет отличный” !!!

          • Вячеслав пишет:

            Я почему спросил про корзины против друг друга?
            В руководстве жирненьким выделено, что заготовки могут выступать только в роли спота и только в задачах бех хеджирования, так как синтетический стакан, который создает заготовка позволяет только получать данные, но не торговать.
            Ну, я только ЗА, если Вы развеите мои сомнения.

  5. Леонид пишет:

    Коллеги, если есть кто не жадный, выложите пожалуйста готовую суперзадачу данного видеоурока в виде файла для скачки!

    • Вячеслав пишет:

      Я не жадный, но не дам, не могу :) Мне разработчики не дают такой возможности, руки в цепях.

  6. Леонид пишет:

    Не разрешают или у самого нету?

    • Вячеслав пишет:

      Леонид, попытайтесь сделать сами по урокам, проще не бывает даже и получите сами ответ на свой вопрос, почему я “не могу” вам дать этого файла.
      Я уже перестроил разных арбитражный схем на этом роботе, мазоли скоро будут. А по этим урокам это занимает всего 10-15 минут, Вам лень?

      • Леонид пишет:

        дома на Виcте робот не идет, а на работе закрыт ютюб, чтоб ролики смотреть и сразу делать. А сохранять дома ролики, чтоб на работе включать и смотреть пошагово-не особо удобно.

        • Вячеслав пишет:

          Как у Вас, Леонид, все сложно :) Мне бы такие проблемы :)
          Вот Вам набор задач
          http://depositfiles.com/files/mu2atjgdy
          Я там только чуть может где то на свое усмотрение подстроил, но все равно не сильно старался испоганить шедевоы авторы :)
          А суперзадачу Вам все равно придеться делать самому из этой каши задач :(
          Не сохраняет софт суперзадачу как таковую.

  7. asd пишет:

    что за музыка играет на фоне?

  8. Роман пишет:

    Приветствую, Дмитрий!
    Не нашёл где можно оставить пожелания по развитию FinLab.PairTrade, поэтому пишу здесь, уж извините :)

    На мой взгляд, не хватает очень маленькой и ОЧЕНЬ важной функции: в “расширенных настройках”, в параметрах “выставление заявок” добавить возможность не только ставить по целевой цене и лучшей в стакане, но и отступать от лучшей цены или от средней цены в глубь стакана (в противоположную сторону от рыночной цены) на заданный интервал.
    Этот параметр будет весьма полезен для того чтобы брать часть спрэда по котируемому инструменту.
    Сейчас, как я понял, нечто подобное можно выставить параметром “целевой спрэд”, но только для второго инструмента, которым идёт перекрытие. Как раз на втором инструменте это делать не всегда возможно.
    Т.е. например, есть суперзадача: простая задача – РТС против заготовки из корзины сбера, газа, лука и si; и три простые задачи для перекрытия РТС. Получается, для фьючерса РТС параметр “целевой спрэд” настраивает отступ от среднего торгуемого спрэда, а настроить отступ от средней цены в стакане для заявки нельзя. Можно только или по лучшей поставить или по целевой.
    Возможно, я не правильно понимаю настройки программы или знаю не все её возможности, буду рад, если подскажите, как регулировать отступ от краёв стакана для котируемого инструмента.
    С уважением, Нечаев Роман.

  9. Ivan пишет:

    Если разница между bid и ask велика, то каким образом FinLab выставляет заявки? Ведь при выставлении заявки по рынку теряются уровни.

  10. Денис пишет:

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

  11. Роман пишет:

    Очень ВАЖНО!
    Похоже с текущим функционалом программы, полноценный индексный арбитраж, кроме РТС против РТСС, реализовать не получится. Ведь если покупать корзину против индекса РТС, то нужно сначала котировать какой либо малоликвид из корзины, тот по которому наибольший спред. А это сделать сейчас похоже нельзя.
    Например, “корзина”(ГМК, СБЕР, ГАЗ, ЛУК) против “РТС”. Начинать формирование позиции, т.е. брать по лимит. ценам, нужно однозначно с ГМК(имеет наибольший спред), остальные фьючи, включая РТС и Si можно брать по рынку. Значит нужно построить главную задачу ГМК минус …. непонятно что))
    Как не крути, но нельзя получить корректное значение “раздвижки” вычитая из ГМК “корзину”. Единственное, что приходит в голову это построить главную задачу по формуле:
    ГМК минус ЗАГОТОВКА((ГМК*2+СБЕР+ГАЗ+ЛУК)-РТС*Si*Коэффициент). но и в этом случае раздвижка получается отрицательной(перевёрнутой) и торговать по ней не возможно.
    Просьба, внести в функционал возможность построения раздвижки отдельно от котируемого инструмента. Например добавить опцию “строить раздвижку по одной заготовке”, включаешь её, выбираешь заготовку и задача уже работает от значений заготовки а не от выбранных инструментов. Тогда можно будет покупать по лимиту любой фьюч и затем всё остальное добирать “по рынку”.
    Или хотя бы сделайте возможность смены знака “раздвижки”, чтоб можно было поменять её с отрицательной на положительную, тогда немного поизощерявшись можно будет что то слепить.))

  12. mts_trade пишет:

    Прошу, все таки, разъяснить как в в роботе можно торговать корзину(фьюч РТС с хэджем) против корзины. При всем уважении, я понял иронию прозвучавшую от представителей конкурентов на вэбинаре: ” Финлаб бесплатный, но в нем надо долго разбираться”.

  13. Илья пишет:

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

  14. Илья пишет:

    Может чтоб работала супер-индексная задача нужно запустить задачи в нее входящие? И второй вопрос будет ли происходить процесс перекрытия?

Оставить комментарий