PORTFOLIO_EX 5ka;
DESCRIPTION 5ka;
CLIENTS_LIST ALL_CLIENTS;
FIRMS_LIST ALL_FIRMS;
USE_CASE_SENSITIVE_CONSTANTS;
PROGRAM
'========= НАСТРОЙКИ
INSTRUMENT=«SRM1»
ACCOUNT=«SPBFUT....» ' ПРОПИСЫВАЕМ АККАУНТ НА ФОРТС
' *********************
'========= ПЕРЕМЕННЫЕ
'========= ДАТА И ВРЕМЯ СЕРВЕРНОЕ
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
SERVERDATE=GET_INFO_PARAM(«TRADEDATE»)
TIMESERV=SUBSTR(SERVERTIME,0,2)&SUBSTR(SERVERTIME,3,2)&SUBSTR(SERVERTIME,6,7)
HOUR=SUBSTR(TIMESERV,0,2)+0
MIN=SUBSTR(TIMESERV,2,2)+0
SEC=SUBSTR(TIMESERV,4,2)+0
TIME=TIMESERV+0
DATE=SUBSTR(SERVERDATE,6,4)&SUBSTR(SERVERDATE,3,2)&SUBSTR(SERVERDATE,0,2)
TRID=TIME&DATE
TRID=TRID+0
'========= ПРОВЕРКА СОЕДИНЕНИЯ С СЕРВЕРОМ
IF IS_CONNECTED()<>1
RETURN
END IF
OPEN=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«OPEN»)+0
HIGH=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«HIGH»)+0
LOW=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«LOW»)+0
VOLA=GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«HIGH»)+0-GET_VALUE(GET_COLLECTION_ITEM (GET_VALUE (GET_CANDLE_EX(«P55», DATE, TIME),«LINES»),0),«LOW»)
PORTFOLIO_EX LUK; DESCRIPTION Объёмы купли/продажи за интервал; CLIENTS_LIST ALL_CLIENTS; FIRMS_LIST FIRMID; PROGRAM 'Автор: Михаил Булычев 'Что делает: ' подсчитывается объёмы купли\продажи по определённому инструменту за ' заданный интервал 'Как использовать: ' В следующих строках следует указать код бумаги и код класса для ' отслеживаемого инструмента '=============================НАСТРОЙКИ=============================== SecCode="LKOH" ' Код инструмента ClassCode="TQBR" 'Код класса interv=3600 'является интервалом в секундах razn = 0 'смещение часового пояса относительно времени торговой системы. '=============================НАСТРОЙКИ=============================== FUNC is_in_interval(interval, trade_time, sys_time, hour_shift) csys_time_value=0 c_time_value=0 csys_time_value =0 + (0 + get_value(sys_time, "Hour") + hour_shift)*3600 + _ get_value(sys_time, "Min")*60 + _ get_value(sys_time, "Sec") c_time_value=0 + ((0 + substr("" & trade_time, 0, 2)) * 3600) + ((0 + substr("" & trade_time, 2, 2)) * 60) + ((0 + substr("" & trade_time, 4, 2))) csys_time_value = csys_time_value + 0 c_time_value = c_time_value + 0 k=csys_time_value - c_time_value if k <= interval result=1 else result=0 end if END FUNC buy_value=0 sell_value=0 total_value=0 sys_time = GET_DATETIME() delete_all_items() mString=create_map() j=0 n=get_number_of("ALL_TRADES") for i from 0 to n mTrade=get_item("ALL_TRADES", n-i) trade_time=get_value(mTrade, "TIME") if (get_value(mTrade, "SECCODE")= SecCode) AND (get_value(mTrade, "CLASSCODE")= ClassCode) if is_in_interval(interv, trade_time, sys_time, 0-razn) = 1 value=0+get_value(mTrade, "VALUE") j=j+1 if (get_value(mTrade, "OPERATION") = "BUY") buy_value=buy_value+value else sell_value=sell_value+value end if total_value=total_value+value else break end if end if end for mString=set_value(mString, "vol", total_value) mString=set_value(mString, "volbuy", buy_value) mString=set_value(mString, "volsell", sell_value) add_item(1, mString) END_PROGRAM PARAMETER vol; PARAMETER_TITLE vol; PARAMETER_DESCRIPTION Купили; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER volbuy; PARAMETER_TITLE volbuy; PARAMETER_DESCRIPTION Купили; PARAMETER_TYPE NUMERIC(10,0); END PARAMETER volsell; PARAMETER_TITLE volsell; PARAMETER_DESCRIPTION Продали; PARAMETER_TYPE NUMERIC(10,0); END END_PORTFOLIO_EX