Сколько у меня денег в данный момент времени?

Страницы: 1
RSS
Сколько у меня денег в данный момент времени?
 
Сколько у меня всего денег в данный момент времени (на срочном рынке)?

Это "Текущие чистые позиции" + "Плановые чистые позиции" + "Вариационная маржа" + "Накопленный доход" "Биржевые сборы" ?

Т.е. в коде это
Код
local t = getFuturesLimit( ... )
return t.cbplused + t.cbplplanned + t.varmargin + t.accruedint - t.ts_comission
Я прав? Или нет?

И какие параметры у функции getFuturesLimit()
  • firmid     - ID брокера (понятно)
  • trdaccid   - торговый счёт / аккаунт (понятно)
  • limit_type - непонятно
  • currcode   - непонятно
Объясните пожалуйста  
 
Цитата
Сергей Че написал:
Сколько у меня всего денег  в данный момент времени  (на срочном рынке)?

Это   "Текущие чистые позиции"   +   "Плановые чистые позиции"   +   "Вариационная маржа"   +   "Накопленный доход"     –     "Биржевые сборы"   ?

Т.е. в коде это
Код
   local  t  =   getFuturesLimit (  .. . )
 return  t.cbplused  +  t.cbplplanned  +  t.varmargin  +  t.accruedint  -  t.ts_comission  
Я прав? Или нет?
Да все правильно, только  "Текущие чистые позиции" + "Плановые чистые позиции" = "Лимит открытых позиций"
Так что можно немного упростить.
Ну и колбекми и очередями, на мой взгляд, удобнее работать, чем функции дергать
У меня так
Код
function OnFuturesLimitChange(data) -- вызывается терминалом QUIK при получении изменений ограничений по срочному рынку
  if(data.firmid==firmid)and(data.trdaccid==account)and(data.limit_type==0) then
    table.sinsert(QUEUE_Main,{callback="OnFuturesLimitChange",value=data})
  end
end

ну и потом уже в майне работаем с очередью
table.sremove(QUEUE_Main,1)
if(queue.callback=="OnFuturesLimitChange")then
  params["MONEY"]=queue.value.cbplimit+queue.value.varmargin+queue.value.accruedint-queue.value.ts_comission   -- Деньги = Лимит открытых позиций + вариационная маржа + накопленный доход - биржевые сборы
end

Цитата
И какие параметры у функции  getFuturesLimit()
  firmid     - ID брокера (понятно)
 trdaccid   - торговый счёт / аккаунт (понятно)
 limit_type - непонятно
currcode - непонятно
  Объясните пожалуйста  
limit_type - это тип лимита, тебя вероятнее всего интересуют денежные средства, тогда limit_type=0
currcode - это валюта лимита
 
форум не дает редактировать сообщения ((
строчку одну забыл скопировать
Код
local queue=QUEUE_Main[1]
table.sremove(QUEUE_Main,1)
if(queue.callback=="OnFuturesLimitChange")then
  params["MONEY"]=queue.value.cbplimit+queue.value.varmargin+queue.value.accruedint-queue.value.ts_comission   -- Деньги = Лимит открытых позиций + вариационная маржа + накопленный доход - биржевые сборы
end
 
Цитата
BlaZed написал:
Спасибо
Т.е. вызов должен быть такой?
(добавил проверку на nil, если произошла ошибка при вызове функции)
Код
function get_money()
    local t = getFuturesLimit( firmid, account, 0, "" )
    return t and ( t.cbplused + t.cbplplanned + t.varmargin + t.accruedint - t.ts_comission )
    -- ну или ...
    -- return t and ( t.cbplimit + t.varmargin + t.accruedint - t.ts_comission )
end
Цитата
Если необходимо получить информацию по фьючерсному лимиту без валюты, то в качестве curr_code задается пустая строка.
Что за фьючерсный лимит без валюты?
Я же торгую и фьючами с валютной привязкой, например индекс RTS и чисто рублёвыми фьячами, например, индекс МосБиржи.
 
Цитата
BlaZed написал:
Я думаю, регистрировать коллбек, который будет вызываться при на каждом чихе (при любом измнении таблицы, например, при изменении вариационной маржи, которая изменяется постоянно) -- это не совсем правильно.
Я думаю, вручную вызвать метод getFuturesLimit в тот момент, когда я закрываю позицию (выхожу из рынка), чтобы посмотреть, сколько я заработал, сравнив полученные деньги с предыдущим знанчением.
Страницы: 1
Читают тему
Наверх