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

по

Dear Brokers… (часть 2)

Продолжение статьи-перевода в которой программист пишет брокерам про их «не очень удобные» API...

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

Начало здесь: http://smart-lab.ru/blog/330769.php

Dear Brokers… (часть 2)

 

Получение истории цены



Хотя любой алгоритм торгует в режиме реального времени, на запуске ему все еще нужна история цены для вычисления начальных значений её индикаторов и функций анализа цены. Без доступа к ценовой истории вам бы пришлось ждать пару дней до размещения первой сделки. Так как это не слишком практично, ценовая история является существенной функцией API.

 

Брокер А предоставляет историю цены без особых проблем. Я могу не верить ему. Поэтому нам снова нужно запустить “фабрику запросов”, сгенерировать запросы и ответы, и приблизительно 50 строк текста программы позволят загрузить историю цены. Брокер не взимает сборы за эти цены (вы даже можете загрузить их с демо-счетом) и, по крайней мере недавние данные, с 2010 и выше, находятся в приемлемом качестве. Восемь из десяти очков для истории цены брокера А.



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

Трендовый/Контртрендовый робот на индикаторе CCI под Quik.

Трендовый/Контртрендовый робот на индикаторе CCI под Quik.
Всех приветствую.

Представляю вашему вниманию робота на основе индикатора Индекс Товарного Канала (Commodity Channel Index, сокращенно CCI). Данный робот позволит вам торговать трендовую или контртрендовую стратегию на рынке ММВБ акциями или фьючерсами. Робот анализирует индикатор и принимает на основе этого торговые решения, позволяя тем самым автоматизировать торговлю. В этой статье расскажу, как запустить робота и опишу торговый алгоритм, реализованный в механической торговой системе (МТС).

Трендовый/Контртрендовый робот на индикаторе CCI под Quik.

 

План:

1) Как установить робота на основе CCI под Quik;

2) Как использовать;

3) Заключение

 

1) Как установить робота

 

Разархивируйте и сохраните в удобном месте. Для запуска нескольких копий сделайте доп. копии папок робота и установите соответствующие настройки.

Запускаем CCI.



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

Анализ коинтеграции пар активов на R и можно ли торговать RTS только по Brent

    • 02 июня 2016, 06:47
    • |
    • SciFi
  • Еще
Продолжаю изучать R и делиться кодом. На этот раз проанализируем коинтегрированность. Вообще, торговать корреляции опасно, так как они могут оказаться случайными. Гораздо безопаснее коинтеграцию. Хотя и она может ломаться.

Далее используется тест Энгла-Грэнджера. Тест основан на коинтеграционном уравнении, оценённом с помощью обычного МНК. Идея теста заключается в том, что если остатки этой модели нестационарны (имеют единичный корень), то коинтеграция временных рядов отсутствует. Нулевая гипотеза — отсутствие коинтеграции, то есть наличие единичного корня в ошибках модели (коинтеграционного уравнения). Для проверки гипотезы единичного корня применяется статистика расширенного теста Дики-Фулера, однако в отличие от классического случая этого теста в данном случае критические значения статистики иные, они больше по абсолютной величине.


Коинтеграция Si со спотом
 

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

Тренд - друг или враг-2 : Систематическая ошибка исследования.

В предыдущем посте smart-lab.ru/blog/328182.php я пытался применять метод автокорреляции т.е. анализа смещенного временного ряда, пытаясь использовать его для вычисления смещения вероятности продолжения тренда от среднего значения. Наиболее продвинутые могли заметить, что выборка, которую мы там анализировали, содержала все формально соответствующие условию отрезки, что скорее всего, далеко от того, что себе представляло большинство читателей. Дело в том, что по критерию «изменения за период» программа отбирала примерно следующее:
Тренд - друг или враг-2 : Систематическая ошибка исследования.

т.е. результаты коротких периодов были многократно усилены за счет длинных, в которые они входили. Иными словами, была допущена систематическая ошибка исследования. Попробуем исправить её, добавив дополнительную «ногу» в паттерн, перейдя от \/ к /\/ паттерну. Два периода будут описывать условия вхождения(разворот тренда), один — результирующий. Порог прежний — минимальное изменение 2% в каждом из предыдущих периодов, 0.1% в результирующем. Результат для SPY:
Тренд - друг или враг-2 : Систематическая ошибка исследования.

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

Код для формирования минуток из таблицы всех сделок квика для спота

Порядок действий

1. Формируем в квике таблицу всех сделок со следующими параметрами

Код для формирования минуток из таблицы всех сделок квика для спота

Фильтром отбираем нужные инструменты.

2. Скачиваем из Интернета свободно распространяемый DDE сервер от Морошкина с прилагаемыми dll.
3. В соответствующих местах кода заменяем код на вот этот

using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using System.Text;
using System.Timers;
using System.Threading;
using XlDde;

namespace ConsoleApplication2
{
class Program
{
const string service = «myDDE»;
const string candleSPOT = «SPOT»;


static void Main(string[] args)
{

using (XlDdeServer server = new XlDdeServer(service))
{

server.AddChannel(candleSPOT, new SPOTChannel());
server.Register();

Console.WriteLine(«DDE server ready. Press Enter to exit.\n\n»);
Console.ReadLine();
}



}
}


// **********************************************************************
// * Классы DDE каналов с обработчиками данных *
// **********************************************************************


class SPOTChannel: XlDdeChannel
{
//static int time2 = 1000;
static int em = 7;
static int m = 1200;
static int[] NM = new int[em];
static int NMM = 0;
static int LastMinute = 0;
static int mm = 1638400;
static double[] Price_trade = new double[mm];
string[] EM_trade = new string[mm];
static int[] Time_trade_I = new int[mm];
static int[] Volume_trade = new int[mm];
static int[,] Time = new int[em,m];
static double[,] O = new double[em,m];
static double[,] H = new double[em,m];
static double[,] L = new double[em,m];
static double[,] C = new double[em,m];
static double[,] V = new double[em,m];

protected override void ProcessTable(XlTable xt)
{

//int time3 = 1000;
int[] nach = new int[em];
int nach1 = 0;
int i = 0;
int j = 0;
int s = 0;
int curHour = 0;
int curMin = 0;
int curDay = 0;
int curSec = 0;
int curDay_1 = 0;
string name;
string[] bf;
string[] EM = new string[em];
DateTime moment;
string[] Time_trade = new string[mm];



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

О майнинговом подходе и вычленении эджа при построении торговых систем

Эта обучающая заметка призвана раскрыть некоторые элементы технологии производства торговых систем. Существует два основных подхода к созданию биржевых алгоритмов. Первый стартует с некой идеи, например--25-го числа уплачивается НДПИ, что может влиять на курс рубля. Далее эта идея проверяется и находит/не находит подтверждения. Это неплохой подход, но у него есть недостаток--число идей, приходящих в голову, ограничено. Кроме того, опыт построения систем показывает, что зачастую логика происходящего такова, что чистой силой ума допереть до нее тяжело. Поэтому более плодотворным (хотя и не приносящим такого удовольствия, как сила ума) является второй подход, связанный на начальном этапе с чистым майнингом. То есть никаких особых идей вначале нет--просто берется некий алгоритм, в принципе, почти любой. Но надо, чтоб он не был перегружен правилами--иначе на следующих этапах будет сложно. И смотрится, что получается. В результате таких действий рано или поздно получится хорошая кривулька эквити (эта стадия может занимать значительное время). И тут вопрос--это просто такая реализация броуновского движения, или там что-то есть? И вот здесь надо хорошенько поработать. Изучать сделки, менять параметры, менять правила--и смотреть, что получается, анализировать. Этот процесс во многом напоминает эволюцию в живой природе, фактически это генетическая оптимизация, понимаемая в широком смысле. И иногда оказывается, что в рынке действительно есть отклонения от СБ, а что еще нужно для счастья? :)

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

Обещанный способ угадывания гэпа вверх в Си

Окей, 100 плюсов есть. Обещанный способ угадывания гэпа.

Идем к сайлентбобу: smart-lab.ru/blog/206454.php
Что видим:
1) только лонг
2) работает с 2011 года, до этого времени нет
3) сделок с весны 2011 до сентября 2014 мало — 123 штуки — событие с одной стороны редкое, а с другой вполне себе равномерно распределено по году (смотрим эквити). Процент выигрыша 65, профит фактор 2,77.
4) паттерн достаточно очевидный чтобы его было не жалко отдать сматрлабовцам.


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

Обещанный способ угадывания гэпа вверх в Си

Чего видим? в пятницу у нас гэп скорее вверх, причем профит фактор сразу 2,56. Смотрим на эквити:
Обещанный способ угадывания гэпа вверх в Си

 

Все красиво, похоже предположение верное. На следующем шаге добавляем фильтр в стиле «на момент входа снизились не более чем на определенную величину от закрытия предыдущего дня». Часть сделок отсеиваем, улучшаем ПФ на 0,39. Радуемся, исследуем дальше, встраиваем в свои системы.


А заодно начинаем думать почему так может происходить, и почему до 2011 было по-другому. До мая 2010 пятничный гэп в целом повторял движение самого Си, а с мая 2010 до начала 2011



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

Реверс инжиниринг способа угадывания гэпа вверх в Си

На смартлабе очень мало чего можно почитать начинающему алготрейдеру. Если кто и пишет — все больше эквити выкладывают, а на идеи стратегий даже не намекают. Один из товарищей которых я читаю — silentbob  ( http://smart-lab.ru/profile/silentbob/ ). Он периодически выкладывает что-то из своих наблюдений, на основе которых вполне пишутся рабочие стратегии.

В своё время он предлагал выложить выложить устойчивый метод угадывания гэпа вверх в Си за 350 плюсиков
smart-lab.ru/blog/206454.php
За плюсики смартлабовцы метод не выкупили и для многих он остался загадкой)) Эквити у метода была вот такая:
Реверс инжиниринг способа угадывания гэпа вверх в Си

Идея простая: покупаем в 23-45 при выполнении определенных условий и продаем в 10-15. Я потратил какое-то время и постарался найти стратегию с похожими параметрами. Совсем такой же у меня не получилось, но что то все таки нашел:

Реверс инжиниринг способа угадывания гэпа вверх в Си



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

Dear Brokers…

Нашли интереснейший пост в западных интернетах. В нём говориться про проблемы API и не очень хорошее отношение брокеров к алгоритмическим трейдерам.
Т.ч. проблемы АПИ актуальны не только в России. Это повсеместно...

Dear Brokers…


Введение



Какое бы программное обеспечение мы не использовали для автоматизации торговли, всем нам нужна связь брокера с алгоритмом, чтобы получить ценовые предложения и места для торговли. Очевидно, простая задача. И почти любой брокер поддерживает её через такие протоколы, как FIX, на автоматизированной платформе типа MT4™, или через специальный API. Но если Вы уверены, что сможете быстро соединить торговое ПО с API брокера, то будете неприятно удивлены. Уважаемые брокеры – пожалуйста, прочтите этот пост и попытайтесь сделать жизнь программистов немного проще!


API брокера позволяет программному обеспечению торговать, получать ценовые предложения и загружать историю цены. Эти три функции являются неотъемлемой частью автоматизированной системы. Хорошо, когда имеются дополнительные функции, которые восстанавливают торговый статус, статус счета и параметры актива. Это шесть-семь функций, нужных, когда вы считаете вход/выход из системы. У API брокера зачастую же более 100 функций. Таким образом, следует предположить, что, по крайней мере, 6 из них должны быть охвачены. Но, к сожалению, это не так и неудачи начинаются уже с установки и запуска API.



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

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

Здравствуйте дорогие друзья!

Хочу проверить влияние спреда IV-HV на результат торговли, если куплен стредл на центральном страйке и выравнивать дельту фьючем каждый день.
Сдесь и далее в следующих статьях:
IV — подразумеваемая волатильность центрального страйка
HV — историческая волатильность приведенная к годовой
Спред — разница между IV и HV
Все дальнейшие расчеты и скриншёты приведены для инструмента RI.

Формула по рассчету HV:
Сначала рассчитывается средний дневной ход цены (HV_EMA) в процентах
HV_EMA=HV_EMA(t-1) + Alfa * (100 * (Abs(PRICE_F — Prev_PRICE_F) / Prev_PRICE_F) — HV_EMA(t-1))
где:
HV_EMA(t-1) — средний дневной ход цены на предыдущем шаге (дне)
Alfa — коэффициент сглаживания (0...1)
PRICE_F — цена фьючерса на текущем шаге (дне)
Prev_PRICE_F — цена фьючерса на предыдущем шаге (дне)
Если проще сказать то HV_EMA это экспоненциальная средняя дневных изменений цены фьючерса взятых по модулю.
У нас получается дневная волатильность. Далее приводим дневную волатильность к годовой:
HV=HV_EMA * КОРЕНЬ(252)
Почему я взял 252? Потому что в году примерно 252 рабочих дня, хотя этот вопрос спорный какой коэффициент брать 252 или 365.
Все, теперь у нас есть историческая волатильность приведенная к годовой и её можно теперь сравнивать с подразумеваемой.
Методом тупого перебора я перебрал все коэффициенты Alfa и определил, что у коэффициента Alfa=0,06 наименьшее среднеквадратичное отклонение между IV и HV, его то и возьмем для дальнейших исследований.
Посчитаем разность между IV и HV и построим график этого спреда

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



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

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