Блог им. Nemo_2000
p_account = «SPBFUT00521»
p_clientcode = «101326»
p_classcode = «SPBFUT»
p_seccode = «SiM6»
TRANS_ID = 0
is_run = true
count=1
function main()
while is_run do
message(«Hello, World! №»..tostring(count),1)
count=count+1
for Index = 0,getNumberOf(«stop_orders») — 1 do
any = getItem(«stop_orders»,Index)
if bit.band(any.flags, 1) > 0 then
Stop_Order = any.order_num
--message(tostring(Stop_Order),1)
KILL_STOP_ORDER(p_classcode, p_seccode, p_account, Stop_Order)
end
end
sleep(5000)
end
end
function OnStop(stop_flag)
is_run=false
end
function KILL_STOP_ORDER(_MARKET, _TICKER, _ACCOUNT, _NUMBER)
TRANS_ID = TRANS_ID + 1
t =
{
[«TRANS_ID»]= tostring(TRANS_ID),
[«ACCOUNT»] = tostring(_ACCOUNT),
[«CLASSCODE»] = tostring(_MARKET),
[«SECCODE»] = tostring(_TICKER),
[«ACTION»] = «KILL_ORDER»,
[«ORDER_KEY»] = tostring(_NUMBER)
}
message(t.TRANS_ID.." "..t.ACCOUNT.." "..t.CLASSCODE.." "..t.SECCODE.." "..t.ACTION.." "..t.ORDER_KEY,1)
res=sendTransaction(t)
end
Ну и получаю сообщение от квика «Вы не можете снять данную заявку» Все параметры в транзакцию передаются правильно. Похоже это проблемы квика, а не клуа
но есть KILL_ORDER — снятие заявки
и есть KILL_STOP_ORDER — снятие стоп-заявки.
вообще я думал стоп и лимитная заявка должны по разному убиваться.
потому что стоп может породить лимитку. если лимитка уже есть, стоп убивать безсмысленно, надо убивать лимитку.
как узнать номер лимитки по номеру стоп-заявки, я без понятия.
а если лимитки ещё нет, то надо убивать стоп.
стоп убивается так
CLASSCODE=SPBFUT; SECCODE=RIM1; TRANS_ID=50624875; ACTION=KILL_STOP_ORDER; STOP_ORDER_KEY=186080;
а ты явно лимитку пытаешься прибить.
на демо счёте пытаюсь автоматически выставить заявку, пишет - Вам запрещена работа по данному торговому счету
а вручную всё выставляется, из-за демо счёта такая фигня?
может и у вас что то похожее?
Karim, не, не пашет..
требует в ORDER_KEY что то отличное от nil…
[«ORDER_KEY»] = tostring(_NUMBER) должно быть
[«STOP_ORDER_KEY»] = tostring(_NUMBER)
p_account = «SPBFUT00521»
p_clientcode = «101326»
p_classcode = «SPBFUT»
p_seccode = «SiM6»
t =
{
[«TRANS_ID»]= tostring(math.random(2000000000)),
[«ACCOUNT»] = tostring(p_account),
[«CLASSCODE»] = tostring(p_classcode),
[«SECCODE»] = tostring(p_seccode),
[«ACTION»] = «KILL_STOP_ORDER»,
[«ORDER_KEY»] = tostring(7360931)
}
message(t.TRANS_ID.." "..t.ACCOUNT.." "..t.CLASSCODE.." "..t.SECCODE.." "..t.ACTION.." "..t.ORDER_KEY,1)
res=sendTransaction(t)
Вместо [«ORDER_KEY»] = tostring(_NUMBER) должно быть
[«STOP_ORDER_KEY»] = tostring(_NUMBER)
p_account = «SPBFUT00521»
p_clientcode = «101326»
p_classcode = «SPBFUT»
p_seccode = «SiM6»
TRANS_ID =0
TRANS_ID = TRANS_ID + 1
t =
{
[«TRANS_ID»]= tostring(math.random(2000000000)),
[«ACCOUNT»] = tostring(p_account),
[«CLASSCODE»] = tostring(p_classcode),
[«SECCODE»] = tostring(p_seccode),
[«ACTION»] = «KILL_ORDER»,
[«STOP_ORDER_KEY»] = tostring(7360931)
}
message(t.TRANS_ID.." "..t.ACCOUNT.." "..t.CLASSCODE.." "..t.SECCODE.." "..t.ACTION.." "..t.STOP_ORDER_KEY,1)
res=sendTransaction(t)
отослал письмо в поддержку, отпишусь здесь если поможет ))
Вместо [«ACTION»] = «KILL_ORDER», нужно
«KILL_STOP_ORDER»
БУДЬТЕ ВНИМАТЕЛЬНЕЕ!!!
2. Если пытаюсь поставить заявку вручную, но в момент набора цифр в форме робот что-то поставил — тоже такое высвечивается.
function KILL_STOP_ORDER
5 секунд. и Сообщение о невозможности выдаётся сразу после
Hello, World! №»
так что нет там одновременности обращения…
Спасибо!!!