Не смотря на слухи о переносе даты встречи OPEC+ на 4.06, на сайте OPEC появились две другие даты, которые были оговорены ранее: девятое и десятое июня. Bloomberg продолжает настаивать, что на встрече будет решение о коротком продолжении сделки, однако, переговоры могут стать непростыми так как ранее Россия сообщала о желании увеличить квоты добычи. За последние 24 часа вышло очень много новостей, которые должны поддерживать цену на нефть. Главными являются новости о росте спроса в Китае, у берегов этой страны выстроилась очередь из танкеров, а переработка на НПЗ восстанавливается V образным способом. Более того, Китай вынужден покупать российскую нефть марки URALS с премией к саудовским сортам, просто потому что им не хватает объема из СА. На этом фоне, королевство сигнализирует о возможном поднятии цен в Июле. Если это произойдет, то нефти не составит труда закрепиться выше 40$ за баррель. Стоимость доставки танкерами
Всех приветствую!
Пост – призыв задуматься и может быть пересмотреть свои риски в сторону уменьшения. Волатильность возросла – это хорошо, но и риски повысились. К оценке рисков стараюсь подходить серьезно. Поэтому решил описать подход, которым руководствуюсь при управлении соотношением размера гарантийного обеспечения к депозиту.
В чем собственно проблема? Грузим депозит под завязку. Плечо 1 к 8. Оставляем чуток под просадку и в бой! Повезет если счет начнет расти, сформируется некий запас. А если события будут складываться не так удачно: просадка 40%, а следом огромный гэп. Что останется от депозита? Выход из ямы займет очень много времени.
Решение проблемы – создание резерва. Использую следующую пропорцию:
50% – это максимальное расчетное ГО, сумма максимальных лимитов по всем ботам. Оно может меняться от 0 до 50% в зависимости от: направления позиции (кто в лонг, кто в шорт, кто вне позиции), ММ алгоритма (фиксированный объем, плавающий), волатильности на рынке.
В общем, угрохав на исследования 2-3 года (не ну конечно за 2-3 года я еще успел сделать несколько безуспешных проектов инвесторов) я таки запустил наконец-то реальную торговлю сразу на двух брокерах бинарок.
Поковырявшись в 264 стратегиях я выяснил, что хорошо себя ведут стратегии, которые были изобретены еще 2 года назад. Ну то есть сильные закономерности существуют до сих пор и уверенно себя чувствуют. С тех пор конечно что-то было улучшено, но сами закономерности остались те же. Даже обидно, мог бы раньше запуститься.
В итоге решил убрать стратегии, которые работают сейчас не очень, и картина не сильно поменялась в плане прибыли. Зато повысилась стабильность и повысился винрейт.
Если торговать с коэффициентом ослабления критерия Келли 0.2 и процентами выплат 82% у одного брокера и 80% у другого, получается неплохой результат. Винрейт у сигналов разный, но в среднем он 59%. Вот результат теста с начала 2020 года по 26.05.2020. Т.е. этот период вообще никак не участвовал в настройке стратегий.
Очень простая, многопоточная серверная и клиентская библиотека 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; }