Проблемы с получением значения индикаторов.

Страницы: 1
RSS
Проблемы с получением значения индикаторов., При чтении значения графика (индикатора) считывается "0" Раньше это было редким случаем, а теперь это гораздо больше половины значений!!!
 
Привожу пример, где раз в секунду получаем значение графика CCI и записываем в файл.
Как с этим бороться я не знаю.

0      11:47:11
0      11:47:12
0      11:47:13
0      11:47:14
0      11:47:15
0      11:47:16
0      11:47:17
0      11:47:18
0      11:47:19
0      11:47:20
0      11:47:21
0      11:47:22
0      11:47:23
0      11:47:24
0      11:47:25
0      11:47:26
0      11:47:27
0      11:47:28
0      11:47:29
0      11:47:30
0      11:47:31
0      11:47:32
0      11:47:33
0      11:47:34
0      11:47:35
0      11:47:36
0      11:47:37
0      11:47:38
0      11:47:39
0      11:47:40
0      11:47:41
0      11:47:42
0      11:47:43
0      11:47:44
0      11:47:45
0      11:47:46
0      11:47:47
0      11:47:48
0      11:47:49
0      11:47:50
-80.18081      11:47:51
-73.325852      11:47:52
-73.325852      11:47:53
-73.325852      11:47:54
-73.325852      11:47:55
-73.325852      11:47:56
-73.325852      11:47:57
-73.325852      11:47:58
-73.325852      11:47:59
0      11:48:00
0      11:48:01
0      11:48:02
0      11:48:03
0      11:48:04
0      11:48:05
0      11:48:06
0      11:48:07
0      11:48:08
0      11:48:09
0      11:48:10
0      11:48:11
0      11:48:12
0      11:48:13
0      11:48:14
0      11:48:15
0      11:48:16
0      11:48:17
0      11:48:18
0      11:48:19
0      11:48:20
0      11:48:21
0      11:48:22
0      11:48:23
0      11:48:25
0      11:48:26
0      11:48:27
0      11:48:28
0      11:48:29
0      11:48:30
0      11:48:31
0      11:48:32
0      11:48:33
0      11:48:34
0      11:48:35
0      11:48:36
0      11:48:37
0      11:48:38
0      11:48:39
0      11:48:40
0      11:48:41
0      11:48:42
0      11:48:43
0      11:48:44
0      11:48:45
0      11:48:46
0      11:48:47
0      11:48:48
0      11:48:49
0      11:48:50
0      11:48:51
0      11:48:52
0      11:48:53
-63.830658      11:48:54
-63.830658      11:48:55
-63.830658      11:48:56
-63.830658      11:48:57
-63.830658      11:48:58
-63.830658      11:48:59
0      11:49:00
0      11:49:01
0      11:49:02
0      11:49:03
0      11:49:04
0      11:49:05
0      11:49:06
0      11:49:07
0      11:49:08
0      11:49:09
0      11:49:10
0      11:49:11
0      11:49:12
0      11:49:13
0      11:49:14
0      11:49:15
0      11:49:16
0      11:49:17
0      11:49:18
0      11:49:19
0      11:49:20
0      11:49:21
0      11:49:22
0      11:49:23
0      11:49:24
0      11:49:25
0      11:49:26
0      11:49:27
0      11:49:28
0      11:49:29
0      11:49:30
0      11:49:31
0      11:49:32
0      11:49:33
0      11:49:34
0      11:49:35
0      11:49:36
0      11:49:37
0      11:49:38
0      11:49:39
0      11:49:40
0      11:49:41
0      11:49:42
0      11:49:44
0      11:49:45
0      11:49:46
0      11:49:47
0      11:49:48
0      11:49:49
0      11:49:50
0      11:49:51
-13.426108      11:49:52
-13.426108      11:49:53
1.020326      11:49:54
1.020326      11:49:55
1.020326      11:49:56
4.640235      11:49:57
4.640235      11:49:58
8.252609      11:49:59
0      11:50:00
0      11:50:01
0      11:50:02
0      11:50:03
0      11:50:04
0      11:50:05
0      11:50:06
0      11:50:07
0      11:50:08
0      11:50:09
0      11:50:10
0      11:50:11
0      11:50:12
0      11:50:13
0      11:50:14
0      11:50:15
0      11:50:16
0      11:50:17
0      11:50:18
0      11:50:19
0      11:50:20
 
Здравствуйте,
Уточните, а как на самом деле обстоят дела?
т.е, свечки с указанным временем существуют на графике?
Если нет, проще всего добавить условие на не равенство нулю, и только после него сохраняться в файл.

также, рекомендуем задуматься о переходе на QLUA т.к. в нем гораздо больше возможностей.
 
Цитата
Sergey Gorokhov написал:
Здравствуйте,
Уточните, а как на самом деле обстоят дела?
т.е, свечки с указанным временем существуют на графике?
Если нет, проще всего добавить условие на не равенство нулю, и только после него сохраняться в файл.

также, рекомендуем задуматься о переходе на QLUA т.к. в нем гораздо больше возможностей.
День добрый!
На графике все нормально. Значения не зависают.
В скрипте так и сделано, что "0" исключается. Только когда в течении минуты информация не поступает 50 секунд это совсем плохо.
Запускать торговлю нельзя.
 
Vadim Ivanov,

Приведите полный код скрипта.
 
Привожу часть связанную с графиком.

slice = GET_CANDLE_EX ("L041_01m", TextData, TextTime)
lines = get_value (slice,"LINES")

line = Get_Collection_Item (lines, 0)
line_041 =  get_value (line, "OPEN")
line_041 = 0 + line_041
f_time = CurHour & ":" & CurMin & ":" & CurSec

'         dat041 = line_041&" "&f_time
'         WriteLn (output_data,dat041)


IF line_041 = 0
line_041 = line_041d+0
ELSE
line_041d = line_041
END IF
 
Vadim Ivanov,
Хорошо, тогда ответьте на вопросы:
Как формируется TextData?
Как формируется TextTime?
Что такое line_041d?
 
CurYear = GET_VALUE(GET_DATETIME(), "YEAR")             ' Извлекаем год
CurMonth = GET_VALUE(GET_DATETIME(), "MONTH")        ' Извлекаем месяц
IF (LEN(CurMonth) < 2)
CurMonth = "0" & CurMonth                                                ' Если один разряд добавляем "0"
END IF
CurDay = GET_VALUE(GET_DATETIME(),"DAY")                 ' Извлекаем день
IF (LEN(CurDay) < 2)                                                          ' Если один разряд добавляем "0"
CurDay = "0" & CurDay ' Если один разряд добавляем "0"
END IF
CurHour = GET_VALUE(GET_DATETIME(),"HOUR")               ' Извлекаем час
IF (LEN(CurHour) < 2)
CurHour = "0" & CurHour                                                        ' Если один разряд добавляем "0"
END IF
CurMin = GET_VALUE(GET_DATETIME(),"MIN")                    ' Извлекаем минуты
IF (LEN(CurMin) < 2)
CurMin = "0" & CurMin                                                        ' Если один разряд добавляем "0"
END IF
CurSec = GET_VALUE(GET_DATETIME(),"SEC")                ' Извлекаем секунды
IF (LEN(CurSec) < 2)
CurSec = "0" & CurSec                                                      ' Если один разряд добавляем "0"
END IF

TextTime = CurHour & CurMin & CurSec        ' Текущее время
TextData = CurYear & CurMonth & CurDay     ' Текущая дата

line_041d - переменная, куда сохраняется последнее значение не равное "0"
 
Цитата
Vadim Ivanov написал:
GET_DATETIME()
Это локальное время Вашего компьютера, и оно не обязано совпадать с временем свечек на графике.
Возвращаемся к первоначальному вопросу:
Цитата
Sergey Gorokhov написал:
т.е, свечки с указанным временем существуют на графике?
Например свечка 11:50:00 Вы говорите что скрипт выдает в ней 0, а на графике вообще есть свечка конкретно с временем 11:50:00 или нет.

Цитата
Vadim Ivanov написал:
line_041d - переменная, куда сохраняется последнее значение не равное "0"
То что переменная и так понятно, какая именно переменная? как она объявляется?

Еще раз, всех этих и возможно других вопросов можно было бы избежать если бы Вы выложили полный код скрипта.
 
Цитата
Sergey Gorokhov написал:
ЦитатаSergey Gorokhov написал:
т.е, свечки с указанным временем существуют на графике?
Например свечка 11:50:00 Вы говорите что скрипт выдает в ней 0, а на графике вообще есть свечка конкретно с временем 11:50:00 или нет.
т.к. речь про текущее значение на графике, а не про прошлое, вопрос можно читать так:
в момент когда на Вашем компьютере было 11:50:00 - 11:50:20, на графике была свечка именно с временем 11:50:00 или нет, или она сформировалась позже?
 
Я предполагал, что TextData, TextTime это время торговой системы. Если TextData, TextTime это время компьютера и оно опережает время торговой системы тогда понятно.
Ближе к вечеру смогу проверить эту версию.
 
Так оно и есть. Выровнял время компа и торговой системы, нули ушли.
 
Не подскажите, как синхронизироваться с временем сервера?
 
Vadim Ivanov,
Можно попробовать спросить у биржи про какой-нибудь NTP источник, который они считают надежным и настроить Ваш компьютер на синхронизацию с ним.
 
дата и время свечи 15й?.свеча известна.вернее её значение,дата неизвестна.

     if n_day <p_day then

       t1,n1,i1=getCandlesByIndex("TATN_close", 0, N1-n_day, n_day)--
message("n_day = "..n_day)
message("день-дата= "..????)
end
......
 
В QUIKе же есть время сервера (внизу "варемя сервера" "последняя полученная запись"). Информацию от туда возможно получать?
 
ос.дэйт?
 
Цитата
Vadim Ivanov написал:
В QUIKе же есть время сервера (внизу "варемя сервера" "последняя полученная запись"). Информацию от туда возможно получать?

Время сервера можно получить функцией GET_INFO_PARAM по параметру SERVERTIME
Да можно использовать его.
 
Vadim Ivanov,
Только учтите что время сервера также не обязано совпадать с временем биржи.
Хотя у топовых брокеров за этим следят, но все же риски есть.
 
на прошлые свечи от серверного времени считать?
 
ответили в другой теме
 
Цитата
Sergey Gorokhov написал:
Vadim Ivanov  ,
Только учтите что время сервера также не обязано совпадать с временем биржи.
Хотя у топовых брокеров за этим следят, но все же риски есть.
Спасибо Сергей!
Страницы: 1
Читают тему
Наверх