BOSS
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»)
'========= ВЫВОД ДАННЫХ В ТАБЛИЦУ
OUTPUT=CREATE_MAP()
OUTPUT=SET_VALUE(OUTPUT,«TIME»,TIME)
OUTPUT=SET_VALUE(OUTPUT,«OPEN»,OPEN)
OUTPUT=SET_VALUE(OUTPUT,«HIGH»,HIGH)
OUTPUT=SET_VALUE(OUTPUT,«LOW»,LOW)
OUTPUT=SET_VALUE(OUTPUT,«VOLA»,VOLA)
DELETE_ALL_ITEMS()
ADD_ITEM(1,OUTPUT)
END_PROGRAM
PARAMETER TIME;
PARAMETER_TITLE TIME;
PARAMETER_DESCRIPTION TIME;
PARAMETER_TYPE STRING(30);
END
PARAMETER OPEN;
PARAMETER_TITLE OPEN;
PARAMETER_DESCRIPTION OPEN;
PARAMETER_TYPE NUMERIC(10,2);
END
PARAMETER HIGH;
PARAMETER_TITLE HIGH;
PARAMETER_DESCRIPTION HIGH;
PARAMETER_TYPE NUMERIC(10,2);
END
PARAMETER LOW;
PARAMETER_TITLE LOW;
PARAMETER_DESCRIPTION LOW;
PARAMETER_TYPE NUMERIC(10,2);
END
PARAMETER VOLA;
PARAMETER_TITLE VOLA;
PARAMETER_DESCRIPTION VOLA;
PARAMETER_TYPE NUMERIC(10,2);
END
END_PORTFOLIO_EX
Попробуйте убрать эти строки:
IF IS_CONNECTED()<>1
RETURN
END IF
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
Видно, время приходит как 70000. Это 5 символов, а в 100000 — 6.
А дальше ваш код рассчитывает, что будет 6 символов и всё едет.
IF SUBSTR(SERVERTIME,0,1)>6
*тут код если до 10 часов*
ELSE
*тут код после 10 часов*
END IF
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
на
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
IF SUBSTR(SERVERTIME,0,1)>6
SERVERTIME=«0»&SERVERTIME
END IF