Блог им. elektroyar |Библиотека С++ для загрузки экономических новостей

Есть один хороший сайт www.investing.com с экономическими новостями, которым пользуются многие трейдеры на Форексе. И решил я как-то раз попробовать посмотреть, что будет на бэктестинге торговли по новостям. Поковырявшись в страничке экономического календаря сделал в итоге С++ библиотеку для загрузки новостей. Для http запросов библиотека использует curl. Новости загружаются по UTC времени, загрузить их можно со времен начала эпохи UNIX

Класс для хранения одной новости:
/** \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() {};
};
Для хранения массива исторических данных новостей используется библиотека 

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

Блог им. elektroyar |Бэктестинг стратегии для бинарных опционов.

Сегодня экспериментировал с фильтрацией сделок для одной своей стратегии. Параметры подгонял за 2012 год, так как выяснил, что фильтр не особо хорошо его фильтрует в сравнении с другими годами. Итог можно наблюдать ниже. Тест с 2008 года по 05.09.2019 на 25-ти валютных парах. 
Бэктестинг стратегии для бинарных опционов.
Сколько это в деньгах? Если торговать при выплате 82% (есть такой брокер с фиксированным процентом выплат), и риске 1% от депозита, то 2019 год дал бы примерно 40% в год (при 1000 сделок), если же год завершится с 1800 сделок и тем же винрейтом, то это уже примерно 83% в год.

При депозите от 500 000 рублей можно будет совершать крупные ставки с выплатой 85%, тогда 1000 сделок принесет уже 66%, а 1800 сделок 149% в год (при винрейте 56.8%). 

Общий винрейт за весь период теста составил 58.284%, всего сделок 24353.

К сожалению, котировки от FXCM начиная с 2007 года у меня есть не для всех валютных пар и они содержат много пропусков. Тем не менее, я провел тест с 2000 года на том, что есть.

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

Блог им. elektroyar |Хранение статистики индикаторов для ускорения работы оптимизатора и тестирования на истории

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

В качестве результата прогноза индикатора можно использовать разные варианты. Первый вариант — использовать движение цены за определенное время. Например, для конкретной стратегии используется замер движения цены за три минуты после прогноза. Цена при этом может остаться на том же уровне, что и в начале прогноза, и это надо учитывать. Другой вариант результата прогноза индикатора — исход движения цены при использовании равнозначного фиксированного тейк-профита и стоп-лосса.

Структура хранения данных выглядит так:
Хранение статистики индикаторов для ускорения работы оптимизатора и тестирования на истории

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

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

Блог им. elektroyar |Универсальный индикатор для С++

Еще давно у меня возникла потребность получать сразу массивы значений различных индикаторов. Можно конечно создавать массив индикаторов, и затем прогонять котировки через него. Но я решил пойти другим путем и сделал индикатор «скользящее окно» или сокращенно MW, который может рассчитывать сразу массивы RSI, SMA, STD_DEV от тех значений, что содержатся в его буфере.

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

Также я добавил возможность найти MIN, MAX, STD_DEV значения окна с заданным периодом и смещением внутри буфера индикатора. Это делает индикатор еще более универсальным. 

В дальнейшем планирую расширять функционал индикатора в рамках своей C++ header-only библиотеки технического анализа

Подписывайтесь на мой телеграм-канал бинарные опционы по научному, где периодически публикуются новые библиотеки и описывается ход запуска робота на «бинарках».

Блог им. elektroyar |Проверка психологических уровней в бинарных опционах

Проверка психологических уровней в бинарных опционах
Сегодня будем проверять так называемые психологические уровни
Круглые цифры, о них помнят, но часто забывают. Очень зря, ибо это самое сильное самоисполняющееся пророчество из всех. Уровни вроде 1.4200 или 1.2500 нередко реагируют сами по себе, что и понятно. Ведь всем трейдерам мира их куда проще запомнить, нежели 1.4287 либо 1.2536.
Источник: binguru.net

Так ли уж психологические уровни сильно влияют на винрейт стратегии, скажем, на основе того Боллинджера? Давайте проверим.

Исходные данные исследований

Для проверки психологических уровней будем использовать стратегию на основе индикатора Bollinger Bands с периодом 20 и множителем стандартного отклонения 2.0. Таймфрейм — 1 минута.

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



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

Блог им. elektroyar |Тестирование стратегий для бинарных опционов на истории. Библиотека для С++ и пример с "граалем".

В данной статье будет рассмотрен только технический аспект тестирования стратегий для бинарных опционов. Если вы считаете, что бинарные опционы не предсказуемы, или что брокеры «разводят» трейдеров, то данный пост будет не об этом и просьба не обращать на него внимания. Здесь будет рассмотрен только технический аспект для тех, кто хочет сам тестировать стратегии и проводить эксперименты на БО. Впрочем, используемый код можно адаптировать при желании и под форекс.

Итак, математика бинарных опционов не очень сложная. Тем не менее, проводить тесты будет гораздо  проще, если сделать отдельную библиотеку для тестирования и вообще подготовить «среду», где проводить свои изыскания. Не всегда же строить «велосипед» заново. К тому же, могут быть ситуации, когда ТС использует несколько экспираций опционов во время тестирования сразу, или может отличаться процент выплат и ставок. Поэтому есть смысл выделить «тестер» в виде отдельной библиотеки, несмотря на то что его задача по сути банально считать результат.

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

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