Постов с тегом "торговые алгоритмы": 177

торговые алгоритмы


ML для поиска закономерностей по Atamanу.

Жил был такой трейдер Ataman и были у него критерии робастности системы: фичей не больше трех и параметры фича не должна выглядеть «тут читаю, тут не читаю, тут рыбу заворачиваю». В чем проблема когда мы используем нейросети, или там случайный лес или градиентый бустинг? В том это условие внутрь не засунуть, нейросеть (случайный лес) будет использовать все фичи, и нарежет их, как захочет, хоть в мелкую стружку. Что делать и как с этим бороться?
Я сделал три цикла с GradientBoosting, и ограничил глубину деревьев 3. Вуаля!
Здесь  можно посмотреть как это выглядит на питоне + база данных+ код WealthLab.
Результаты?
Ну вот например на тренировочной выборке 2010-04.2018 нашлось такое:

if ((AroonDownClose_20_[Bar] >= 75.0)&&(AroonDownClose_20_[Bar] <= 100.0)) //
if ((StochD14_5_[Bar] >= 1.9416)&&(StochD14_5_[Bar] <= 10.3487)) //
Загоняем, считаем:

Названия строк Коли    Profit %


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

Найдите ошибки

Концепция работы на рынке:

1. Принимаем, что всё рыночное пространство состоит из 3-х состояний:

— направленное движение (тренд)

-  ненаправленное движение (боковик)

-  переход между этими состояниями.

2. Создаём торговую систему для тренда (стопы + высиживание прибыли).

3. Создаём торговую систему для боковика (без стопов + короткие тэйки)

4. Применяем наклон эквити или статистику преобладания прибыльных и убыточных дней как индикатор для включения 1-й или 2-й ТС.

Получаем следующий результат:

1. Трендовый рынок. Включается трендовая ТС и зарабатывает на «своём» рынке. 

2. Переход от тренда к боковику. Показатели трендовой ТС постепенно ухудшаются, и она выключается. 

3. Ненаправленный рынок. Включается ТС для боковика и зарабатывает на «своём» рынке.

4. Переход от боковика к тренду. Показатели нетрендовой ТС постепенно ухудшаются, и она выключается.

5. Закольцовываем эту последовательность действий.

Видит ли кто-то ошибки в такой архитектуре или в применяемой модели?


С++ Библиотека для сервера и клиента Named Pipe

В общем, сделал библиотеку simple-named-pipe-server для  работы с именованными каналами. Библиотека содержит сервер и клиент для C++11, а также клиент для MQL4.

С++ Библиотека для сервера и клиента Named Pipe


Очень простая, многопоточная серверная и клиентская библиотека Named Pipe, реализованная с использованием C++11. Проект был проверен на компиляторе mingw 7.3.0 x64. Папка code_blocks содержит примеры для IDE Code::Blocks. Не забудьте в проектах указать свой компилятор, иначе проект не соберется. Сделал либу только сегодня, так что в ней могут быть ошибочки.

Пример сервера
#include <iostream>
#include "named-pipe-server.hpp"

int main() {
    /* в конструкторе сервера можно также задать размер буфера */
    SimpleNamedPipe::NamedPipeServer server("my_server");

    /* обработчики событий */
    server.on_open = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection) {
        std::cout << "open, handle: " << connection->get_handle() << std::endl;
    };
    server.on_message = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection, 
			const std::string &in_message) {
        /* обрабатываем входящие сообщения */
        std::cout << "message " << in_message << ", handle: " << connection->get_handle() << std::endl;
        connection->send("ok");
    };
    server.on_close = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection) {
        std::cout << "close, handle: " << connection->get_handle() << std::endl;
    };
    server.on_error = [&](SimpleNamedPipe::NamedPipeServer::Connection* connection, const std::error_code &ec) {
        std::cout << "error, handle: " << connection->get_handle() << ", what " << ec.value() << std::endl;
    };

    /* запускаем сервер */
    server.start();
    std::system("pause");

    /* останавливаем сервер 
     * (деструктор класса сам выполнит остановку, вызывать не обязательно)
     */
    server.stop();
    std::cout << "close program" << std::endl;
    return EXIT_SUCCESS;
}


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

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