Александр Иванов (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
По каким причинам может снятся лимитированная заявка порождённая стоп ордером?, Система снимает лимитированную заявку рождённую стоп ордером.
 
Подскажите почему может сниматься лимитированная заявка выставленная стоп ордером?
Описание ситуации-->
выставляются связанные заявки (лимитированная заявка и связанная с ней стоп заявка).
срабатывает стоп снимает связанную лимитированную заявку и соответственно стоп заявка порождает новую лимитированную заявку она попадает в систему и потом снимается ? ПОЧЕМУ? По каким таким причинам?
* в конце дня при выставлении связных заявок., Снимаются обе связанные заявки.
 
Подскажите пожалуйста почему получается такая ситуация!
В течении дня исполняется вот такая часть кода:

tr.TRANS_ID=tostring(o_id); tr.QUANTITY=tostring(lot); tr.OPERATION="S"
tr.STOPPRICE=tostring(Round(dw_price-0.2,2)); tr.PRICE=tostring(Round(dw_price-0.25,2))
tr.LINKED_ORDER_PRICE=tostring(Round(up_price,2)); sendTransaction(tr)

tr.TRANS_ID=tostring(c_id); tr.QUANTITY=tostring(lot); tr.OPERATION="B"
tr.STOPPRICE=tostring(Round(up_price+0.2,2)); tr.PRICE=tostring(Round(up_price+0.25,2))
tr.LINKED_ORDER_PRICE=tostring(Round(dw_price,2)); sendTransaction(tr)

С удивлением обнаруживаю в конце дня не нулевой остаток акций.
Смотрю в таблицу заявок там следующее:
снята лимитированная заявка и снят ордер рождённый стоп заявкой?
Почему? Не могу понять.
Я в ужасе!! Кто-нибудь отзовитесь пожалуйста и скажите что это неправда!!
 
Я  в УЖАСЕ!!!!

B={9,4,3,8}
C={}
C=B
C[1]=C[1]*0.5
table.sort(B)
message(tostring(C[1])..','..tostring(C[2])..','..tostring(C[3])..','..tostring(C[4]),1)

Ответ: 3,4,4.5,8

Это что правильно?
Через год работы с lua я узнаю вот такой прикол!! Почему об этом на каждом столбе не висит! И как с таким приколом можно вообще работать с этим языком? Если я просто ХОЧУ СКОПИРОВАТЬ ТАБЛИЦУ! Чума на оба ваших дома!
ещё много много раз - потокобезопасные операции, Потокобезопасность.
 
Знаю что много об этом сказано! Знаю что специально сделали потокобезопасные операции с приставкой s или с не важно..
Если сам не специалист в этой области приходится обращаться...
На конкретных примерах ОБЩЕГО вида.
--------------------------------------------
1. это небезопасно!
A={}
function OnAllTrade(alltrade)
       table.insert(A, alltrade)
end

function main()
Table={}
Table=A[1]
end
--------------------------------------------
2. А это безопасно? если нет то почему?

A,B={},{}
function OnAllTrade(alltrade)
       table.insert(A, alltrade)
       B=A
end

function main()
Table={}
Table=B[1]
end
------------------------------------------
3. аналогично?
A=0
function OnAllTrade(alltrade)
       table.insert(A, alltrade)
       A=A+alltrade.price-const_1+const_2+...
end

function main()
C=A/100
if C>const_N then ... end
end
------------------------------------------
4. ....?
A=0
function OnAllTrade(alltrade)
       table.insert(A, alltrade)
       A=A+alltrade.price-const_1+const_2+...
B=A
end

function main()
C=B/100
if C>const_N then ... end
end
----------------------------------------
5. функция getQuoteLevel2(class,sec) и т.п. вставленная внутрь main безопасна, не изменится ли таблица в процессе присваивания(чтения)?
если нет то почему? что такое хэш и в чём отличие от массива?
------------------------------------
6. Прошу, если это возможно, провести маленькую лекцию или дать ссылку где почитать
о работе терминала в плане обработки поступающей информации и взаимодействии скрипта lua с той информацией что поступила в quik. Ясно что вот колбэк он вызывается при изменениях.. НО более подробно в доступной форме, что находится в "чёрном ящике"? Что там за информационные очереди, как они меняются, почему двигаемся по этой очереди, как к этой очереди подвязываются колбэки и main...Вот такого плана... Пожалуйста! Очень прошу, потому как ни чего не понятно...
Функция main(), почему в одном случае зависает в другом нет?
 
столкнулся вот с такой проблемой
может где то уже написано дайте ссылку?!
В чём разница? И на сколько надо тормозить, чтобы он из цикла нормально выходил
-- почему здесь программа не выходит из цикл
function OnInit()
STOP=true
end

function OnStop()
STOP=false; message("- Остановлено -",3)
end

function OnClose()
STOP=false; message("- Выход из QUIK -",3)
end

function OnAllTrade(alltrade)
end

function main()
while STOP==true do N=0; N=N+1 end
end

-- а здесь нормально?

function main()
while STOP==true do sleep(1000) end
end

--а если вот поменять с 1000 на 100, иногда нормально выходит из цикла, а иногда зависает в нём на долго  :\
-- если поставить sleep(1) не выходит из цикла?
Это нормально?
Страницы: 1
Наверх