https://github.com/newyaroslav/bo-payout-model
С++ header-only библиотека с моделями процентов выплат брокеров бинарных опционов
https://github.com/newyaroslav/bo-payout-model
binary-option binary-options binary-options-statistics broker broker-api cpp cpp11 forex-data forex-trading intrade-bar maths payout-model
Last synced: 5 days ago
JSON representation
С++ header-only библиотека с моделями процентов выплат брокеров бинарных опционов
- Host: GitHub
- URL: https://github.com/newyaroslav/bo-payout-model
- Owner: NewYaroslav
- License: mit
- Created: 2019-08-24T18:44:04.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-02-19T05:43:37.000Z (over 5 years ago)
- Last Synced: 2025-02-26T04:14:41.995Z (over 1 year ago)
- Topics: binary-option, binary-options, binary-options-statistics, broker, broker-api, cpp, cpp11, forex-data, forex-trading, intrade-bar, maths, payout-model
- Language: C++
- Homepage:
- Size: 159 KB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

# bo-payout-model
С++ header-only библиотека с моделями процентов выплат брокеров бинарных опицонов
### Описание
На данный момент библиотека содержит следующие модели:
* модель процентов выплат брокера [intrade.bar](https://intrade.bar)
* модель процентов выплат брокера [grandcapital](https://gcoption.com/)
**Если вы хотите поддержать развитие данной библиотеки и собираетесь торговать у брокера intrade.bar, зарегистрируйтесь, пожалуйста, [по этой партнерской ссылке](https://intrade.bar/67204). Один процент от оборота (т.е. не важно, в + или - вы торгуете) ваших средств будет идти на поддержку проекта. Спасибо!**
## Особенности торговли у брокера intrade.bar
**Устаревшая информация, оставлена для памяти**
- Торговля открывается в понедельник, начиная с *22 часа по UTC* (*1 час по МСК*). **Возможны изменения!!!**
- Начиная с *13:57:00* 3 минуты в начале часа и в течении 3 минут после часа брокер *занижает процент выплат до 60%*.
- Аналогично правилу выше начиная с *22 часа по UTC* до *5 часа по UTC* на 3 минуты в начале часа и в течении 3 минут после часа брокер занижает процент выплат до 60%.
Т.е. сделки нельзя открывать в период *XX:57:00 - XX:02:59*, где XX - час дня, начиная с 13 часов по UTC или с 22 по 5 час UTC (для 5 часа ЕСТЬ занижение процента выплат после часа, т.е. до *05:02:59*).
**Актуальная информация, начиная с 27.01.2020**
- Торговля открывается каждый день с *1 часа по UTC* (*4 час по МСК*). **Возможны изменения!!!**
- Начиная с *13:57:00* 3 минуты в начале часа и в течении 3 минут после часа брокер *занижает процент выплат до 60%*.
- Аналогично правилу выше начиная с *1 часа по UTC* до *6 часа по UTC* на 3 минуты в начале часа и в течении 3 минут после часа брокер занижает процент выплат до 60%.
Т.е. сделки нельзя открывать в период *XX:57:00 - XX:02:59*, где XX - час дня, начиная с 13 часов по UTC или с 1 по 6 час UTC (для 6 часа ЕСТЬ занижение процента выплат после часа, т.е. до *05:02:59*).
- Брокер имеет два типа опционов. Данная библиотека поддерживает только *спринт-опционы*.
- По спринт-опционам процент выплат **82% для экспирации 3 минуты**. Для остальных экспираций выплата брокера **79%**.
- Начиная со ставки *5000 RUB* или *80 USD* процент выплат **85%** для любых экспираций.
- Минимальная ставка *50 RUB* или *1 USD* для валютных пар. Для золота (XAUUSD) минимальная ставка *500 RUB*.
- На данный момент поддерживает следующие валютные пары (22 шт):
EURUSD,USDJPY,~GBPUSD~,USDCHF,
USDCAD,EURJPY,AUDUSD,NZDUSD,
EURGBP,EURCHF,AUDJPY,GBPJPY,
~CHFJPY~,EURCAD,AUDCAD,CADJPY,
NZDJPY,AUDNZD,GBPAUD,EURAUD,
GBPCHF,~EURNZD~,AUDCHF,GBPNZD,
~GBPCAD~,XAUUSD
**Зачеркнутые валютные пары не поддерживаются брокером.**
## Особенности торговли у брокера grandcapital
* С 22 февраля 2019 торговля доступна с 22:00 до 2:00 по терминальному времени (GMT+2). Ссылка на новость:
https://grandcapital.ru/about/company_news/izmenilos-vremya-torgovli-instrumentami-gruppy-opt/
* Процент выплат фиксированны и зависит от инструмента
86% платят на следующих валютных парах: EURUSD
85% платят на следующих валютных парах: AUDCAD, AUDCHF, AUDJPY, AUDNZD, AUDUSD, CADCHF, CADJPY, EURGBP, EURJPY, GBPUSD, XAUUSD, NZDJPY, NZDUSD, USDCAD
80% платят на следующих валютных парах: CHFJPY, EURAUD, EURCAD, EURNZD, GBPAUD, GBPCAD, GBPCHF, GBPJPY, USDCHF, USDJPY
60% платят на следующих валютных парах: EURCHF, XAGUSD
* Размер ставки: от 1 USD с шагом 0.01 или от 50 RUR
### Как использовать
К примеру, подключите файл *intrade-bar-payout-model.hpp* в свой проект, чтобы использовать модель процентов выплат брокера [intrade.bar](www.intrade.bar/67204).
**Получение процентов выплат**
```C++
#include
#include "intrade-bar-payout-model.hpp"
using namespace std;
int main() {
/* класс модели процентов выплат */
payout_model::IntradeBar IntradeBar;
/* можно задать валюту аккаунта
* payout_model::IntradeBar IntradeBar(payout_model::CURRENCY_USD);
*/
/* проверить наличие валютной пары у брокера */
std::cout << "EURUSD: " << payout_model::IntradeBar::check_currecy_pair_name("EURUSD") << endl;
std::cout << "GBPCAD: " << payout_model::IntradeBar::check_currecy_pair_name("GBPCAD") << endl;
// выплата брокера, от 0.0 до 1.0, где 1.0 - 100% выплата
double payout = 0.0;
// это метка времени с датой по *UTC 07.05.2019 06:53:00*
xtime::timestamp_t timestamp = xtime::get_timestamp(7,5,2019,6,53,00);
/* это длительность опциона в секундах
* (здесь 3 минуты - минимальная длительность у брокера intrade.bar
*/
int duration = 180;
/* это символ, на котором "торгуем". См. массив payout_model::intrade_bar_currency_pairs
* Символ под индексом 0 соответствует валютной паре EURUSD
*/
int symbol_ind = 0;
/* размер ставки в валюте счета, в данном случае в RUB */
double amount = 4000;
/* получаем процент выплат */
int err = IntradeBar.get_payout(payout, timestamp, duration, symbol_ind, amount);
/* еще вариант получить процент выплат, указав имя валютной пары, а не индекс в библиотеке
* переменная err для обоих методов get_payout будет хранить код ошибки.
* Если ошибок нет, переменная будет равна 0.
* Иначе см. перечисление PayoutCancelType
*/
err = IntradeBar.get_payout(payout, "EURUSD", xtime::get_timestamp(5,3,2019,9), 180, 5000);
/* на экране будет напечатано: date 07.05.2019 06:53:00 payout 0.82 */
std::cout << "date " << xtime::get_str_date_time(timestamp) << " payout " << payout << std::endl;
return 0;
}
```
**Проверка возможности торговать в указанное время**
```C++
/* проверим, можно ли торговать в 1300 минуту дня? (это 21:40), Ответ - нет */
if(payout_model::IntradeBar::check_minute_day(1300) == payout_model::OK)
std::cout << "yes" << endl;
else
std::cout << "no" << endl;
/* проверим, можно ли торговать в 33 минуту дня? (это 00:33), Ответ - да */
if(payout_model::IntradeBar::check_minute_day(33) == payout_model::OK)
std::cout << "yes" << endl;
else
std::cout << "no" << endl;
/* проверим, можно ли торговать в 00:00 12 декабря 2019? Ответ - да */
if(payout_model::IntradeBar::check_timestamp(xtime::get_timestamp(12,12,2019,0,0,0))
== payout_model::OK)
std::cout << "yes" << endl;
else
std::cout << "no" << endl;
```
### Полезные ссылки
* Статистика процентов выплат брокера *OlympTrade*: [https://github.com/NewYaroslav/olymptrade_historical_data](https://github.com/NewYaroslav/olymptrade_historical_data)
* Статистика процентов выплат брокера *Binary*: [https://github.com/NewYaroslav/binary_historical_data](https://github.com/NewYaroslav/binary_historical_data)
* Котировки брокера *Binary*: [https://github.com/NewYaroslav/binary.com_history_quotes](https://github.com/NewYaroslav/binary.com_history_quotes)
* Котировки брокера *IntradeBar*: [https://github.com/NewYaroslav/intrade-bar-historical-data](https://github.com/NewYaroslav/intrade-bar-historical-data)