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