Постов с тегом "wealhlab": 19

wealhlab


MarketData по Американским фьючерсам, ETF. (Минутки)

В связи с тем, что бесплатно маркетдату по Америке не достать, пришлось оплатить iqfeed и выкачать все что выкачивалось (глубина примерно от 2005 г), и решил поделиться этим с сообществом.
Futures — минутки по всем более-менее ликвидным американским фьючам (Index, FX, Interest Rate, Metal, Commodity, VIX).
EFT — минутки по ликвидным ETF, около 1к бумаг (скринил средний проторгованный объем в день за 3 месяца -  более 50к акций).
По таймингу — все доступные данные (основная и дополнительная сессия).
Всего текстовых файлов в распакованном виде на 37 гигов.
Формат файлов следующий:
2019-05-05 18:01:00,2925.75,2926.75,2925.75,2926.75,4,4
Дата Время, Открытие, Максимум, Минимум, Закрытие, НакопленныйОбъем, Объем
Программа для закачки даты с iqfeed MarketDataDownloader.
Кодировку символов iqfeed смотреть тут.
Использовать можно как в программах теханализа, так и в программах построения алгоритмических систем (Multicharts, NT, Tslab, AmiBroker и т.д.).


Программы для трейдинга с роботами

    • 12 сентября 2021, 12:35
    • |
    • MxD7
  • Еще
В Quick можно писать роботов на языке программирования Lua. 
В Transaq есть язык ATF (не знаю что это). 
Я слышал, что есть программа Wealth Lab со встроенным языком программирования c#. Я скачал последнюю демоверсию 7, но она у меня не заработала. Читал, что некоторые используют старую 6 с торрентов. Загружают котировки, отлаживают роботов на исторических данных и потом уже работают на актуальных. 
Прочитал про s# designer — якобы универсальную штуку для написания роботов. 

Какие ещё есть программы  или онлайн сервисы для человека (не инвестфонда), чтобы писать и тестировать своих роботов, а в идеале лучше настраивать или доделовать готовых?
Примерно как common-овские роботы с возможность настройки или дописывания. 

Wealth-Lab.Открытие позиции, превышающей размер капитала (Плечи).

Наверняка, любой трейдер, пытавшийся протестировать свои стратегии в Wealth Lab (версия 6.4) сталкивался с необходимостью определения в стратегии своей системы управления рисками. Особенно это актуально при торговле фьючерсами.
Задать размер позиции в Wealth Lab можно создав класс, производный от класса WealthLab.PosSizers.BasicPosSizer и переопределив в нем метод SizePosition.
Что я собственно и сделал:
//////////////////////////////////////////////////////////////////////////////////
public override double SizePosition(Position currentPos, Bars bars, int bar, double basisPrice,
PositionType pt, double riskStopLevel, double equity, double cash)
{
double risksizeprecent = Math.Abs((riskStopLevel — basisPrice) / basisPrice — 1);
if (_settings == null)
_settings = new myPosSizerSettings();
this.InitializeSettings(_settings);
_maxRisk = _settings.MaxRiskSize;
double capfortrade = equity *0.99*_maxRisk/100;
capfortrade = capfortrade/Math.Abs(riskStopLevel — basisPrice);
return (int)capfortrade;
}
//////////////////////////////////////////////
Устанавливаю максимальный риск на сделку
Wealth-Lab.Открытие позиции, превышающей размер капитала (Плечи).
Однако проблема в том, что WealthLab не дает открывать позиции размер которых превышает размер капитала



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

Работаем с площадью. Алгоритм на WelathLab

Работаем с площадью. Алгоритм на WelathLab
Работаем с площадью. Алгоритм на WelathLab


Когда на графике куча скользяшек, складывается впечатление, что система держится на соплях и долго не протянет. Поэтому давно начал думать о каких-то универсальных индикаторах, которые бы измеряли сразу много параметров рынка.

Первое, что пришло в голову – это использовать площади на графике. Изначально идея была такой:

  1. Строим кривую по хаям и по лоям
  2. С помощью интерполяции находим промежуточные значения нашей кривой для большей точности.
  3. Аппроксимировать получившуюся кривую.
  4. Взять интеграл от получившейся в третьем шаге функции.

По задумке получившееся значение должно было отражать глубину рынка, то есть насколько сильно ходит рынок от локального хая/лоя до хая/лоя внутри дня. Если же мы добавим сюда время (за сколько рынок сходил), то получим индикатор флэта (маленькое значение + большой временной промежуток).  По ходу построения индикатора возникали мысли о том, что всё это можно реализовать гораздо проще, и действительно – можно.
Работаем с площадью. Алгоритм на WelathLab



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

В какие торговые платформы вы экспортируете данные Российского рынка для дальнейшего технического анализа?

В какие торговые платформы вы экспортируете данные Российского рынка для дальнейшего технического анализа?

NinjaTrader
MultiCharts
AmiBroker
Wealth-Lab
MetaStock
MarketDelta
Всего проголосовало: 62
В какие торговые платформы вы экспортируете данные Российского рынка для дальнейшего технического анализа?


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

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

Пишу роботов и индикаторы под заказ.

    • 16 февраля 2015, 10:32
    • |
    • Dzam
  • Еще
Не скрытая реклама. :)
Имею большой опыт написания торговых стратегий, индикаторов, скриптов, помошников и так далее. Для различных платформ: Wealth-lab, NinjaTrader, Metatrader, Quik… Для любых других платформ, с которыми я не работал, время написания будет больше, но тоже проблем не составит. Решал задачи различной сложности: это и парсинг HTML страниц (почтовых сообщений) с выставлением ордеров по получаемой информации, и специфическая обработка информации ленты и ее графическое представление.
Цены приемлимые.
Программирование для меня — удовольствие. А получать плату за удовольствие — это тройное удовольствие. :)
Обращайтесь.

Стоит ли реализовывать подобную систему?

Стоит ли реализовывать подобную систему?
Стоит ли реализовывать подобную систему?
upd:
1) 5и минутки
2) фиксированное число контрактов
3) в системе 2 параметра, не оптимизировал
работает хорошо на RTS, Si, SBRF при одних и тех же параметрах, думаю как допилить, все таки просадка в 80 тыр, когда торговля ведется, примерно, на 100000 не есть хорошо, подумаю как допилить

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

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