Постов с тегом "qlua": 180

qlua


Любимая рабочая лошадка с новыми подковами.

Портировал из LUA в машинный код, один из любимых рабочих инструментов.

Аццкая смесь Homoscedasticity, Fractal dimension и некоторых «секретных ингредиентов» Probability theory, породившая приемлемый Support and Resistance, не зависящий от субъективности и настроений «прокладки» между рынком и кошельком.

Пока была в LUA больше 3-4 запустить не получалось, не «повесив» QUIK, а сейчас:
Любимая рабочая лошадка с новыми подковами.


( Читать дальше )

QUIK, LUA, Робастность и прочее...

Зачитался, я тут на днях про робастную регрессию, и очень мне захотелось «пощупать» этого зверя хоть в каком нибудь виде на графике в Квике.

Выбрал наипростейшую — "Оценочная функция Тейла – Сена"
Эта оценочная функция может быть эффективно вычислена и она нечувствительна к выбросам. Она может быть существенно более точна, чем неробастный метод наименьших квадратов для несимметричных и гетероскедастичных данных и хорошо конкурирует с неробастным методом наименьших квадратов даже для нормально распределенных данных в терминах статистической мощности.
Метод признан «наиболее популярной непараметрической техникой оценки линейного тренда»
QUIK, LUA, Робастность и прочее...

Сказано — сделано.

( Читать дальше )

Забавный клуа

    • 23 января 2017, 22:23
    • |
    • bosov
  • Еще
Вот код индикатора на клуа:

function OnCalculate(index)
   return Size(), index
end
А вот результат:

Забавный клуа

Неожиданно. На следующей свечке после добавления индикатора и далее Сайз всегда будет равен Индексу!


Матлаб из Клуа

    • 17 января 2017, 16:06
    • |
    • bosov
  • Еще
Для любителей матлаба, похоже с ним можно связаться из клуа

--require "w32" -- говорят что нужна, на практике не увидел
require "luacom"
local isrun = true

function OnStop(flag)
    isrun = false
end
function main()
--w32.CoInitialize(nil)

ML = luacom.CreateObject("matlab.application.single")
assert(ML)
ML.Visible = 1 -- не обязательно там все равно ничего в принципе не видно, но проще убить процесс если что

t = tos(0)
message("tos = " .. tostring(#t)) -- меньше 150 тк фильтр по "SPBFUT"

ML:PutWorkspaceData("C1", "base", t); -- отправляем в МЛ под именем С1
message("Put")
wd = ML:GetWorkspaceData('C1', 'base') -- а вот так получаем обратно
message("C1(1,1) = " .. tostring(wd[1][1]))
ML:Execute("r = TST;") -- в МЛ у меня эта функция пишет данные в файл и возвращает "1", если все гладко
r = ML:GetWorkspaceData('r', 'base') -- на прямую результат возвращает криво, так наверно удобнее
message("Execute TST = " .. tostring®)

ML:Quit()
ML = nil
--w32.CoUninitialize(nil)
message("end COM ML")
end

function tos(n) -- читает ТОС  в матрицу начиная с "n"
   local outcell = {}
   local cnt = 0
   nn = getNumberOf("all_trades")
   for i = n, 150 do -- для примера хватит 150 строчек, но максимум 1500 * 5
                                 -- приходится ограничить - у LuaVM случается грыжа при передаче в МЛ более чем 2000*5
      trade = getItem("all_trades", i)
      cc = trade["class_code"]
      if cc == "SPBFUT" then
         cnt = cnt + 1
         dt = trade["datetime"]
         dt = dt.hour*10000 + dt.min*100 + dt.sec
         outcell[cnt] = {trade.trade_num, trade.sec_code, trade.qty, trade.price, dt}
      end
   end
   return outcell
end

Он сказал, 'си', она пискнула, "луа, луа", он прошипел, 'шарп'

Луакнутые и сишарпнутые братья объясните убогому можно ли скрестить бульдога с носорогом при помощи LuaInterface или NLua, чисто теоретически я никаких проблем не вижу, но может уже кто уже наткнутся на «подводные камни»
Нашел тут хороший сайт quikluacsharp.ru/... Там меня напугали с аж с двумя плюсами…

JUGGLER: ЭКВИЛИБРИСТИКА ГРАФИКАМИ

Часто требуется построить какой-то график, реализующий какое-то математическое действие с другими графиками, уже построенными в терминале. В самом простом варианте это может быть разница между двумя графиками — спред. Или среднее значение между двумя графиками. Или процентное соотношение между ними. Или все что угодно иное.

 

Несколько раз мне заказывали создание таких индикаторов, каждый раз с новой формулой. Каждый раз приходилось либо писать новый индикатор для терминала либо создавать формулу для программы технического анализа. Я решил, что имеет смысл написать для этой цели универсальный инструмент. Знакомьтесь: Juggler.

Итак, имеем в качестве входящей информации:

  1. Построенный в терминале первый график. Будем называть этот график как график А. Назначим ему во вкладке «Дополнительно» произвольный идентификатор. 
  2. Построенный в терминале второй график (график В). Ему тоже назначим идентификатор на ваш выбор.
  3. Формулу для расчета необходимой нам функции.


( Читать дальше )

О торговых роботах и индикаторах Quik часть 12 (Скорость изменения мувинга)

Трейдеры! Новая торговая неделя! Новый понедельник! Новый бесплатный индикатор! 
В квике что-то я не нашел их, но много где используются также и немного «другие» мувинги, точнее это линии скорости изменения мувингов.
Теперь о параметрах: 
K — коэффицент усиления амплитуды (просто для наглядности)
periodMA — мувинг от которого в разные стороны откладываются значения
periodMA1 — мувинг, по которому считается изменение скорости
SH — сравнивает значения отдаленные на это расстояние, чтобы определить скорость 
S- сглаживание полученной линии скорости
О торговых роботах и индикаторах Quik часть 12 (Скорость изменения мувинга)


( Читать дальше )

Индикатор Горизонтальных объемов | LUA QUIK

Индикатор работает в рамках ограничений/возможностей QLUA и простоты использования, поэтому не обессудьте.

Индикатор Горизонтальных объемов | LUA QUIK



( Читать дальше )

....все тэги
UPDONW
Новый дизайн