1

Тема: 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