ma_out=func(ds[sec]:Size(), {Period=60, Metod = "SMA", VType="Typical", round=4}, ds[sec])
ds[sec]:Size() - так писать правильно?
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
02.12.2016 10:59:58
Цитата
Sergey Gorokhov написал: Ничего не мешает сделать несколько ds, для каждой бумаги свой. Например если вместо переменной использовать таблицу ds[sec] = CreateDataSource("TQBR", sec, INTERVAL_M1)
я пробовал, но тогда данные не заходят в функцию с вашего сайта:
Ок, переформулирую вопрос. 1. Этот код работает, но он работает медленнее чем брать данные с графика через идентификатор. Почему? Где самый тяжёлый участок кода? 2. Мне надо запустить ds = CreateDataSource("TQBR", sec, INTERVAL_M1) единожды, верно? 3. Мне надо запустить ds:SetUpdateCallback() тоже единожды, верно? 4. Мне надо перебрать много бумаг. Если я сделаю так,
Код
for sec in string.gmatch(ticker_list,"%a+") do
ds = CreateDataSource("TQBR", sec, INTERVAL_M1)
ds:SetUpdateCallback()
end
а потом основной цикл программы внутри while is run
for sec in string.gmatch(ticker_list,"%a+") do
запускаются функции, проверяются условия срабатывания, идёт торговля
end
это правильно? Ведь ds будет всё время принимать значение новой бумаги и будет каша. Спасибо за ответы
Космонавт написал: У меня ведь грубая ошибка - я каждый раз внутри цикла по новой подписываюсь на свечки и ставлю колбек?
Не понятно, что мешает Вам этого не делать?
Если я вывожу колбэки в начало кода - до функции main, они не работают.
функция обратного вызова для SetUpdateCallback(), как понять, по какому инструменту она сработала?
Пользователь
Сообщений: Регистрация: 05.02.2015
01.12.2016 22:37:03
Михаил, я пытался применить ваш код для работы со многими бумагами, но не вышло. close_price=ds:C(index) - не расчитывается. Подскажите пожалуйста где ошибка.
Код
log="TESTS_ARROW_NEW.log"
f_ticker_list="BRZ6,EDZ6,SiZ6"
is_run=true
ds={}
function mycallbackforallstocks(class,security,index)
-- Теперь в колбеке нам доступны код и класс инструмента
close_price=ds:C(index)
message(close_price ,1)
-- Также доступны все параметры, которые приходят с колбеком из терминала
xxx = index
end
function DataSource(class,security,interval)
local ds = CreateDataSource(class,security,interval)
ds:SetUpdateCallback(function(...) mycallbackforallstocks(class,security,...) end)
return ds
end
function main()
for sec in string.gmatch(f_ticker_list,"%w+") do
ds[sec]=DataSource("SPBFUT", tostring(sec),INTERVAL_M1)
end
while is_run do
sleep (10)
end
end
Видает ошибку attemp to compare number with string
Вопросы по ds:Size() 1. Почему у акций на минутном графике разный ds:Size() ? 2. От чего это зависит? 3. Он у каждой акции всегда одинаковый или менятся? Если меняется, то когда и почему?
Спасибо
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
01.12.2016 14:49:28
Большое спасибо за ответы! Разрешите задать ещё вопрос. У меня робот перебирает много акций, и рассчитывать индикаторы надо для каждого из них. Вот как это выглядит сейчас. У меня ведь грубая ошибка - я каждый раз внутри цикла по новой подписываюсь на свечки и ставлю колбек? Подскажите пожалуйсте где грамотно размещать заказ свечек и обновлений? Функция MA - это готовый пример с сайта ARQA
Код
ticker_list = "AFLT,ALRS,BANE,CHMF,FEES,GAZP,GMKN,HYDR,IRAO,LKOH,MAGN,MFON,MGNT,MOEX,MTSS,NLMK,NVTK,RASP,ROSN,RSTI,RTKM,SBER,SNGS,SNGSP,TATN,URKA,VTBR"
is_run = true
function OnStop(s)
is_run = false
return 1000
end
dofile(getWorkingFolder().."\\LuaIndicators\\MA.lua") --взято с сайта ARQA
function main()
while is_run do
for sec in string.gmatch(ticker_list,"%a+") do
ds = CreateDataSource("TQBR", sec, INTERVAL_M1)
ds:SetUpdateCallback()
sleep(100)
func = MA()
ma_out=func(ds:Size(), {Period=60, Metod = "SMA", VType="Typical", round=4}, ds)
end
end
end
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
01.12.2016 10:09:23
Сергей, спасибо за пример, но не понятно как функции OnCalculate(i) удаётся обратиться ко всем требуемым 9 свечкам. Что передаётся в переменную i ?
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
01.12.2016 08:34:41
И ещё - как решить проблему - не обращаться к тем свечкам, которые не изменились.
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
01.12.2016 07:58:13
Николай, спасибо за ответ. Приведите пожалуйста формулу мувинга, которую Вы рекомендуете, там где 1 деление +1 вычитание+1 сложение.
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
30.11.2016 22:49:40
И попутно вопрос: почему мувинг рассчитанный внутри этого кода капельку, но отличается от мувинга на графике? Вот рисунок
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
30.11.2016 22:43:33
Сейчас формула такая. На примере 5-периодной Moving Average:
Код
..............................
ds=CreateDataSource(p_classcode, p_seccode, INTERVAL_M1)
ds:SetUpdateCallback(cb)
while is_run do
length=ds:Size()
sum=0
for i=0,4,1 do
sum=sum+ds:C(length-i)
end
moving5=sum/5
sleep(100)
end
end
Вычисление индикатора внутри кода
Пользователь
Сообщений: Регистрация: 05.02.2015
30.11.2016 22:09:05
Добрый день. Хочу вычислять скользящую среднюю внутри кода. Что при этом нужно учитывать? Период 14, часовик, по ценам close Казалось бы всё просто, но есть особенности: 1. Старые свечки можно не обрабатывать, а обрабатывать только текущую. 2. Но обрабатывать старые всё же придётся, ведь рисуются новые свечки, поэтому каждый раз при формировании новой свечи придётся разок пересчитать старые. Помогите пожалуйста выразить это в красивом коде. Спасибо.
Защита данных на виртуальной машине
Пользователь
Сообщений: Регистрация: 05.02.2015
28.11.2016 19:23:53
Спасибо за ответы. Последний вопрос. В RDP можно выбрать опцию и заходить на виртуалку с доступом к жёсткому диску ноутбука (домашнего компа). Системный администратор виртуалки может ли также залезть ко мне на ноутбук?
Космонавт написал: Для меня важно, чтобы сотрудники брокера не имели доступа к кодам моих роботов и файлам с настройками КВИКа
Беспокоит только это? А то, что администратор сможет управлять сессией, и подавать заявки - не беспокоит?
Интересуют только вопросы, заданные выше.
Защита данных на виртуальной машине
Пользователь
Сообщений: Регистрация: 05.02.2015
26.11.2016 18:35:32
Спасибо за ответ! А системный администратор может залогиниться и зайти на мою виртуалку как к себе домой? Увидеть рабочий стол, открытый КВИК и так далее...
Защита данных на виртуальной машине
Пользователь
Сообщений: Регистрация: 05.02.2015
26.11.2016 17:07:32
Добрый день. Хочу арендовать у брокера виртуальную машину. Для меня важно, чтобы сотрудники брокера не имели доступа к кодам моих роботов и файлам с настройками КВИКа типа info.wnd. Прошу знатоков ответить на такие вопросы. 1. Имеет ли администратор виртуальной машины доступ к файлам, которые хранятся на моём диске на виртуалке? Пароль входа разумеется будет изменён. 2. Скомпилированные файлы .luac работают также быстро как .lua? 3. Если файлы роботов вида .lua не хранятся на виртуалке, может ли администратор виртуалки увидеть эти коды из .dat-файлов КВИКа или ещё откуда-нибудь? Спасибо за ответы.
отсутствие Price на графике
Пользователь
Сообщений: Регистрация: 05.02.2015
01.11.2016 16:46:14
Добрый день. Я получаю данные Moving Average с графика через идентификатор. На днях понял, что можно удалить график Price, так как я к нему не обращаюсь. В итоге стало так:
Вопросы. Не вредит ли отсутствие Price расчётам индикатора? Не происходит ли расчёт текущего значения индикатора медленнее? Нет ли из за этого каких то особых проблем с расчётом именно текущего значения?
получение стакана при зарытом окне
Пользователь
Сообщений: Регистрация: 05.02.2015
31.10.2016 17:23:19
внезапно заработало (без каких то изменений в коде)
получение стакана при зарытом окне
Пользователь
Сообщений: Регистрация: 05.02.2015
31.10.2016 17:09:13
Не работает. Пишет что bid - нил
Код
for sec in string.gmatch(ticker_list,"%a+") do
if IsSubscribed_Level_II_Quotes(class, sec)==false then
Subscribe_Level_II_Quotes(class, sec)
end
local qt = getQuoteLevel2(class, sec)
local bid_1 = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)+0].price))
local bid_1_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)+0].quantity))
local bid_2_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-1].quantity))
local bid_3_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-2].quantity))
local bid_4_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-3].quantity))
local bid_5_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-4].quantity))
local bid_6_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-5].quantity))
local bid_7_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-6].quantity))
local bid_8_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-7].quantity))
local bid_9_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-8].quantity))
local bid_10_q = tonumber(toPrice(sec, qt.bid[tonumber(qt.bid_count)-9].quantity))
end
получение стакана при зарытом окне
Пользователь
Сообщений: Регистрация: 05.02.2015
31.10.2016 16:23:39
Как это реализовать в коде? Сначала - до main - я заказываю стаканы по нужным инструментам через Subscribe_Level_II_Quotes, а потом внутри main - получаю стакан с помощью getQuoteLevel2? Или нужно обязательно через колбек OnQuote?
получение стакана при зарытом окне
Пользователь
Сообщений: Регистрация: 05.02.2015
29.10.2016 18:29:48
Добрый день. Я по старинке держу все стаканы открытыми, когда считываю с них информацию с помощью getQuoteLevel2(class_code, sec_code) это просиходит внутри main Колбеком OnQuote не пользуюсь, нет особой надобности. Натолкнулся на сообщение, что открытое окно стакана уже не требуется. Его можно не открывать. Так ли это? Изменится ли способ получения информации со стакана? Не отразится ли это на качестве получаемой информации? Спасибо
Добавить время остановки скрипта из за ошибки
Пользователь
Сообщений: Регистрация: 05.02.2015
21.10.2016 16:51:37
Понял, спасибо. Но просьба к арке остаётся в силе.
Добавить время остановки скрипта из за ошибки
Пользователь
Сообщений: Регистрация: 05.02.2015
21.10.2016 15:50:15
не годится. Соседний робот отсылает много заявок, предложенные вами сообщения будут теряться в той строчке где читать сообщения.
Добавить время остановки скрипта из за ошибки
Пользователь
Сообщений: Регистрация: 05.02.2015
21.10.2016 13:13:27
Другие кодеры, пожалуйста поддержите!!!
Добавить время остановки скрипта из за ошибки
Пользователь
Сообщений: Регистрация: 05.02.2015
21.10.2016 13:12:56
Очень не хватает информации во сколько скрипт на Луа перестал работать из за ошибки. В строке с ошибкой пишется скупое Attempt to index field ... (a nil value).... а во сколько это произошло не понятно. Прошу добавить эту информацию в строку об ошибке.
Количество свечей на графике
Пользователь
Сообщений: Регистрация: 05.02.2015
13.10.2016 21:10:54
Добрый день. подскажите пожалуйста, что оптимизирует эта опция?
У меня открыты две сотни графиков, поэтому вопрос не праздный. Это экономит трафик? Это экономит загрузку процессора? Это экономит загрузку памяти? Это позволяет работать быстрее роботам на Луа, который обращаются к этим графикам? Ради чего полезна эта опция? Спасибо
Написать слово в файл по сети
Пользователь
Сообщений: Регистрация: 05.02.2015
13.10.2016 10:41:29
Низкий поклон, заработало!
Написать слово в файл по сети
Пользователь
Сообщений: Регистрация: 05.02.2015
13.10.2016 08:23:18
Может быть в путь надо дописывать диск D на сетевом компьютере, где лежит обрабатываемый файл?
Написать слово в файл по сети
Пользователь
Сообщений: Регистрация: 05.02.2015
13.10.2016 07:35:19
getScriptPath () если скрипт положить в эту папку пишет: \\1-пк\trash но и этот вариант даёт такую же ошибку
Написать слово в файл по сети
Пользователь
Сообщений: Регистрация: 05.02.2015
13.10.2016 07:30:14
Спасибо за подсказку, но не помогло...
Код
status_container ("\\1-пк\\trash\\VBZ6.log", 1)
даёт ту же ошибку. может быть дело в кириллице, или надо впереди ставить ещё какие то символы?
Написать слово в файл по сети
Пользователь
Сообщений: Регистрация: 05.02.2015
13.10.2016 00:19:30
Код
function status_container(file_path,value)
cf=io.open(file_path,"w+")
cf:write(value)
cf:flush()
cf:close()
end
status_container ("\\1-пк\trash\VBZ6.log", "uraaaa") --пишем слово в файл
Выдаёт ошибку: Это попытка написать слово в файл по сети. Ошибка в адресе, так как на "родной" комп всё пишет. Как правильно написать адрес файла на другом компьютере?
Не получать данные индикатора повторно
Пользователь
Сообщений: Регистрация: 05.02.2015
10.10.2016 17:37:16
Господа, прошу помочь оптимизировать код. Я знаю что опытные программисты полностью избегают многократного получения одних и тех же данных индикатора. Я так не умею, мой код выглядит так:
Код
до функции main
ticker_list = "AFLT,ALRS,BANE,CHMF,FEES,GAZP,GMKN,HYDR,IRAO,LKOH,MAGN,MFON,MGNT,MOEX,MTLR,MTSS,NLMK,NVTK,RASP,ROSN,RSTI,RTKM,SBER,SIBN,SNGS,SNGSP,TATN,URKA,VTBR"
indicator={}
внутри main:
for sec in string.gmatch(ticker_list,"%a+") do
sleep (1000)
--получаем данные индикатора RSI
chart_inst=tostring("RSI_"..sec)
RSI_n = getNumCandles (chart_inst)
indicator[sec].rsi_0 = getCandlesByIndex(chart_inst,0,RSI_n-1,1)[0].close
indicator[sec].rsi_1 = getCandlesByIndex(chart_inst,0,RSI_n-2,1)[0].close
indicator[sec].rsi_2 = getCandlesByIndex(chart_inst,0,RSI_n-3,1)[0].close
indicator[sec].rsi_3 = getCandlesByIndex(chart_inst,0,RSI_n-4,1)[0].close
indicator[sec].rsi_4 = getCandlesByIndex(chart_inst,0,RSI_n-5,1)[0].close
indicator[sec].rsi_5 = getCandlesByIndex(chart_inst,0,RSI_n-6,1)[0].close
indicator[sec].rsi_6 = getCandlesByIndex(chart_inst,0,RSI_n-7,1)[0].close
indicator[sec].rsi_7 = getCandlesByIndex(chart_inst,0,RSI_n-8,1)[0].close
indicator[sec].rsi_8 = getCandlesByIndex(chart_inst,0,RSI_n-9,1)[0].close
indicator[sec].rsi_9 = getCandlesByIndex(chart_inst,0,RSI_n-10,1)[0].close
indicator[sec].rsi_10 = getCandlesByIndex(chart_inst,0,RSI_n-11,1)[0].close
indicator[sec].rsi_11 = getCandlesByIndex(chart_inst,0,RSI_n-12,1)[0].close
indicator[sec].rsi_12 = getCandlesByIndex(chart_inst,0,RSI_n-13,1)[0].close
indicator[sec].rsi_13 = getCandlesByIndex(chart_inst,0,RSI_n-14,1)[0].close
indicator[sec].rsi_14 = getCandlesByIndex(chart_inst,0,RSI_n-15,1)[0].close
indicator[sec].rsi_15 = getCandlesByIndex(chart_inst,0,RSI_n-16,1)[0].close
indicator[sec].rsi_16 = getCandlesByIndex(chart_inst,0,RSI_n-17,1)[0].close
indicator[sec].rsi_17 = getCandlesByIndex(chart_inst,0,RSI_n-18,1)[0].close
indicator[sec].rsi_18 = getCandlesByIndex(chart_inst,0,RSI_n-19,1)[0].close
indicator[sec].rsi_19 = getCandlesByIndex(chart_inst,0,RSI_n-20,1)[0].close
indicator[sec].rsi_20 = getCandlesByIndex(chart_inst,0,RSI_n-21,1)[0].close
анализируем полученные данные. Для анализа нужны все 21 значение.
end
То есть каждый раз робот делает лишние действия - получает свечи, которые не поменялись и уже не поменяются. Прошу подсказки как не получать все значения на каждой итерации, а получать только свежую свечу - текущую, то есть indicator[sec].rsi_0
Почему размер таблицы 0?
Пользователь
Сообщений: Регистрация: 05.02.2015
09.10.2016 21:23:46
а как в моей таблице посчитать количество элементов? обходить циклом и считать счётчиком?
Почему размер таблицы 0?
Пользователь
Сообщений: Регистрация: 05.02.2015
09.10.2016 16:20:59
Код
log="тесты.log"
ticker_list = "AFKS,AFLT,AKRN,ALRS,AVAZP,BANE,BANEP,CHMF,DIXY,FEES,GAZP,GCHE,GMKN,GRAZ,HYDR,IRAO,KMAZ,LKOH,LNTA,LSRG,MAGN,MFON,MGNT,MOEX,MSNG,MSRS,MSTT,MTLR,MTLRP,MTSS,MVID,NLMK,NMTP,NVTK,OGKB,PHOR,PIKK,PLZL,POLY,PRTK,RASP,ROSN,RSTI,RSTIP,RTKM,RTKMP,RUALR,SBER,SBERP,SIBN,SNGS,SNGSP,SVAV,TATN,TATNP,TGKA,TRMK,TRNFP,URKA,VTBR,VZRZ,VZRZP,YNDX"
lot={}
for sec in string.gmatch(ticker_list,"%a+") do
lot[sec]=getParamEx("TQBR",sec,"lotsize").param_value
end
toLog (log, lot)
toLog (log, #lot)
Таблица заполняется правильно: YNDX=1.000000;LNTA=1.000000;VZRZ=1.000000;BANEP=1.000000;...................и так далее. Вопрос: Почему #lot=0 и table.maxn (lot)=0? Ведь должен посчитаться размер таблицы.
В чём преимущество OnInit
Пользователь
Сообщений: Регистрация: 05.02.2015
09.10.2016 14:32:42
Никогда не пользовался колбеком OnInit. Обычно я инициализирую переменные до начала main как то так:
Код
stop_loss_pc=3
MAsteps=1
is_run = true
send_order=false
for sec in string.gmatch(ticker_list,"%a+") do
lot[sec]=getParamEx(class,sec,"lotsize").param_value
step[sec]=getParamEx(class,sec,"SEC_PRICE_STEP").param_value
--задаём первоначальные бид, аск и ласт
last_price[sec]=tonumber(getParamEx(class,sec,"last").param_value)
if last_price[sec]==0 or last_price[sec]==nil then
last_price[sec]=tonumber(getParamEx(class,sec,"prevprice").param_value)
toLog (log, sec.." при запуске нет цены последней сделки "..type(last_price[sec]))
end
tablebid = getParamEx(class, sec, "bid") --получаем таблицу "bid"
bid_best[sec]=tonumber(toPrice(sec, tablebid.param_value)) --из таблицы берЄм значение
tableoffer = getParamEx(class, sec, "offer") --получаем таблицу "offer"
offer_best[sec]=tonumber(toPrice(sec, tableoffer.param_value)) --из таблицы берЄм значение
end
Зачем нужен OnInit? В него помещается такой же кусок кода? В чём преимущество? Спасибо.
Как работать с ParamRequest
Пользователь
Сообщений: Регистрация: 05.02.2015
09.10.2016 10:58:46
Добрый день. Мануал по QLUA очень скупо сообщает про функцию ParamRequest. Не могу понять как с ней работать. Мне надо получить цену последней сделки по RIZ6.
s=ParamRequest("SPBFUT", "RIZ6", "last") s приобретает значение true.
Ну и.... какая мне от этого польза?
Как описать канал на луа
Пользователь
Сообщений: Регистрация: 05.02.2015
08.10.2016 20:24:29
Нет. Предложенный вами алгоритм будет считать каналом любые лежащие рядом два фрактала. Мне нужен алгоритм, который шерстит график на предмет наличия как минимум трёх (а лучше четырёх-пяти) идущих подряд фракталов, лежащих на одной прямой. И то же самое - 4 или 5 фракталов с противоположной стороны на противоположной параллельной прямой. И только тогда робот скажет: о, это же канал! Я не вижу другого способа кроме как: 1. Измеряем количество свечек между двумя фракталами последним и предпоследним. 2. Считаем скорость от фрактала к фракталу: например 3,7789 пункта за таймфрейм. 3. Измеряем количество свечек между двумя фракталами: предпоследним и пред-предпоследним. 4. Считаем скорость между ними. 5. Если она близка к 3,7789, значит три подряд фрактала лежат на прямой линии. 6. В этом случаем проверяем аналогичные условия у верхних фракталов 7. Если верхние фракталы (три подряд) тоже лежат на прямой, измеряем параллельность двух прямых. 8. По факту параллельности-непараллельности делаем вывод о том канал это или нет. (Это может оказаться не каналом а сходящимся-расходящимся треугольником)
Как описать канал на луа
Пользователь
Сообщений: Регистрация: 05.02.2015
08.10.2016 18:37:46
Владимир, канал должен быть ровным, то есть три фрактала лежат так, что по ним можно провести прямую линию. Ваш алгоритм этот момент никак не описывает.
Как описать канал на луа
Пользователь
Сообщений: Регистрация: 05.02.2015
08.10.2016 17:47:27
Цитата
swerg написал: Для этого вам надо на русском языке сформулировать правила, по которым вы определяете, что есть канал.
это не просто, и это тоже вопрос к другим участникам форума. Есть версия идти по пути наложения фракталов. Считается скорость отрезка от фрактала к фракталу: пунктов за 1 тайм-фрейм. Если она одинаковая у двух близлежащих отрезков, значит это канал.
Как описать канал на луа
Пользователь
Сообщений: Регистрация: 05.02.2015
08.10.2016 15:58:29
Господа, прошу помочь советом. Как на луа описать наличие на графике канала? Чтобы робот мог продать, когда цена пробьёт канал вниз или вверх. Спасибо за помощь и советы.
проверка файла на существование
Пользователь
Сообщений: Регистрация: 05.02.2015
07.10.2016 11:00:45
Цитата
написал:
или
библиотека lfs
лежит в папке с луа какой то lfs.dll Это о нём речь? А то я не программист, и плохо разбираюсь. А за функцию спасибо, скорее всего возьму её.
проверка файла на существование
Пользователь
Сообщений: Регистрация: 05.02.2015
07.10.2016 10:49:09
помогите пожалуйста написать кусок кода
Код
function status_container(file_path,value)
cf=io.open(file_path,"w+")
cf:write(value)
cf:flush()
cf:close()
end
Если файл существует, не трогать его. Если не существует, то с помощью функции status_container(file_path,value) создать его и вписать в него переменную x. Спасибо
Получить таймфрейм графика
Пользователь
Сообщений: Регистрация: 05.02.2015
04.10.2016 12:22:15
Спасибо. То что нужно.
Получить таймфрейм графика
Пользователь
Сообщений: Регистрация: 05.02.2015
04.10.2016 07:51:12
Добрый день. Можно ли средствами Луа получить таймфрейм графика. Это нужно вот для чего. Если таймфрейм = 15 минутка, то StopLoss=x, иначе StopLoss=y. Спасибо.
Что быстрее - DataStore или GetCandlesByIndex?
Пользователь
Сообщений: Регистрация: 05.02.2015
30.09.2016 09:38:18
Сергей, спасибо за ответ. Но тогда все индикаторы придётся считать самостоятельно в коде (если DataStore). А это отнимает вычислительные мощности.
Что быстрее - DataStore или GetCandlesByIndex?
Пользователь
Сообщений: Регистрация: 05.02.2015
30.09.2016 08:33:20
Добрый день. У меня робот мониторит больше сотни акций, по всем открыты графики. Это не праздный вопрос, а злободневный. Что продуктивнее - получать данные индикатора с графика через getCandlesByIndex или НЕ открывать графики и всё делать через заказ данных с помощью DataStore, а индикаторы считать внутри робота? 1. Что быстрее? 2. Что экономнее для ресурсов компьютера?
Спасибо.
Наложить фракталы на RSI
Пользователь
Сообщений: Регистрация: 05.02.2015
29.09.2016 21:15:11
Добрый день. можно ли в КВИКе наложить фракталы не на график цены, а на график индикатора RSI? То есть источником данных для построения фракталов должна быть кривая RSI
Показывать последние 100 интервалов
Пользователь
Сообщений: Регистрация: 05.02.2015
26.07.2016 17:32:08
хм. что значит, при свёрнутом окне? Свёрнутом окне графика или окне квика? Если свернуть, то экономится загрузка процессора? но почему?