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

по

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

Silentium est aurum.

Молчи, пока ты не в состоянии сказать нечто такое, что полезнее твоего молчания. 

                                                                                      (кто-то умный и известный сказал)

 

 

     В продолжение  «Не нравятся нейронные сети? Вы просто не умеете их готовить. Рецепт. Ингредиенты, специи и прочее» http://smart-lab.ru/blog/327789.php и «Нейронные сети. Послевкусие. Заблуждения, ошибки, косяки. Первые 15 месяцев эксплуатации бота на нейронных сетях»  http://smart-lab.ru/blog/329272.php

 

     Я почему-то решила, что мои слова будут полезнее моего молчания на Смарт-Лабе. Только, когда я представляла эту пользу для себя, я имела в виду возникновение каких-то полезных связей и взаимовыгодного сотрудничества с другими трейдерами, работающими над созданием торговых алгоритмов на основе нейронных сетей. Этого пока по разным причинам не получилось. В качестве «побочного», но весьма приятного эффекта, получилось добавить заинтересованную аудиторию нашему «продажному» проекту – на сайте появилось … новых подписчиков. Хотя может так совпало – невозможно идентифицировать со СЛ эти люди или нет. Во всяком случае, это те, кто имеет желание зарабатывать на бирже, и имеет понимание, что в такой конкурентной среде идет борьба технологий.



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

Ревизия торговых систем

    • 06 июня 2016, 12:29
    • |
    • SenSoR
  • Еще
Решил сделать, т.к. давно не делал.
Все системы торгуют в режиме он-лайн, только риски там поменьше будут. А на другом счете я допускаю макс просадку в ~50 тыр на каждую ТС.

Итак, большинство систем обновили свой хай по эквити, что очень радует в такое непростое время!

Условные обозначения: Т — трендовая тс, Р — реверсная тс.
Ревизия торговых систем
Ревизия торговых систем



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

Анализ торгового журнала и стратегий с помощью R

    • 05 июня 2016, 17:34
    • |
    • SciFi
  • Еще
Сегодня я решил провести анализ своего торгового журнала средствами и возможностями языка R.

Я понимаю, что есть специальные сервисы, которые позволяют анализировать торговый журнал. Но во-первых, они платные. Во-вторых, я веду свой журнал сам в Excel и мне удобнее было написать собственную программу. Тем более, что средствами R можно делать то, чего не будет в этих платных сервисах.

Взял все сделки на ФОРТС с 1 января по 1 июня 2016 года (за полгода). Их у меня было 565 штук. Торгую я роботом и руками по разным стратегиям, но записываю в журнал, почему открыл и закрыл каждую сделку. Стратегий было много разных, но я решил выделить все сделки в две группы — где я торговал роботом и где руками. 

Предварительно подготовил данные в Excel — выбрал только те столбцы, которые я планировал анализировать: дата сделки, маржа, номер стратегии (0 и 1 для ручной и робот. торговли). Создал файл CSV. И приступил к анализу в среде R. 

Далее я построил гистограммы маржи за каждую сделку для трех случаев — для всех сделок, для сделок роботом и сделок руками. Наложил синие линии — аппроксимацию. А также вывел описательную статистику для этих трех случаев. 

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

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



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

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