Author Archive
Автор: Николай Камынин
Для освоения работы со стаканом, выкладываю программу на QPILE, которая отображает стакан и выводит в файл время появления строки с нулевым количеством (есть такая проблема в QUIK )
PORTFOLIO_EX test5_NK;
DESCRIPTION test5 13.03.2012;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMID;
PROGRAM
‘~~~~~~~~~~~~
NEW_GLOBAL («INIT»,0)
f_name=»testNK.log»
‘~~~~~~~~~~~~~~
SECCODE=»RIH2″
CLASSCODE=»SPBFUT»
if INIT=0
CLEAR_FILE (f_name)
writeln(«testNK.log»,GET_VALUE (GET_DATETIME(),»DATETIME») )
INIT=1
end if
‘~~~~~~~~~~
DELETE_ALL_ITEMS()
M2=GET_QUOTES_II_LEVEL_DATA (CLASSCODE,SECCODE)
BID_COUNT=0+GET_VALUE(M2,»BID_COUNT») ‘количество заявок на продажу
MP3=GET_VALUE(M2,»OFFER») ‘коллекция котировок от макс к миним на продажу
FOR index FROM 0 TO BID_COUNT-1 ‘индекс от минимальной цены
i2=BID_COUNT-1-Index ‘индекс от максим цены
MP1=GET_COLLECTION_ITEM(MP3,i2) ‘котировка покупки
Q_BID=0+GET_VALUE(MP1,»QUANTITY») ‘количество
if Q_BID=0
writeln(f_name,GET_VALUE (GET_DATETIME(),»DATETIME») & «, BID») ‘пишем в файл время если ноль
end if
P_BID=0+GET_VALUE(MP1,»PRICE»)
st=SET_Value(«»,»PRICE»,P_BID)
st=SET_Value(st,»QTY»,Q_BID)
ADD_ITEM (index+1, st)
END FOR
‘~~~~~~~~~~~~~~`
MP3=GET_VALUE(M2,»BID») ‘коллекция котировок от миним цены к макс покупка
OFFER_COUNT=0+GET_VALUE(M2,»OFFER_COUNT») ‘количество заявок на покупку
FOR Index FROM 0 TO OFFER_COUNT-1 ‘индекс от макс цены к мин
i2=OFFER_COUNT-1-Index
MP1=GET_COLLECTION_ITEM(MP3,i2) ‘котировка на продажу
Q_OFFER=0+GET_VALUE(MP1,»QUANTITY») ‘количество
if Q_OFFER=0
writeln(f_name,GET_VALUE (GET_DATETIME(),»DATETIME») & «, OFFER») ‘пишем в файл время если ноль
end if
P_OFFER=0+GET_VALUE(MP1,»PRICE»)
st=SET_Value(«»,»PRICE»,P_OFFER)
st=SET_Value(st,»QTY»,Q_OFFER)
ADD_ITEM (BID_COUNT+Index+1, st)
SET_ROW_COLOR_EX (i2+1, «RGB(255,255,0)», «DEFAULT_COLOR», «RGB(255,0,0)», «RGB(0,0,255)»)
END FOR
‘~~~~~~~~~~~~~~~~~~
END_PROGRAM
PARAMETER PRICE;
PARAMETER_TITLE PRICE;
PARAMETER_DESCRIPTION PRICE;
PARAMETER_TYPE NUMERIC(6,2);
END
PARAMETER QTY;
PARAMETER_TITLE QTY;
PARAMETER_DESCRIPTION QTY;
PARAMETER_TYPE NUMERIC(6,0);
END
END_PORTFOLIO_EX
примечание: при копировании в QUIK,надо заменить кавычки на правильные.