Избранное трейдера Stoic
Мне, и думаю многим другим, нужны качественные исторические данные за максимальный промежуток времени — для изучения рынка, построения и тестирование торговых систем. Такие данные по фьючерсам, торгуемым на западе, в частности на CME, в свободном доступе (кроме дневок) практически не найти. Несколько месяцев назад я купил исторические данные по следующим фьючерсам CME: ES (фьючерс на индекс S&P), CL (фьючерс на нефть WTI), GC (фьючерс на золото), NQ (фьючерс на индекс NASDQ). Спецификацию по ним вы можете посмотреть тут: http://smart-lab.ru/blog/320021.php
Но осталась потребность в данных по многим другим интересным инструментам. И пару недель назад у меня появилась идея – т.к. исторические данные нужные не только мне, то вполне возможно приобретать их совместно (в складчину) (http://smart-lab.ru/blog/317451.php)
# Created by SciFi, 2016 runUnluck <- function(n) { runArray <- numeric(10000) for(i in 1:10000) { runArray[i] <- sum(rle(sample(c(-1, 1), 1000, TRUE))$lengths == n) } hist(runArray, main="Гистограмма") mean(runArray) }
> source("D:\\Dropbox\\R\\RunUnluck.r") > runUnluck(6) [1] 7.8161 > runUnluck(2) [1] 125.2208 > runUnluck(3) [1] 62.4047 > runUnluck(4) [1] 31.179 > runUnluck(5) [1] 15.6559 > runUnluck(6) [1] 7.7635 > runUnluck(7) [1] 3.8831 > runUnluck(8) [1] 1.9382 > runUnluck(9) [1] 0.9738 > runUnluck(10) [1] 0.4922
Подумал, что многие не знают, как подступиться к языку Qlua и запустить робота в квике. А между тем, это настолько просто, что даже не требует ничего кроме квика, виндусовского блокнота и знаний самого Qlua.
Qlua – это скриптовый язык поддерживаемый квиком, в основе язык lua 5.1 (в моем квике версия такая).
Скрипты, написанные на Qlua – это обычные текстовые файлы, которые имеют расширение «.lua». То есть можно сделать файл в обычном блокноте и после сохранения поменять в нем расширение с «.txt» на «.lua». Если внутрь этого файла записать инструкции кода на языке Qlua, то квик будет выполнять их.
Для удобства написания инструкций кода лучше пользоваться не виндусовым стандартным блокнотом, а например Notepad++, который можно скачать официально и бесплатно здесь https://notepad-plus-plus.org/download/v6.9.1.html. Он позволяет включить подсветку синтаксиса различных языков программирования, в том числе и lua, что очень помогает при написании кода.
В Notepad++ в «Опции -> Настройки» можно выбрать русский язык, а в «Опции -> Определение стиля» установить для lua понравившийся стиль отображения. Я для «Язык -> lua» ставлю стиль «Выбрать стиль -> Bespin» и еще в окошке «Стиль» для последних трех «FUNC» переопределяю цвет, иначе они с фоном сливаются.
Всех приветствую.
Представляю вашему вниманию робота для торговли перекупленность/перепроданность с помощью индикатора Williams’% Range. Данный робот позволит вам торговать различные состояния рынка анализируя положения индикатора и автоматизировать свою торговлю. Этот робот является контртрендовым и ведет себя лучше в волатильные дни без тренда. В этой статье расскажу как запустить робота и начать автоматическую торговлю.Settings={ Name = "Fractal_Chennal", period=5, line={ { Name = "Level_High", Type =TYPE_LINE,-- = LINE --линии = DASH -- тире = POINT -- точки Width = 1, Color = RGB(0,255, 0)--green }, { Name = "Level_Low", Type =TYPE_LINE, Width = 1, Color = RGB(255,0,0)--root }}} idx_prosl=0 function Init() return 2 end function OnCalculate(idx) if idx==1 then P = math.floor(Settings.period/2)*2+1 message("Код бумаги: "..getDataSourceInfo().sec_code.." ; период индикатора: "..P,1) t_H,t_L={},{} end if idx~=nil and idx>P then if idx_prosl~=idx then local l=idx-P for l=l,idx-1 do t_H[l]=H(l) t_L[l]=L(l) end if t_H[#t_H-(P-1)/2]==math.max(unpack(t_H,#t_H-P+1,#t_H)) then H_ind_value=t_H[#t_H-(P-1)/2] end if t_L[#t_L-(P-1)/2]==math.min(unpack(t_L,#t_L-P+1,#t_L)) then L_ind_value=t_L[#t_L-(P-1)/2] end end else H_ind_value=nil L_ind_value=nil end idx_prosl=idx return H_ind_value, L_ind_value endКак пользоваться:
Общеизвестно, что классическим называют арбитраж, который реализуется между поставочным фьючерсом и его базовым активом. Он относится к рыночно – нейтральным стратегиям и является одним из самых низко рисковых стратегий работы на рынке ценных бумаг. Естественно платой за низкие риски является сопоставимая с ключевой ставкой ЦБ доходность.
Повысить доходность классической арбитражной позиции, без существенного увеличения рисков можно добавляя к двумерным арбитражным позициям (фьючерсы против базовых активов) дополнительное измерение (координату) в виде статистического арбитража фьючерсов или акций входящих в эти пары. Такой вид арбитража мы назвали 3D арбитраж.
Теоретически возможность для такого арбитража создана нашим рынком, где подавляющее число высоколиквидных ценных бумаг в среднесрочном, а тем более долгосрочном плане, высоко коррелированы. Это позволяет позицию по одной акции хеджировать двумя разными фьючерсами без существенного увеличения рисков (один фьючерс на эту же акцию, а другой — на другую акцию, но которая высоко коррелирована с первой). Или наоборот, хеджировать позицию по одному фьючерсу двумя акциями (одна акция — базовый актив, другая высоко коррелированна с базовым активом).