Все индикаторы на Lua

Страницы: Пред. 1 2
RSS
Все индикаторы на Lua
 
Не нашел ни одного скрипта отслеживающего такой параметр, как количество сделок, на ммвб он доступен.   :what:
 
Здравствуйте, Kander.

Если речь идёт о параметре "Количество сделок за сегодня", можно написать такой скрипт, которые будет работать с этим параметром, при условии, что сервер брокера получает этот параметр из торговой системы МБ.
Проверить это можно по списку доступных параметров для рассматриваемого класса в окне настройки фильтра списка заказываемых классов и инструментов и параметров ( в терминалах 8.12 и новее - это пункт меню Система/Настройки/Основные настройки/Программа/Получение данных/Котировки).

Если параметр недоступен - можно обратиться к брокеру и уточнить у него, возможно ли обеспечить трансляцию этого параметра.
Если параметр доступен - Вы можете заказать его терминалом, например, явным образом отметив параметр для заказа, или используя умный заказ данных. Название параметра для заказа данных по нему с использованием функций QLUA - "NUMTRADES".
 
Цитата
Andrey Bezrukov написал:
Здравствуйте, Kander.

Если речь идёт о параметре "Количество сделок за сегодня", можно написать такой скрипт, которые будет работать с этим параметром, при условии, что сервер брокера получает этот параметр из торговой системы МБ.
Проверить это можно по списку доступных параметров для рассматриваемого класса в окне настройки фильтра списка заказываемых классов и инструментов и параметров ( в терминалах 8.12 и новее - это пункт меню Система/Настройки/Основные настройки/Программа/Получение данных/Котировки).

Если параметр недоступен - можно обратиться к брокеру и уточнить у него, возможно ли обеспечить трансляцию этого параметра.
Если параметр доступен - Вы можете заказать его терминалом, например, явным образом отметив параметр для заказа, или используя умный заказ данных. Название параметра для заказа данных по нему с использованием функций QLUA - "NUMTRADES".
Хотелось бы индикатор, показывающий среднюю величину сделки, только не за сегодня, а "общее количество", только без всяких сглаживаний. Аналогично индикатору объема, с возможностью вывода в виде линии, гистограммы и т.д. Раз его не существует, значит и согласовывать не надо не с кем по поводу авторских прав. Если есть возможность добавьте его в quik или хотя бы в архив
 
Kander,

Если Вас интересует параметр, отображающие количество "всех сделок" за "всё время торгов", т.е. за текущую торговую сессию, + все прошедшие - то у нас нет информации о том, чтобы какая-либо биржа транслировала эту информацию. Наиболее вероятно, она не транслируется вовсе.

Пожелания по написанию и добавлению скриптов в рабочее место QUIK мы не принимаем, т.к. эта задача может быть решена пользователем самостоятельно.
Вы можете найти готовое решение, заказать его у какого-либо разработчика, либо создать его самостоятельно.

Документация по функциям QLUA и примеры доступны для скачивания с нашего сайта по ссылке:
Документация по языку LUA в QUIK и примеры
Примеры функций расчета индикаторов терминала QUIK на языке Lua.
 
Цитата
Andrey Bezrukov написал:
Если Вас интересует параметр, отображающие количество "всех сделок" за "всё время торгов", т.е. за текущую торговую сессию, + все прошедшие - то у нас нет информации о том, чтобы какая-либо биржа транслировала эту информацию. Наиболее вероятно, она не транслируется вовсе.
Странно, в справке к приложению написано совсем другое: Контрактов во всех сделках - Общее количество - Объем совершенных в текущей сессии сделок, штук. Вот такой параметр доступен для построения графика. Где неправда?
 
Kander,

Противоречия нет. Ваш первый вопрос:
Цитата
Kander написал:
Не нашел ни одного скрипта отслеживающего такой параметр, как количество сделок, на ммвб он доступен.  
Мы Вам отвечаем, что да, параметр, отражающий количество сделок за сегодня есть,  доступен обращения при помощи функций QLUA по строке "NUMTRADES".

Далее, Вы уточняете, что Вас интересуют данные не только за текущую сессию, а за весь период торгов, что мы поняли как, условно - "несколько сессий, много прошедших сессий".
Цитата
Kander написал:
Хотелось бы индикатор, показывающий среднюю величину сделки, только не за сегодня, а "общее количество"

На что мы ответили, что такого параметра ТС не транслирует, и в QUIK такого параметра нет. Вы можете только самостоятельно как-то выполнять накопление и учёт этих данных из сессии в сессию. Или построить график истории изменения параметра без использования lua-индикаторов. Возможно, если брокер ведёт накопление данных истории изменения этого параметра - Вы также получите и график за прошлые торговые сессии. Но этот момент лучше уточнить непосредственно у брокера. Для этого при добавлении графика измените источник данных с обезличенных сделок на изменения этого параметра

То, что Вы приводите в последнем сообщении - это другой параметр, но он тоже отображает данные только за текущую торговую сессию, и да, его можно использовать в скриптах на LUA и функциях QLUA. Чтобы узнать его текстовый идентификатор - Вы можете добавить его в таблицу текущих торгов и выполнить по DDE в Excel с формальными заголовками. Заголовок, указанный для этого столбца и будет его строковым идентификатором. Этот же подход можете применять и для других параметров. И по нему также можно построить график истории изменения параметра без использования LUA-индикатаров


Если же Вы имеете что-то другое и с нашей стороны имеет место недопонимание Вашей задачи - просьба подробно описать что именно Вам нужно.
 
Цитата
Andrey Bezrukov написал:
На что мы ответили, что такого параметра ТС не транслирует, и в QUIK такого параметра нет. Вы можете только самостоятельно как-то выполнять накопление и учёт этих данных из сессии в сессию.
Несколько раз перечитал, ваш ответ и нахожусь в недоумении. Что бы не припираться, я покажу скрин, а вы ответьте, что показывает параметр на графике "общее количество". Это разрешит обсуждаемый вопрос.

Скрытый текст


В справке к приложению написано, что он показывает - Объем совершенных в текущей сессии сделок, штук
Если это не количество сделок за каждую сессию, как написано в справке, то что?
 
Kander,

Контрактов во всех сделках - Общее количество - Объем совершенных в текущей сессии сделок, штук.
 
Цитата
Andrey Bezrukov написал:
Контрактов во всех сделках - Общее количество - Объем совершенных в текущей сессии сделок, штук.
Контракт и переводится как сделка. Вы можете дать вменяемый ответ, можно ссылкой на статью. Почему из вас надо сутками ответ выбивать?

О каких контрактах идет речь на скрине выше(акции Five)?
 
Цитата
Kander написал:
Цитата
Andrey Bezrukov написал:
Контрактов во всех сделках - Общее количество - Объем совершенных в текущей сессии сделок, штук.
Контракт и переводится как сделка. Вы можете дать вменяемый ответ, можно ссылкой на статью. Почему из вас надо сутками ответ выбивать?

О каких контрактах идет речь на скрине выше(акции Five)?
контракт - это обязательство, которое возникает вследствие сделки по определённым активам. Например, на акциях Газпрома возникает позиция по акциям, на фьючерсах Газпрома возникает позиция по контрактам. Контракт есть обязательство выполнить определенные действия к какому то сроку (например купить или продать акции)

не нужно наезжать, сначала имеет смысл определиться в терминологии.
 
Цитата
s_mike@rambler.ru написал:
не нужно наезжать, сначала имеет смысл определиться в терминологии.
Я не наезжаю, а как раз пытаюсь разобраться, если бы вы нормально, так что бы не возникало вопросов, заполнили справочную информацию, мы бы не тратили свое время на выяснение.

Мы сейчас не говорим о срочном рынке(деривативах), фьючерсах или опционах, мы говорим о фондовом рынке, о рынке акций. Конкретно о акциях компании "Пятерочка", график которых на скрине выше. Где есть сделки, лоты и акции, ну и их денежное выражение в валюте(лента сделок)

Откуда взялись контракты? Откуда берется информация о этих контрактах? В общей ленте сделок нет никаких контрактов. В чем измеряются эти контракты и как они соотносятся со сделками?
 
Кто-нибудь может поделиться индикатором скользящей средней Laguerre?
Я бы и сам мог написать, но формулу не до конца понял. Может, кто-нибудь может подсказать?

L0 = (1 – gamma)*Price + gamma*L0[1]
Price = ((H+L)/2)

H и L это максимум и минимум свечи? L0[1] это значение для предыдущей свечи?
 
Цитата
Dobrota написал:
Кто-нибудь может поделиться индикатором скользящей средней Laguerre?
Я бы и сам мог написать, но формулу не до конца понял. Может, кто-нибудь может подсказать?

L0 = (1 – gamma)*Price + gamma*L0[1]
Price = ((H+L)/2)

H и L это максимум и минимум свечи? L0[1] это значение для предыдущей свечи?
Судя по всему, приведённая вами формула есть разновидность скользящей средней по средним ценам свечи.

Laguerre(0) = (1-gamma) * (High+Low)/2 + gamma * Laguerre(-1)
 
   i=CountBars-1;
  while(i>=0)
  {
     L0A = L0;
     L1A = L1;
     L2A = L2;
     L3A = L3;
     L0 = (1 - gamma)*Close[i] + gamma*L0A;
     L1 = - gamma *L0 + L0A + gamma *L1A;
     L2 = - gamma *L1 + L1A + gamma *L2A;
     L3 = - gamma *L2 + L2A + gamma *L3A;

     CU = 0;
     CD = 0;
     
     if (L0 >= L1) CU = L0 - L1; else CD = L1 - L0;
     if (L1 >= L2) CU = CU + L1 - L2; else CD = CD + L2 - L1;
     if (L2 >= L3) CU = CU + L2 - L3; else CD = CD + L3 - L2;

     if (CU + CD != 0) LRSI = CU / (CU + CD);
     val1[i] = LRSI;
 i--;
}
 
Вернулся к попыткам написать скользящую среднюю LaguerreMA. Не могу найти ошибку в коде(в программировании полный новичок) - индикатор постепенно улетает куда-то в космос после нескольких первых значений. По аналогичной схеме написал уже код для других 5-6 индикаторов, там все четко отображает.
Часть кода:

function Init()
local index_1 = 0
myEMA = cached_LMA()
return 1
end

function OnCalculate(index)
if index == 0 then
return nil
end
if index ~= index_1 then
index_1 = index
return myLMA(index, Settings.value_type, Settings.gamma)
end
end

function cached_LMA()
local cache={}
local L0 = {}
local L1 = {}
local L2 = {}
local L3 = {}

return function(ind, v_t, kk)

local v_type = v_t
local index = ind
local k = kk

if index == 1 then
L0[index] = dValue(index, v_type)
L1[index] = dValue(index, v_type)
L2[index] = dValue(index, v_type)
L3[index] = dValue(index, v_type)
cache[index] = dValue(index, v_type)
else
L0[index] = (1 - k)* dValue(index-1, v_type) + L0[index-1]
L1[index] = L0[index-1] + k * L1[index-1] - k * L0[index]
L2[index] = L1[index-1] + k * L2[index-1] - k * L1[index]
L3[index] = L2[index-1] + k * L3[index-1] - k * L2[index]
cache[index] = (L0[index]+2*L1[index]+2*L2[index]+L3[index])/6

end

return cache[index]
end
end

Функция dValue просто определяет значение цены в зависимости от индекса и типа цены. Можете подсказать, в чем ошибка?
 
В начале myLMA = cached_LMA()  конечно
 
Возникла проблема, что не подгружаются вообще никакие индикаторы. Может быть я что-то делаю не так?
QUIK 8.13.3.1 предлагает на выбор запуск Lua 5.4.1 или Lua 5.3.5
Например, копирую код с этого форума от 24.05.2019 16:47:09 в файл с расширением .lua
Сервис-Луа скрипты-добавить. Жму на любом графике Добавить график (индикатор) и в списке нет нового имени...
 
Разобрался. QLUA.chm в помощь. ...расположены в папке LuaIndicators в каталоге терминала. Если папка отсутствует в
каталоге, необходимо создать ее вручную. Список скриптов не доступен из
диалога Сервисы / LUA скрипты....  
 
Индикатор RSI вылетает с ошибкой


эта строка выглядит так
Код
local val_Up = RSI_MA_U(it.l, {Period=P, Metod = M, VType=ANY}, {[it.l] = Up})

Вот код индикатора, уж не знаю какая это редакция, может не свежая.
https://disk.yandex.ru/d/jW-6QI-KglPbjw

Вызывается следующим блоком:
Код
func = RSI() ; 
local rsi_count={}                     
nk=ds[real]:Size()

for i=1,nk do rsi_count[i]=func(i, {Period=rsi_period, VType="Typical"}, ds[real]) end
   
 if rsi_count[nk]~=nil then      
  rsi0=rsi_count[nk]
  rsi1=rsi_count[nk-1]
  rsi2=rsi_count[nk-2]
  rsi3=rsi_count[nk-3]
  rsi4=rsi_count[nk-4]
  max_rsi=math.max(rsi0,rsi1,rsi2,rsi3,rsi4)
  in_rsi=math.min(rsi0,rsi1,rsi2,rsi3,rsi4)
 else
  mm (real.." "..nk.." rsi_count[num_candles]=nil") ; sleep (100)
 end

Подскажите пожалуйста, в чём может быть дело.
 
P.S. скрипт работает и всё считает нормально, но в какой-то момент вылетает с этой ошибкой.
Страницы: Пред. 1 2
Читают тему (гостей: 1)
Наверх