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

по

Открыл библиотеку для бектестинга

По мотивам: smart-lab.ru/blog/300948.php

Ссылка:
github.com/bytefury/trading_robot_2

Выкладываю скорее для себя. Вряд ли кто-то будет разбираться в ней и тем более пользоваться.

Пример стратегии: github.com/bytefury/trading_robot_2/blob/master/strategies/common/mo_watcher_strategy.hpp

Что она делает: отправляет заявку, если было три серии совершения сделок на 200 и более контрактов. Серия сделок должна произойти не более, чем за 5 секунд. И промежуток между сериями должен быть не более, чем 5 секунд. Инчае стратегия прерывается и всё начинается заново.

И никаких вам 200 перменных и 3000 кубов на tslab'е! :)

Это если в кратце. Там ещё много чего есть. Например, автоматическое перемещение заявки, если между ней и лучше сделкой того же направления накопилось больше 50 заявок. Есть и другое.

Возможно кому-то пригодятся классы на С++ для работы с файлами qsh-формата. Это портирования с C# версия классов Морошкина.

ЗЫ: ищу работу по разработке на С++. Если есть интересные предложения, то в профиле на гитхабе есть email.

Оценка эффективности торговых систем при помощи Excel

Практически все программы для разработки и тестирования механических торговых систем автоматически предоставляют отчет о показателях созданной вами стратегии, позволяющий оценить ее предполагаемую рентабельность. Однако иногда возникает потребность рассчитать параметры доходности самостоятельно. Например, когда торговля ведется вручную, либо стоит задача рассчитать совокупную эффективность по портфелю систем – обращение к таким программам, как Tradestation, Wealth-lab и подобным в данном случае является не самым оптимальным решением. С другой стороны, считать параметры на калькуляторе также не видится рациональным способом решения задачи. 

При данном раскладе весьма полезной может оказаться старая программа из имеющегося у каждого пакета Microsoft Office – Excel. Функционал программы позволяет легким образом получать необходимые данные. Предлагаю один из способов создания отчета об эффективности торговой системы на описанном ниже примере.



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

Робот на С++ или C#

У меня инженерное образование. Окончил университет по специальности «Программное обеспечение ВТ». Так вышло, что по специальности не работал ни дня. Есть мысли по автоматизации процесса торговли. Нужна информация по стыковке (экспорту) данных из Quik. Может быть кто ссылочку кинет на ресурс с информацией  или, в идеале, скинет в личку рыбу робота (проект в Visual studio) или библиотеку классов. Буду очень благодарен за помощь. 

Введение в Price Action. Часть 1.

    • 11 октября 2015, 17:26
    • |
    • Sani
  • Еще

Привет всем! Давно не публиковал ничего — значит настало время. Готовил много всего интересного, что касается торговых приемов. Все будет структурировано, понятно и от общего к частному!

Введение в прайс экшен.

Price Action – «ценовое действие» -анализ, построенный на изучении движения цены. Почему цена двигается? Я знаю, что цена стоит на месте, когда спрос и предложение взаимно «удовлетворяют» друг друга. Одни покупают по 10, другие – продают, тоже по десять. В другом случае, когда желающих купить по 10 больше, чем тех, кто хочет продать, происходит сдвиг цены. В таком несоответствии заключен принцип ценообразования. Когда рынок находится в некотором «балансе», цена не делает резких скачков, ходит в пределах некоторого коридора (флет). Застои — это места, где рынок перераспределяется, то есть деньги «переходят» из одних рук в другие. Направление движения цены после выхода из флета может показать нам, кому было больно, кто победитель, а кто проигравший.  Если я анализирую цену, то должен понимать, как формируются движения цены в общем  и свечи графиков частности. Давайте посмотрим на рисунок ниже.



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

Как зарабатывать в "пиле"?

    • 06 октября 2015, 15:38
    • |
    • А. Г.
      Проверенный аккаунт
  • Еще
Ответ прост — торговать контртрендовую систему. Вот сегодняшний день

Как зарабатывать в "пиле"?
С утра нет сделок потому что «фильтр тренда» их не давал совершать

Upd. «Фильтр тренда» запретил дальнейший пирамидинг

Как зарабатывать в "пиле"? 

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

Как потестить систему в Экселе. Пошагово. Часть 2

Поскольку предыдущую часть мы завершили на том, как задавать условия и цену для открытия/закрытия позиций, то в начале этой части рассмотрим две распространённые ошибки, допускаемые при тестировании систем: открытие позиции внутри гэпа и заглядывание в будущее.



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

Визуализация сделок участников ЛЧИ-2015 в Quik. Часть 2.

    • 25 сентября 2015, 22:49
    • |
    • XXM
  • Еще
Первая часть была тут - http://smart-lab.ru/blog/279435.php

Из страницы "Статистика конкурса ЛЧИ 2015" в номинации «Лучший трейдер миллионер» выбираем какого-нибудь участника, например clank
и скачиваем его сделки.
Полученный архив распаковываем, csv-файл копируем в каталог Lchi2015 нашего рабочего Quik и переименовываем в Lchi2015.csv.
На 5-минутный график SiZ5 добавляем индикатор Lchi2015 в Окно 1 — метки сделок.

В Новое Окно добавим индикатор LchiEquity.lua (из xsharp.ru или на Google Диск ) — график доходности в пунктах по выбранному инструменту.



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

Будни алготрейдинга. Тслаб. Айтиинвест. Биржа. ВДС. Роботы. Америка. IB.

    • 16 сентября 2015, 09:01
    • |
    • ves2010
  • Еще

Давненько не писал про торговлю.

            Торгую ботами под тслабом 5 лет. Поднял немного денех. Но счас откатывает. Идет запил уже 3месяца. Счет овер 10мио с запасом. Перепишу хаи — выложу стейт.

 

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

 

баги тслаба следующие...

а) не работает с Смартком3… там целая куча багов… за целый год не могли исправить...

б) нет гарантии входа в сделку… т.е. вместо 100 лотов вам нальют 1 и никаких сообщений и предупреждений не будет...  

в) не работают лимитные ордера… если их ставить близко от текущей цены… — т.е арбитражник не сделать никак… да и вообще там все очень криво… например логика по входу в позицию отличается от логики по выходу из позы...

г) нет итогового подсчета позы… крайне неудобно… у меня до 50-70ти поз открыто по каждой бумаге… крайне неудобно пересчитывать вручную… постоянно потеряно поз на 1-2мио...



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

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

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

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