Отображение идентификатора графика в сообщении

Страницы: 1
RSS
Отображение идентификатора графика в сообщении
 
Доброго вечера.

Нужно вывести в сообщение идентификатор, который был присвоен графику, чтобы по сообщению было понятно, на каком таймфрейме появляется сигнал.
Сообщение типа:
message("Возможна точка входа на " идентификатор графика ", BUY!")

Подскажите пожалуйста, как это можно оформить?
 
Задавайте идентификатор графика в QUIKе в виде SECCODE_INDICATOR_TIMEFRAME_PARAMS,
напр RIZ8_MACD_60_15  или  SiH0_PRICE_1D
А потом в Lua, перебирая все заданные вами идентификаторы графиков, парсите их, получая, соответственно, инструмент, тип графика(индикатора), таймфрейм и список параметров.
 
Цитата
vgi написал:
Задавайте идентификатор графика в QUIKе в виде  SECCODE_INDICATOR_TIMEFRAME_PARAMS ,
напр  RIZ8_MACD_60_15   или   SiH0_PRICE_1D
А потом в Lua, перебирая все заданные вами идентификаторы графиков, парсите их, получая, соответственно, инструмент, тип графика(индикатора), таймфрейм и список параметров.
Прошу прощения, я только начала программировать, не понимаю, что означает "парсить". У меня сейчас код выглядит так:


local N=getNumCandles("RIZ8_PRICE_M1")

t,n,l=getCandlesByIndex("RIZ8_PRICE_M1", 0, N-2, 2)


function main()



if t[0].low>t[1].low

and

(t[1].high-t[1].low)/3>(t[1].high-t[1].close)

then

message("Возможна точка входа на ".. tostring (НАЗВАНИЕ ИДЕНТИФИКАТОРА)..", BUY!")

end


end

И идентификатор в QUIK - M1.
Что именно нужно переделать?
 
Цитата
Evgenia написала:
Что именно нужно переделать?
Достаточно этого:
Код
local graphic_id = "RIZ8_PRICE_M1"

function main()
    local N=getNumCandles(graphic_id)
    local t,n,l=getCandlesByIndex(graphic_id, 0, N-2, 2)
    if t[0].low>t[1].low
    and (t[1].high-t[1].low)/3>(t[1].high-t[1].close)
    then
        message("Возможна точка входа на "..graphic_id..", BUY!",2)
    end
end
 
Б
Цитата
vgi написал:
Цитата
Evgenia написала:
Что именно нужно переделать?
Достаточно этого:
Код
   local  graphic_id  =   "RIZ8_PRICE_M1" 

 function   main ()
     local  N =  getNumCandles (graphic_id)
     local  t,n,l =  getCandlesByIndex (graphic_id,  0 , N -  2 ,  2 )
     if  t[ 0 ].low > t[ 1 ].low
     and  (t[ 1 ].high - t[ 1 ].low)/ 3  > (t[ 1 ].high - t[ 1 ].close)
     then 
         message ( "Возможна точка входа на "  .. graphic_id .. ", BUY ! ", 2 )
     end 
 end 
  
Благодарю!

Если позволите, ещё вопрос... Когда ввожу идентификаторы для других графиков (например, RIZ8_PRICE_M2), начинает работать только график с последним идентификатором. Например:
Код
local graphic_id = "RIZ8_PRICE_M1"
local graphic_id1 = "RIZ8_PRICE_M2"

function main()
    local N=getNumCandles(graphic_id)
    local t,n,l=getCandlesByIndex(graphic_id, 0, N-2, 2)
    local M=getNumCandles(graphic_id1)
    local t1,n1,l1=getCandlesByIndex(graphic_id1, 0, M-2, 2)
   
    if t[0].low>t[1].low
    and (t[1].high-t[1].low)/3>(t[1].high-t[1].close)
    then
        message("Возможна точка входа на "..graphic_id..", BUY!",2)
    end
      
    if t1[0].low>t1[1].low
    and (t1[1].high-t1[1].low)/3>(t1[1].high-t1[1].close)
    then
        message("Возможна точка входа на "..graphic_id1..", BUY!",2)
    end

   end
 
То есть при таком коде выводятся сообщения только по графику RIZ8_PRICE_M2.
Подскажите пожалуйста, как можно исправить, чтобы выводились сообщения по обоим идентификаторам?
 
Нашла свою ошибку, спасибо.

Но не могу понять, почему робот работает на демо-версии QUIK, а на реальной версии запускается, но сообщения не выдаёт. Идентификаторы прописала.
 
Нашла причину ошибки, - робот не работает, когда на графике есть хотя бы один индикатор. В идентификаторе индикатора ничего не прописываю... Нужно как-то поменять код, если у меня на графике есть индикатор?
 
Цитата
Evgenia написал:
Нашла причину ошибки, - робот не работает, когда на графике есть хотя бы один индикатор. В идентификаторе индикатора ничего не прописываю... Нужно как-то поменять код, если у меня на графике есть индикатор?
Небольшое уточнение... Не работают сообщения только с индикатором из нескольких линий, которых отображается в одной области с графиком (Ishimoku, Alligator).
 
Evgenia,
Если условие if не срабатывает, проверьте что попадает в это условие, т.е. какие значения у t[0].low, t[1].low, t[1].high, t[1].close и остальные.
 
автор, я б на вашем месте воспользоваться CreateDataSource и брал "свечки" оттуда, а не с графика.
не надо будет возиться с "идентификаторами", вообще.
CreateDataSource надо вызывать один раз только. И не забывайте его закрывать в конце скрипта.
Страницы: 1
Читают тему
Наверх