Избранное трейдера R14

по

Тестирование торговых стратегий в QUIK

Программ, в которых можно тестировать торговые стратегии, много. Как специализированных, так и общих.
Покажу, как это священнодействие можно проделать в QUIK, на примере реверсной системы на двух EMA.

1. Копируем 2 скрипта: Test2emaSignal.lua, Test2emaEquity.lua в каталог LuaIndicators вашего нашего рабочего QUIK;
2. На график выбранного инструмента добавляем в окно 1 индикатор 2emaSignal, в окно 2 - 2emaEquity;
3. Настраиваем дату начала тестов, периоды EMA.
4. На выходе: график + файл Test2emay.csv (в каталоге QUIK-а) с результатами теста.

Скачать: Test2EMA.zip: http://www.xsharp.ru/indikators 

Тестирование торговых стратегий в QUIK

( Читать дальше )

И вновь о SWIFT

Грозные заявления российских государственных мужей относительно возможного отключения от системы SWIFT не более чем провокация, с помощью которой правительство пытается ускорить отключение России от SWIFT. В этом случае будет создана собственная система взаиморасчетов, а по господству доллара будет нанесен мощный удар. Что касается коллективного Запада, который первым заявил о такой угрозе (отключение России от своей системы расчетов), то очевидно, что наши «международные партнеры», как говорит ВВП, исчерпали возможности давления на Россию.

Если не считать информационного очень эмоционально насыщенного хаоса вокруг событий на Украине, то, пожалуй, самой горячей новостью последних дней станет муссирование идеи отключения России от межбанковской системы SWIFT.

Многочисленные эксперты и аналитики устроили такой вой, что еще немного, и эта мера покажется хуже термоядерной войны. «Прогрессивная либеральная» общественность в мазохистском упоении потирает руки, предрекая России неизбежный хаос и дикость. Подключились даже политики высшего уровня со своими заявлениями, что отключение от SWIFT станет объявлением войны и вызовет неограниченные ничем ответные санкции. Неограниченные, это как? Сразу ядерной бомбой по ФРС?
На самом деле выступления и Медведева, и до него Предправления ВТБ Костина, выдержанные в жестких тонах, вкупе с объявлением российского ЦБ о запуске альтернативной системы взаиморасчетов, скорее говорят о том, что за всеми этими громкими заявлениями стоит провокация. Наши деятели как бы говорят: «Попробуйте, ребята. И посмотрим, что получится».
Большинство людей в принципе с трудом представляет, о чем же таком идет речь. Комментарии лишь раздувают огонь панического страха перед неизвестным вкупе с настроем на эпическую битву с акулами капитализма. На самом же деле ничего страшного не происходит и произойти в принципе не может. Лучшим примером этого является Иран, которого вот уже несколько лет от системы отключили. И ничего, вполне неплохо себя чувствует. Стоит не паниковать, а на самом деле разобраться, что такое SWIFT, с чем его едят, и откуда такая паника.



( Читать дальше )

Анализатор опционных позиций. Версия 6. Как запустить его?

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

Во всем виновато обновление выпущено в декабре Microsoft ? вот оно http://support.microsoft.com/KB/2553154
А вот уже они официально описывают как этот косяк устранить  http://support.microsoft.com/kb/3025036

Опишу по своему, на картинках, чтоб понятно было. 
Основная цель, это удалить файлы в папке TEMP с расширением *.exd 

1. Сначала установим все последние обновления для офиса
2. Проверим стоит ли разрешение на запуск макросов и элементов ActiveX. Идем в Параметры Excel/Центр управления безопасностью/Параметры центра управления безопасностью/Параметры ActiveX ставим галочки как на рисунке 
Анализатор опционных позиций. Версия 6. Как запустить его?

( Читать дальше )

Qlua для чайников. Часть 7. Отвечаю на ваши вопросы. Часть 1

    • 25 декабря 2014, 16:09
    • |
    • orekton
  • Еще

Этот урок будет посвящен ответу на некоторые ваши вопросы, которые накопились в ходе публикации данных уроков.

Qlua для чайников. Часть 1

Qlua для чайников. Часть 2

Qlua для чайников. Часть 3. Делаем робота-спредера

Qlua для чайников. Часть 4. Анализ информации из стакана и работа с заявками

Qlua для чайников. Часть 5. Работа с таблица Quik. Поиск заявок. Искусство отладки

Qlua для чайников. Часть 6. Модуль торговли. Остатки по бумагам на фондовом рынке. Удаление заявок


Вопрос: Можно пример, что бы в 23.40 закрывались все открытие позиции по рынку?

Для решения поднятой в данном вопросе задачи необходимо следующее:

  • Знать, как выставлять заявки. Это мы уже умеем. Данную тему мы изучили на уроке 1 (http://robostroy.ru/community/article.aspx?id=773) и уроке 6 (http://robostroy.ru/community/article.aspx?id=790), где мы писали блок совершения сделок биржевого робота.
  • Получить список позиций (частично этот вопрос мы так же изучили на уроке 6).
  • Работать со временем. Этому мы сейчас будем учиться.
  • Выставлять заявку именно по рынку. Этому тоже мы будем сейчас учиться.


( Читать дальше )

QuikSharp - интерфейс Quik Lua полностью в .NET

Представляю вашему вниманию библиотеку для работы с Quik из C#/F#/.NET — QuikSharp.

Последняя неделя показала, что мне нельзя торговать руками на такой волатильности, и заставила задуматься о более серьезном подходе к автоматизации. В итоге — пока нет доступа к Plaza, Fix и другим нормальным API — я набросал эту библиотеку.

Главная идея библиотеки — всё, что написано в руководстве к Луа работает из .NET без изменений интерфейса. Quik и Lua — недружественная территория по сравнению с .NET, хочется свести их использование к абсолютному минимуму.

Реализован и протестирован механизм обмена данными на основе TCP sockets. Ping/Pong roundtrip с Квиком занимает 190 микросекунд на моем компьютере. Также реализованы сервисные функции и несколько функций обратного вызова.

Установить библиотеку в свой .NET проект можно из NuGet. В проекте будет создана папка lua, из которой нужно запускать в Квике скрипт QuikSharp.lua.

( Читать дальше )

Рейтинг ликвидности фьючерсов

    • 06 декабря 2014, 16:31
    • |
    • Growex
  • Еще
Листая прошлые номера Stocks&Commodities в частности октябрьский номер за этот год, наткнулся на довольно интересный рейтинг американских фьючерсов по их ликвидности. Странно что не заметил его раньше когда только получил этот номер… Для тех кто уже работает или только присматривается к этим рынкам, полагаю будет нелишним ознакомиться. Некоторые позиции, честно говоря, удивили.

Рейтинг ликвидности фьючерсов



У какого брокера у меня счет

Меня часто спрашивают, у какого брокера у меня открыт счет. Получив сегодня очередное письмо с этим вопросом, я решила ответить коротким постом. До 2014 года я работала с такими американскими компаниями, как ZeccoTradeking и Firstrade, но после их отказа обслуживать россиян, я перешла в Interactive Brokers (IB). И хотя поначалу я переживала из-за отсутствия альтернатив, вскоре я поняла, что не прогадала, и вот почему.

1. Простота открытия счета

К моему удивлению при регистрации аккаунта у IB открылся русский интерфейс, то есть поля для заполнения (кому актуально) переведены на русский язык.

Порадовало также и то, что для открытия счета достаточно скан-копии документов. Это сэкономило мне пару тыс. руб. на почтовой отправке. Подтверждают аккаунт и переводят активы достаточно быстро: у меня на все ушло 5 рабочих дней.



( Читать дальше )

Macd.lua

                                                       
                                                       Воскресное чтиво.
                                                       В образовательных целях.

------------------------------------------------------------------------
— Macd.lua, © hismatullin.h@gmail.com, 23.11.2014
— Короткий период: period1
— Длинный период: period2
— Количество периодов сигнальной скользящей средней: period3
— метод усреднения линий: Exponential
------------------------------------------------------------------------
Settings =
     {
          Name = «Macd»,
          period1 = 12, period2 = 26, period3 = 9,
          line=
               {
                    {Name = «Macd», Color = 8404992, Type = 1, Width = 2},
                    {Name = «Sign», Color = 32768, Type = 1, Width = 2}
               }
     }
-------------------------------
function Init()
     Macd = cached_Macd()
     return 2
end
-------------------------------
function OnCalculate(index)
     return Macd(index, Settings.period1, Settings.period2, Settings.period3)
end
-------------------------------
function average(_start, _end)
     local sum=0
     for i = _start, _end do
          sum=sum+C(i)
     end
     return sum/(_end-_start+1)
end
-------------------------------
function cached_Macd()
     local cache_EMA_long={}
     local cache_EMA_short={}
     local cache_MACD={}
     local cache_Sign={}
     return function(ind, _p01, _p02, _p03)
          local n_ema_short = 0 --теущий EMA короткий
          local p_ema_short = 0 --предыдущий EMA короткий
          local n_sign = 0 --теущий sign
          local p_sign = 0 --предыдущий sign
          local period_short = _p01
          local period_long = _p02
          local period_sign = _p03
          local index = ind
          local k_short = 2/(period_short+1)
          local k_long = 2/(period_long+1)
          local k_sign = 2/(period_sign+1)
          if index == 1 then
               cache_EMA_long = {}
               cache_EMA_short = {}
               cache_MACD = {}
               cache_Sign={}
          end
          -----------------------------------------------
          if index < period_long then
               cache_EMA_long[index] = average(1,index)
               return nil
          end
          p_ema_long = cache_EMA_long[index-1] or C(index)
          n_ema_long = k_long*C(index)+(1-k_long)*p_ema_long
          cache_EMA_long[index] = n_ema_long
          -----------------------------------------------
          if index < period_short then
               cache_EMA_short[index] = average(1,index)
               return nil
          end
          p_ema_short = cache_EMA_short[index-1] or C(index)
          n_ema_short = k_short*C(index)+(1-k_short)*p_ema_short
          cache_EMA_short[index] = n_ema_short
          -----------------------------------------------
          --считаем сигнальную
          cache_MACD[index] = n_ema_short-n_ema_long
          p_sign = cache_Sign[index-1] or cache_MACD[index]
          n_sign = k_sign*cache_MACD[index]+(1-k_sign)*p_sign
          cache_Sign[index] = n_sign
          -----------------------------------------------
          return n_ema_short-n_ema_long, n_sign
     end
end
------------------------------------------------------------------------ 

Анализатор опционных позиций. Версия 3

Вторая версия лежит тут.
Во второй версии были выявлены серьёзные недоработки с работой инструментов Si и SR (спасибо Ярославу Долгову, за помощь в их обнаружении). В связи с этим необходимо было поскорее выпускать третью версию.
В третью версию программы вошли следующие изменения:
1. Исправил работу с инструментами Si и SR. Теперь все работает корректно.
2. Исправил некорректное отображение на диаграмме греков и PnL, таких инструментов как Si и SR, если включена галочка «Рисовать в руб.».
3. Сделал автоматическую настройку «Шаг рассчета графика» в зависимости от различных инструментов. Убрал эту настройку из вкладки «Настройки».
4. Перенес настройки «Больше текущей цены» и «Менее текущей цены» из вкладки «Настройки» во вкладку «Диаграмма». Теперь они в панельке «Отрисовка графика».
5. На диаграмме подписи оси Х, сделал вертикальными, а то при большой отрисовке они сливались.

( Читать дальше )

Qlua для чайников. Часть 6. Модуль торговли. Остатки по бумагам на фондовом рынке. Удаление заявок

    • 18 ноября 2014, 16:27
    • |
    • orekton
  • Еще
Закончим писать робота, который мы начали на предыдущих уроках. Напомню, что мы пишем робота-спредера. Он будет выставлять заявки на покупку и на продажу, если в стакане достаточно большой спред. На данный момент наша заготовка робота может корректно определять крайние цены в стакане с учетом уже выставленных заявок. Настало время написать модуль, который будет торговать.Qlua для чайников. Часть 1Qlua для чайников. Часть 2. ЦиклыQlua для чайников. Часть 3. Работа со стаканомQlua для чайников. Часть 4. Анализ информации из стакана и работа с заявкамиQlua для чайников. Часть 5. Работа с таблица Quik. Поиск заявок. Искусство отладкиКакие функции должен выполнять этот модуль торговли? Сейчас я перечислю их:
  • Проверять размер спреда, если он больше заданной величины, то это сигнал на совершение сделки.
  • Выставлять заявки, если есть сигнал.
  • Следить затем, чтобы не было выставлено лишних заявок – если заявка выставлена но еще не сработала, то новую заявку не выставляем.
  • Переставлять заявки, если изменились крайние цены в стакане.
  • Следить за количеством инструмента – если, например, мы выставили заявку на покупку и на продажу, одна из них сработала или частично сработала, а потом изменились цены, то при перевыставлении заявок надо учесть этот факт.


( Читать дальше )

....все тэги
UPDONW
Новый дизайн