Тема: DEPO_CURRENT_BALANCE и MONEY_CURRENT_BALANCE в режиме T2
После введения на Московской Бирже режима Т+2, многие брокеры стали транслировать в терминал QUIK несколько позиций по деньгам и несколько позиций по одному и тому же инструменту. Различается у них только поле "Вид лимита".
В QPILE не было добавлено новых функций для чтения лимита к определенным значением поля "Вид лимита", вместо этого предлагается использовать функции:
FUNC DEPO_CURRENT_BALANCE_EX(client_code, firmid, seccode, account,limit_kind)
n=GET_NUMBER_OF("DEPO_LIMITS")
value=0
RESULT = ""
FOR i FROM 1 to n
trade = GET_ITEM ("DEPO_LIMITS", i)
IF (GET_VALUE(trade, "CLIENT_CODE")==client_code&"") AND _
(GET_VALUE(trade, "FIRMID")==firmid&"") AND _
(GET_VALUE(trade, "SECCODE")==seccode&"") AND _
(GET_VALUE(trade, "TRDACCID")==account&"") AND _
(GET_VALUE(trade, "LIMIT_KIND")+0==limit_kind+0)
RESULT = GET_VALUE(trade, "CURRENT_BALANCE")+0
BREAK
END IF
END FOR
END FUNC
FUNC MONEY_CURRENT_BALANCE_EX(client_code, firmid, tag, curr_code,limit_kind)
n=GET_NUMBER_OF("MONEY_LIMITS")
RESULT = ""
FOR i FROM 1 to n
trade = GET_ITEM ("MONEY_LIMITS", i)
IF (GET_VALUE(trade, "CLIENT_CODE")==client_code&"") AND _
(GET_VALUE(trade, "FIRMID")==firmid&"") AND _
(GET_VALUE(trade, "TAG")==TAG&"") AND _
(GET_VALUE(trade, "CURRCODE")==curr_code&"") AND _
(GET_VALUE(trade, "LIMIT_KIND")+0==limit_kind+0)
RESULT = GET_VALUE(trade, "CURRENT_BALANCE")+0
BREAK
END IF
END FOR
END FUNC
Функции DEPO_CURRENT_BALANCE_EX и MONEY_CURRENT_BALANCE_EX имеют дополнительный параметр limit_kind, позволяющий указать какой именно лимит нам нужен:
T0 -> limit_kind=0
T1 -> limit_kind=1
T2 -> limit_kind=2