Как это ни парадоксально, но именно при активной алготоровле много времени уходит на вглядывание в монитор. Иногда возникают иллюзии, будто что-то полезное уловил глазом.
Так произошло и в этот раз. Давно была гипотеза, что какие-то движения внтури дня имеют связь с движениями после в этом же дне.
Например, может показаться, что микрогепы в первые минуты открытия европейской сессии могут с высокой вероятностью указать на дальнейшее движение цены в течение дня.
Среди большого количества заданий для себя, была задача проверить нечто подобное. И вот руки дошли.
/** \brief Класс Новостей */ class News { public: std::string name; /**< Имя новости */ std::string currency; /**< Валюта новости */ std::string country; /**< Страна новости */ int level_volatility = -1; /**< Уровень волатильности (-1 не инициализировано, низкий уровень = 0, средний 1, высокий 2) */ double previous; /**< Предыдущее значение */ double actual; /**< Актуальное значение */ double forecast; /**< Предсказанное значение */ bool is_previous = false; /**< Наличие предыдущего значения */ bool is_actual = false; /**< Наличие актуального значения */ bool is_forecast = false; /**< Наличие предсказанного значения */ uint64_t timestamp = 0; /**< Метка времени новости */ News() {}; };Для хранения массива исторических данных новостей используется библиотека
Загнал в тестер данные от BTCUSD, самый прикол что сначала их скачал с investing.com, но оказались что они не совпадали с TradingView и bitfinex, по крайней мере в начале 2017. Пришлось запускать скрипт и парсить с TW.
Далее загнал и ошибочка, P/L расчёты не адекватные. Баг. Дело было в том что у актива к паре USD немного другая логика взятия маржи, поэтому переписывал тестер.
Ну и в конце запуск, результаты… не лучше чем вчера на ethbtc) а когда ручками прогонял и визуально строил, получилось что сам того не хотя, попал на тот период где это вполне все хорошо работало. Слава исторической прогонки) Правда еще эту пару не проверил ручками на всю правильность работы.