Избранное трейдера day0markets.ru

по

Получаем данные из 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();
    }
} 

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

3 стратегии на базе Мартингейла и Мартрингала


Введение
 
Мартинге́йл
 (мартингал, от фр. martingale) — система управления ставками в азартных играх.

Суть системы заключается в следующем:

  • Начинается игра с некоторой заранее выбранной минимальной ставки.
  • После каждого проигрыша игрок должен увеличивать ставку так, чтобы в случае выигрыша окупить все прошлые проигрыши в этой серии, с небольшим доходом. (К примеру 1-2-4-8-16-32-64 и т.д). При соблюдении последовательности прибыль игрока при выигрыше будет равна начальной ставке.
  • В случае выигрыша игрок должен вернуться обратно к минимальной ставке.

Используя систему мартингейл, игрок не получает преимущества, он всего лишь перераспределяет свой выигрыш. Игрок проигрывает редко, но помногу, а выигрывает часто, но помалу.


Мартинга́л
 в теории случайных процессов — такой случайный процесс, что наилучшим (в смысле среднеквадратичного) предсказанием поведения процесса в будущем является его

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

Алгоритмы маркетмейкера. Часть 3

    • 02 апреля 2015, 09:46
    • |
    • uralpro
  • Еще

Алгоритмы маркетмейкера. Часть 3

Продолжаем разбирать работу JIANGMIN XU «Optimal Strategies of High Frequency Traders». Чтобы составить уравнение оптимального контроля, сначала сформулируем проблему оптимизации алгоритма при используемых стратегиях θ,  как достижение максимума следующего матожидания:

\max_{\theta^{mk},\theta^{tk}}\mathbb{E}_0[X_T-\gamma\int^T_0 Y^2_{t-}d[P,P]_t],



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

Алгоритмы маркетмейкера. Часть 1

Алгоритмы маркетмейкера. Часть 1
В биржевой торговле существует ряд алгоритмов, которые можно отнести к маркетмейкерским. Как правило, это означает выставление лимитных ордеров по обе стороны стакана, то есть как на покупку, так и на продажу, и целью такого алгоритма является получение прибыли от спреда - разницы между этими лимитными ордерами. Простейшая стратегия подобного рода — постановка ордеров одновременно на лучший бид и лучший аск — будет убыточной из-за действия следующих факторов:

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



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

Как купить валюту на бирже

В ходе почти трёх месяцев поиска и тестирования нашёл для себя самый оптимальный вариант обмена валюта на бирже по соотношению цена/удобство.

А делаю я это через Альфа-Банк!

Объясню почему.

1. Альфа-Банк присутствует в большинстве городов России.
2. Открыть банковский и брокерский счета можно за одно посещение в любом отделении банка.
2. У Альфа-Банка есть валютные банкоматы.
3. Пополнить брокерский счёт в рублях и валюте можно дистанционно через интернет-банк (Альфа-Клик). Не нужно, как в случае с Открытием, идти в офис банка и, теряя кучу времени и нервов, переводить валюту брокеру.
4. Суммарная комиссия 0,151% за обмен и вывод средств на банковский счёт.
Подробно: 0,051 % (максимум) за оборот  + 0,1% за вывод валюты на банковский счёт либо за зачисление валюты на брокерский счёт + 25 руб. за лот меньше 50. Тарифы тут.
5. Не нужна никакая отлёжка денег на банковском счёте (экспресс-счёт, не текущий) для снятия наличными в кассе денежных средств, поступивших с брокерского счёта.

Теперь распишу подробно абсолютно бесплатную процедуру открытия счетов. Она не совсем простая.

1. Перед посещением отделения банка первым делом нужно зарегистрироваться в Альфа-Директе. Делается это

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

Анализ опционной позиции через распределение вероятностей

Возникла тут идея — как можно было бы оценивать позу без греков, модели Блэка-Шоулза (БШ) или более сложных моделей, требующих продвинутых познаний в математике. Все, что потребуется — это рыночное распределение вероятностей цен на экспу и анализ того, как меняются оценки позиции при определенных изменениях этого распределения. Реализовал эту идею, хотел бы поделиться результатами. Буду рад получить порцию критики или новых идей, ну и вообще обсудить.

Для примера решил рассмотреть позицию зигзаг:

Позиция зигзаг 

Пропорции в этой позе подобрал так, чтобы дельта и вега (по БШ) были равны нулю. Т.е. с точки зрения БШ, позиция — нейтральная.

Имея распределение вероятностей, мы можем посчитать различные оценки нашей опционной позиции, такие как:

    • вероятность безубытка на экспу (площадь под зелеными участками распределения)
    • вероятность краха (если задать размер недопустимых потерь для портфеля)
    • матожидание PnL
    • текущий PnL


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

Алготрейдинг: обработка и анализ ленты => система на крупных принтах

Сразу оговорюсь — к сожалению все, что описано в посте проделано на данных с рынка CME, конкретно — для фьючерса пшеницы с декабрьским месяцем поставки. Но в целом ничего не мешает работать и с данными с любой биржи. Инструмент для анализа, обработки данных и построения торговой системы — MatLab. Не сильно распространенный среди русских алготрейдеров, но с огромным количеством функционала и возможностей. Расшифровывется на русский язык MatLab как матричная лаборатория: изначальная цель языка и среды программирования это работа с большими массивами данных разных типов. Касаемо трейдинга — также присутствует много ништяков, писать про все не очень хочется если интересно можно например посмотреть тут (не реклама, сайт не мой)) — нашел в сети). Но хочется отдельно отметить возможность подключаться напрямую из MatLab к примеру к терминалу Reuters, Bloomberg, к известным софтам для трейдинга типа XTrader, CQG, софт от Interactive brokers и др. Подключения можно использовать для различных целей — как для обработки данных, так и непосредственно торговли. Для HFT роботов слышал, что MatLab занимает заслуженное место, правда вся логика написанная в нем нуждается все равно в конвертации кода в Си если периодичность отсыла операций роботом ниже 1 секунды. Почему не писать сразу на Си? — В матлабе с их библиотеками и функциями все исследования и построения роботов разы делается проще и быстрее, да и присутствует авто конвертация кода из матлаб в си.

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

Синтетический инструмент как основа автоматической торговой системы

    • 01 сентября 2014, 20:14
    • |
    • ELab
  • Еще
Продолжаю развивать идею торговли композитом. Все таки рынок огромный у этого рынка (рассматриваю с точки зрения поставшика услуг рынок).
Вообщем, все просто. Беру некоторое кол-во акций (10… 15), формирую синтетический инструмент с наименьшей дисперсией (никаких анализов корреляций и тд — можно даже из разных секторов акций набрать). Затем вхожу по трехкратному среднеквадратичному отклонению. Пересчет делаю каждый день (не бэктест). Для результата использовал 10 акций из DowJones30. Конечно, кол-во таких инструментов зашкаливает — можно расчитывать 100 000 таких синтетиков каждый день и входить в 3-5 лучших синтетиков каждый день, что в теории должно улучшить результат.
В моем случае стрижка только начата и стакан наполовину полон :)
Немного посчитал композит и вот получил что. Для расчета использовал условный капитал в $100000 и проскальзывания в $0,02.

Синтетический инструмент как основа автоматической торговой системы

С
ами понимаете можно использовать любые торг. системы. Так как полученный инструмент близок к стационарному ряду, то можно в каждый момент входить удобный. Скажем если среднеквадратичное отклонение больше 0,33, входим с профит таргетом 0,33 без ограничения по времени нахождения в позии.  Вот что может получиться.

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

И опять система, куда же без нее? Часть 2.

Начало тут http://smart-lab.ru/blog/174155.php

FAQ из первой части

1. Не реальность эквити.

Эквити реальное, подтверждено заверенным отчетом брокера.

2. Чем торгую и на каком рынке?

Это портфельная торговля. Выборка 30-50 инструментов вэйт-лист и 10-15 в открытых позициях.

3. Скачок почти на 70% в самом начале?

Если вы обратили внимание, то снизу на графике указаны не даты, а номера сделок и соответственно эквити построена на закрытых сделках, когда по факту уже либо получена прибыль либо нет. Если кто помнит февраль-март 2009 года и тот бешенный рост, поймет, что первые сделки закрывались с прибылью в среднем в 15%. А если быть точнее то это сделки по CFD: Credicorp Ltd — 10.76%, Apple Computers — 8.98%, Ambev S.A. — 14.77%, Braskem S.A. — 18.76% (MaxWin), AMCOL International Corporation — 10.44%, которые дали в сумме: 63.71% прибыли, все эти сделки были закрыты в апреле-июне 2009.

4. По поводу «опечатки» при написании: «Не понял, как у вас коррелирует «Красная линия ..., который на порядок ниже. Зеленая линия (Губы Аллигатора) — это Линия Баланса для значимого временного периода, который еще на один порядок ниже» и ряд чисел 5-8-13. «на порядок» — это в 10 раз.

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

И опять система, куда же без нее?

Доходность на реальном счете в период с 2009 по 2013 г.
 И опять система, куда же без нее? 


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

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