Расчет размера позиции в торговых роботах
Поздравляю всех с наступающим новым годом и Рождеством! Хочу пожелать любви, мудрости и конечно же прибыли!
Но, праздники праздниками, а работать надо. Сегодня мы обсудим алгоритмы получения текущего баланса и расчета открываемой позиции. Расчет у нас пока будет простой — на основе заданного процента от доступного капитала. В случае с акциями все просто — за нее мы платим столько, сколько она стоит. А вот с фьючерсами несколько сложнее, там мы платим гарантийное обеспечение, которое не равно стоимость самого контракта. Рассмотренный алгоритм можно применять в т.ч. в коммерческих версиях моих торговых роботов.Итак, получение баланса на ММВБ. Размер текущего баланса мы видим из таблицы «Лимиты по денежным средствам». Но удобнее его получать из таблицы «Клиентский портфель»:
MONEYCURRENTBALANCE = GET_VALUE(GET_CLIENT_MARGINAL_PORTFOLIO_INFO(FIRMAMICEX,ACCOUNTMICEX),"ALL_ASSETS")
где:
FIRMAMICEX и ACCOUNTMICEX — идентификаторы фирмы и аккаунта соответсвенно, которые, кстати, можно тоже получать автоматически:
FIRMAMICEX=GET_VALUE(GET_ITEM("MONEY_LIMITS",1), "FIRMID")
ACCOUNTMICEX=GET_VALUE(GET_ITEM("DEPO_LIMITS",1), "TRDACCID")
Таким образом, заранее определив переменную RISK=20%, и определив цену последней сделки нужного нам инструмента, мы можем рассчитать количество ЦЕЛЫХ лотов:
RISK=20
LAST=GET_VALUE(GET_PARAM_EX("EQBR","SBER03","LAST"),"PARAM_VALUE")+0
LOTS = APPLY_SCALE(MONEYCURRENTBALANCE/100*RISK/LAST,0)
Теперь значение переменной LOTS у нас рассчитано исходя из заданного процента риска. Это самый простой пример автоматизации процесса управления капиталом, но эти методы можно использовать при любом расчете.
Это мы рассмотрели вариант ММВБ, теперь рассмотрим ФОРТС (или другой срочный рынок). Здесь значение доступных средств мы получаем из таблицы «Ограничения по счетам»:
RISK=20
GO = GET_VALUE(GET_PARAM_EX("SPBFUT","RIH0","SELLDEPO"),"PARAM_VALUE")+0
MONEYCURRENTBALANCE = GET_VALUE(GET_ITEM("FUTURES_CLIENT_LIMITS",1), "CBPLIMIT")+0
LOTS = APPLY_SCALE(MONEYCURRENTBALANCE/100*RISK/GO,0)
Как я уже говорил, расчет количества лотов для срочных секций ведется на основе суммы гарантийного обеспечения.
Подобные расчеты могут применяться в большинстве торговых роботов.
Новые комментарии