BOSS

Вопрос по qpl

Приветствую! Может есть кто занимается qpl, думаю даже для начинающих вопрос не очень труден. 
Вроде элементарный код, но перестал код показывать данные по свече. 
Кто подскажет в чем проблема? Ранние торги не показывает c 7 до 10 утра, основные торги с 10.00 данные идут.
Что нужно подправить? Если кто знает, подскажите пожалуйста. Я так понимаю что то с серверным временем, но не вижу, где именно проблема. 

 

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

 

  • обсудить на форуме:
  • Qpile
★2
23 комментария
Нужно смещать время на последнюю свечу, для чего нужно определить торговое время, день недели и исключить праздники, либо сдвигать время назад до первых данных >0. Жужжать будет как рой пчёл.
avatar
bozon, спасибо за коммент. Подскажи, тебе видно в чем причина, что с 7 до 10 не работает, а после 10 все в норме?
avatar
Саня, я вообще первый раз читаю про торговлю с 7 до 10. На сколько я знаю, торги начинаются с 10.
avatar
bozon, срочка теперь с 7.
avatar
Саня, возможно по утрам не проходит проверка соединения.
Попробуйте убрать эти строки:
IF IS_CONNECTED()<>1
RETURN
END IF
avatar
Вот это проверяйте
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
Видно, время приходит как 70000. Это 5 символов, а в 100000 — 6.
А дальше ваш код рассчитывает, что будет 6 символов и всё едет.
IF SUBSTR(SERVERTIME,0,1)>6
*тут код если до 10 часов*
ELSE
*тут код после 10 часов*
END IF

avatar
Или просто замените 
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
на
SERVERTIME=GET_INFO_PARAM(«SERVERTIME»)
IF SUBSTR(SERVERTIME,0,1)>6
SERVERTIME=«0»&SERVERTIME
END IF
avatar
bascomo, спасибо, но не получается…
avatar
Саня, если с первого раза не получилось — то парашютный спорт не для вас
avatar
bascomo, да… так и есть. 
avatar
Саня, а что говорит? Кавычки может на правильные поменять
avatar
bascomo, да, в кавычках тоже крылась проблемка :) Мне подсказали, все работает. Вам тоже спасибо. 
avatar
Саня, Так а что изменил то? У меня такая же проблема. 
NikGood, ну извини, брат, что поделать если я не понимаю в этом… Тем более что код на просторах сети находил, правда немного корректировал. 
avatar
NikGood, а +0 к LEN зачем?
avatar
NikGood, а что, результат LEN может быть строкой?))
avatar
NikGood, у индусов учился, что ли?))
avatar

теги блога Саня

....все тэги



UPDONW
Новый дизайн