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

по

АЛГО Как я это вижу: I “Исходные данные”

    • 15 февраля 2016, 18:31
    • |
    • Ага
  • Еще

Решил написать цикл статей про алгоритмическую торговлю с моего взгляда и опыта,  как я это вижу и применяю, т.е. буду описывать мой субъективный взгляд ;) Начну с самых простых вещей и буду двигаться к более сложным…

P.S. Описание содержит (или отталкивается от) практику торговли фьючерсами на CME

Исходные данные:

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

Наша задача – найти закономерности на имеющейся истории, дающие статистическое преимущество и эксплуатируя их получать профит. Но сами «закономерности» должны обладать определенными свойствами. Например, любая закономерность должна область определенной степенью «стационарности» (стабильности), что бы она могла дать нам себя поэксплуатировать, (об этом я расскажу в будущих статьях). Еще одно из таких свойств – техническая возможность ее эксплуатировать, но это больше касается HFT, а этот цикл не о высокочастотной торговле.



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

Получение значения свечей и индикаторов из Quik в Excel.

Получение значения свечей и индикаторов из Quik в Excel.
Получение значения свечей и индикаторов из Quik в Excel.


Представляю вашему вниманию программу для вывода значения свечей и индикаторов из Квик в Эксель. Она позволит за несколько минут настроить экспорт, БЕЗ НАПИСАНИЯ КОДА И РЕДАКТИРОВАНИЯ СКРИПТОВ.

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

И это статья/инструкция о том, как ей пользоваться.

План:

1) Как создать скрипт для Quik при помощи TableFromQuikToExcel;

2) Как запустить скрипт и вывести таблицу Quik;

3) Как импортировать данные свечей и индикаторов в Excel;

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

 

1 Как создать скрипт для Quik при помощи TableFromQuikToExcel



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

Еще одно тестирование алгоритма Маркет Мэйкера

    • 10 июля 2015, 09:42
    • |
    • r0man
  • Еще

Продолжая  тему тестирования алгоритма Маркет Мэйкера, поделюсь своими результатами и мыслями по его работе:
1. Основной режим работы алгоритма — это маркетмэйкинг (он же арбитраж ликвидности, он же торговля спредом). И конечно же, прибыльность этой стратегии сильно зависит от рыночных условий, скорости получения данных и работы системы исполнения. Средняя прибыль на сделку даже и при идеальном исполнении не будет превышать значение спреда (2-5 пунктов по Si в среднем). А в период сильной волатильности, когда стакан бросает из стороны в сторону на 10-30 пунктов, несмотря на большое количество положительных сделок ( около 70%), алгоритм становится убыточным. В основном из-за комиссий, конечно.

2. Да, математические формулы сильно ограничили многих желание понять, как устроен алгоритм. Но на самом деле, если вдумчиво посмотреть картинки (карты политик), получается все ясно и просто. А будет еще проще, если посмотреть картинки графиков из других статей, лежащих в основе алгоритма (например Guilbaud, Fabien, and Huyen Pham, 2013, Optimal high-frequency trading with limit and market orders). Забудем на минутку про дисбаланс бид/акс объемов и построим карту политик для открытой позиции при разных значениях спреда:

Еще одно тестирование алгоритма Маркет Мэйкера



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

Получаем данные из Excell для использования в Wealth-lab, Ninjatrader и так далее.

    • 27 июня 2015, 14:43
    • |
    • Dzam
  • Еще
Получаем данные из Excell для использования в Wealth-lab, Ninjatrader и так далее.
Есть задачи, когда необходимо читать внешние данные для работы роботов или индикаторов. Например, можно в Excel лист занести уровни, от которых будет торговать робот. Либо список тикеров, по которым необходимо собирать информацию.



Для чтения данных из Excel нам потребуется библиотека Microsoft.Office.Interop.Excel.dll. В моей Windows7 она расположилась в папке:

C:\Program Files (x86)\Microsoft Office\Office15\DCF

В проект необходимо добавить ссылку на эту библиотеку. Код чтения данных простой:


//Читаем их Excel данные в массив
List getParamsFromExcel(string filePath)
{
    //С какой строки начинаем читать данные
    int start_from_row = 2;
    //Индекс колонки с Тикером
    int symbol_index = 1;
    //Индекс колонки с типом ордера
    int order_type_index = 2;
    //Индекс колонки с ценой входа
    int entry_price_index = 4;
    //Индекс колонки с ценой стопа
    int stop_price_index = 5;
    //Индекс колонки с временем входа
    int entry_time_index = 7;
    int current_index = start_from_row;

    //Текущий символ графика
    string read_symbol = Bars.Symbol;
    //Текущий считанный из Excel символ
    string current_symbol;

    //Список параметров считанный из Excell
    List result;
    result = new List();

    //Переменная Excel приложение
    Excel.Application xlApp;
    //Переменная рабочая книга
    Excel.Workbook xlWorkBook;
    //Переменная рабочий лист
    Excel.Worksheet xlWorkSheet;
    //Переменная диапазон
    Excel.Range range;

    //Инициализируем переменные
    xlApp = new Excel.Application();
    xlWorkBook = xlApp.Workbooks.Open(filePath);
    xlWorkSheet = xlWorkBook.Worksheets.get_Item(1);

    range = xlWorkSheet.UsedRange;

    //Считываем тикер из Excel
    current_symbol = (string)(range.Cells[current_index, symbol_index] as Excel.Range).Value2;
    //Читаем тикеры, пока не наткнемся на пустую строку
    while(current_symbol != null)
    {
        //Если считанный тикер совпадает с тикером графика, на котором запустили робота
        if(read_symbol == current_symbol)
        {
            //Читаем и добавляем параметры ордера
            result.Add(new OrderParams
            {
                ePrice = Convert.ToDouble((range.Cells[current_index, entry_price_index] as Excel.Range).Value2),
                sPrice = Convert.ToDouble((range.Cells[current_index, stop_price_index] as Excel.Range).Value2),
                eTime = DateTime.FromOADate((range.Cells[current_index, entry_time_index] as Excel.Range).Value2),
                pType = ((string)(range.Cells[current_index, order_type_index] as Excel.Range).Value2 == "Short" ? PositionType.Short : PositionType.Long)
            });
        }

        current_index++;
        //Считываем очередной тикер
        current_symbol = (string)(range.Cells[current_index, symbol_index] as Excel.Range).Value2;                
    }

    //Закрываем рабочую книгу
    xlWorkBook.Close(true, null, null);
    //Выходим из приложения
    xlApp.Quit();

    //Уничтожаем созданные объекты
    releaseObject(xlWorkSheet);
    releaseObject(xlWorkBook);
    releaseObject(xlApp);

    return result;
}

//Уничтожаем переданный объект
private void releaseObject(object obj)
{
    try
    {
        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
        obj = null;
    }
    catch (Exception ex)
    {
        obj = null;                
    }
    finally
    {
        GC.Collect();
    }
} 

Все банально и просто. И можно использовать для различных целей
Оригинал статьи. 

О том, как правильно зашортить бычий рынок.

Набор инструкций, как правильно вставать в шорт на бычьем рынке, которая, я надеюсь, сбережет вам нервные клетки (точно) и, деньги (скорее всего):

1. Если хочешь продать акции — сначала захеджируй их путами и жди.
2. Если всё еще хочешь продать акции — сначала продай коллы на соответствующий объем и жди экспирации с поставкой.
3. Если всё еще хочешь перевернуться из лонга в шорт и продать чужие акции, сначала вместо этого продай свои и купи казначейские облигации в локальной валюте и подожди.
4. Если всё еще хочешь встать в шорт, сначала купи облигаций в резервной валюте и жди.
5. Если всё еще хочешь зашортить, продай непокрытых коллов около денег на сумму, на которую планировал зайти в шорт.
6. Никогда, никогда, никогда не шорти на бычьем рынке.

Спасибо за внимание.

Как физики вертанули в Сбере юриков-:))

Очень часто на Смартлабе обращаются за данными  к нашему аналогу «COT» в поисках грааля. Я и сам периодически его поглядывал, мало ли какой граальчик выплывет, но старался обращать внимание только на аномальные изменения. Вчера такой день настал в Сбербанке. Физики вшортили вчера Сбер на всю котлету (шорты увеличились на 44%, а чистая позиция и вовсе изменилась радикально с +34 тыс. на -32. тыс.  благодаря тому, что 20% лонгов они скинули на локальных максимумах-:), а юрики залонжили что есть мочи-:)) Ну казалось бы, сегодня должно было быть 85 рублей за Сбер. Ан нет, сегодня мы увидели УД вниз на нашем рынке-:)


На конец вчерашнего дня
Как физики вертанули в Сбере юриков-:))


Сегодня  физики благополучно пофиксили свою котлету об «умные деньги» -:))))

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

Равновесная линия для инструмента!

Приветствую всех!

 

      Давно не писал каких либо статей на смартлабе, в основном нет времени, но чаще лень сильнее меня! 

Так вот, пока что небольшая статейка, более подробнее в другой раз возможно распишу если будет интерес.
В виду сильных полетов рынка, не секрет для тех кто следит за трансляцией моей, древненькие алгоритмы ничего не заработали а в основном посливали на фртс. весьма потрепанные но не побежденные, скажем так! Понимаю лошара, но так и есть! СИ не мой интсрумент а фртс весьма и жутко растерзанный, но как и предполагалось с середины января более менее обьем вернулся в рынок и стало чуток проще! 
      К чему я это… Все время для бумаги привык искать равновесный уровень, близ которого цена бьется, и соответственно ссылаться на нее, определяя движения и тенденции. Поскреб по сусекам накопленных знаний, и вывел некую линию, которая так или иначе находит равновесную (равноудаленную от цен инструмента линию) Получилась слегка «шумная» линия, которую в принципе можно полностью выровнять без вредя и чертить в виде прямой, но не суть (рисовал ее на TSLab 1.1 по личным причинам потому особыми примочками не владел, для ее выравнивания) 



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

Расчёт теор.цены опциона.

Есть доска опционов. Цена ФРТС равна 76220 (видно на картинке). Теор. цена Пута_70 равна 2510. Вопрос: Как посчитать сколько будет стоить ПУТ_70 если цена ФРТС станет равна, например, 80000? Хватит ли данных из доски? Что к чему прибавить и на что разделить ))? Прошу прощение за бестолковость )) Подскажите методику расчёта, пожалуйста.

Расчёт теор.цены опциона.

P/S Сам конечно могу вникнуть, но жалко время тратить. Уверен, что быстрее получу ответ здесь на форуме, поэтому это не лень, а рациональный подход )) Мне честно стыдно.

Немного о торговых роботах

Приветствую!
 
        Немного расскажу про адаптацию роботов к рынку. 
Часть роботов (по крайней мере моих) сильно зависят от рынка, от текущей волатильности и направленности рынка (боковик/тренд). 
99% роботов имеют свои настройки/параметры, меняя которые можно улучшать доходность. Единственная загвостка заключается в сложности выбора момента, при котором стоит изменить параметры. 

Ниже будет описанно несколько шагов оптимизации:


1 Мы используем Н-количество роботов с различными параметрами (их можно отладить на истории, но все же лучше смотреть на рынок не так глубоко, достаточно последний квартал проанализировать)
2 Все эти роботы запускаются с разным количеством денег (наименее рискованный робот получает большее количество денег и далее по мене повышения риска снижаем количество доверяемых денег)
3 Каждый робот ограничивается своим уровнем deadline убытка, после которого его торговля ограничивается меньшим количеством денег или окончательной остановкой. 


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

Моя торговая стратегия на облигациях

Давно меня спрашивают, как я торгую облигациями. Коротко опишу свои основные принципы торговли. Разумеется, считать «руками» это проблематично, поэтому в этом помогают написанные мною приложения.
 
  1. Контроль риска
Каким бы не был надежным эмитент, риск его дефолта всегда присутствует. При группировке бондов по рискам я выделил три основные группы: риск отрасли, рейтинговый риск и риск самого эмитента.
 
По российскому рынку я выделил 20 видов отраслей. В зависимости от моей субъективной оценки, даю лимит от 5 до 50% каждой отрасли в своем портфеле. Например, связи с парадом дефолтов в банковской сфере разрешил лимит банковских бондов не более 5%.
 
При группировке по рейтингам решил привести к общему знаменателю. Например, международный рейтинг Fitch BBB+ и международный рейтинг Moodi,s Baa1 соответствует моему уровню, которому я присвоил знаменатель 9. Если появляется бумага с рейтингом Fitch BBB+ (мой рейтинг 9) и более низким рейтингом по Moodi,s Baa2 (соответствует моему знаменателю 10), получаем среднее значение 9.5 (при условии, что только 2 рейтинговых агентства оценили ее), округлив который до целых мы получим рейтинг 10.


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

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