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

Страницы: 1
RSS
Все индикаторы на Lua
 
Здравствуйте,
Данный архив содержит примеры функций расчета индикаторов терминала QUIK.
Скачать можно по ссылке:
Все индикаторы на Lua
 
Спасибо!
Пригодится.
 
Сергей, спасибо :)
 
Выполнено обновление индикаторов. Ссылка остается прежней:
Все индикаторы на Lua

Все индикаторы переписаны с учетом проверок на возможные пропуски в данных.
Выполнен ряд мер по оптимизации.
Исправлен ряд ошибок в расчетах некоторых из индикаторов.
 
Огромное спасибо!!  В текстовом файле указан индикатор  "TR"    --True Range ("TR")  его в папке нет ,жаль.
 
echaki,
В архиве только аналоги индикаторов которые есть в QUIK.
В QUIK нет индикатора True Range, по этой причине он был удален из архива. А в readme остался по ошибке.

Если Вам нужен этот индикатор, Вы можете взять функцию для его расчета из индикатора ATR
 
Скажите, пожалуйста.
Могу ли я как-нибудь использовать два по-разному настроенных уровня Фибоначчи?
Т.е. как в Квике по умолчанию + перенастроить и сохранить другие параметры. И использовать одновременно?
 
Цитата
Alex Green написал:
Скажите, пожалуйста.
Могу ли я как-нибудь использовать два по-разному настроенных уровня Фибоначчи?
Т.е. как в Квике по умолчанию + перенастроить и сохранить другие параметры. И использовать одновременно?
Добрый день.

Да, вы можете настроить еще один уровень Фибоначчи, сохранит настройки в шаблон и использоваться Фибаначчи по умолчанию и еще один с настройками из шаблона.  
 
Да, Вас понял. Сделал так.
Скажите, а как восстановить Фибоначчи по умолчанию? А то не помню параметры.
 
Цитата
Alex Green написал:
Да, Вас понял. Сделал так.
Скажите, а как восстановить Фибоначчи по умолчанию? А то не помню параметры.
Добавьте еще одни уровни, зайдите в их настройки и примените шаблон "По умолчанию", настройки сбросятся.  
 
А где добавить еще уровни в Фибоначчи? После этого дает только сохранение, а шаблон по умолчанию не вижу?
http://prntscr.com/hdq7wk
 
Цитата
Alex Green написал:
А где добавить еще уровни в Фибоначчи? После этого дает только сохранение, а шаблон по умолчанию не вижу?
http://prntscr.com/hdq7wk
Добрый день.

Возможность добавлять тренды в шаблоны реализована в версии рабочего места 7.14 и выше.
У Вас судя по скриншоту версия ниже. Т.е необходимо обновиться.
Пункт меню Система - Получение файлов.  
 
Добрый вечер.
Спасибо. Обновил версию и всё увидел и нашёл.
 
а как настроить правильно и установить
 
Здравствуйте Sergey.
Подскажите пожалуйста для чего нужны эти индикаторы, если в Quick они и так есть?
Изучать lua начал недавно, поэтому не сочтите мой вопрос странным.
Спасибо
 
Alexandr,
Для того чтобы не было вопросов, как написать индикатор в lua.
Зачем люди их пишут в Lua? Уже не к нам вопрос.
 
Цитата
петя написал:
а как настроить правильно и установить
В архиве есть reamde файл с инструкцией.
 
Новая ссылка
 
Спасибо!
 
Здравствуйте, скачала индикаторы, установила. MFI (Bill Williams Market Facilitation Index)] выдает все столбцы красные, корректное окрашивание происходит только после того как захожу в редактирование настроек графика и нажимаю Применить, только тогда индикаторы перекрашиваются. Потом опять идут все красные, до тех пор пока не повторю нажатие "применить"
 
Алена,
ошибка найдена и исправлена. Архив на сайте обновим завтра.
Пока можно взять исправленный код индикатора ниже
Скрытый текст
 
Спасибо, подожду обновление архива.
 
Цитата
Sergey Gorokhov написал:
Новая  ссылка
Сергей, подскажите пожалуйста, в коде индикаторов что-то поменялось или поменялась только ссылка?
 
Let_it_go,
был исправлен ряд ошибок найденных клиентами.
подробного списка к сожалению нет.
 
Новая ссылка
 
Добрый день, а Вы можете написать индикаторы Laguerre на языке lua? Или подскажите где взять?))))
 
Цитата
Сергей написал:
Добрый день, а Вы можете написать индикаторы Laguerre на языке lua? Или подскажите где взять?))))
Здравствуйте,
К сожалению нет т.к. это не является нашей задачей.
Вы можете попросить написать нужный Вам индикатор у других участников форума, создав для этого ветку в разделе про Lua.
 
Добрый день!  Использовал функцию расчета индикатора из размещенной здесь библиотеки. В частности MA.
В качестве исходных данных использую таблицу полученную с помощью  CreateDataSource.
Пересчитал индикатор для всех свечей как  в описании.
Сверяю полученные данные с графиком нарисованным с помощью этой-же библиотеки, совпадает только последняя свеча, все остальные предыдущие интервалы достаточно сильно отличаются.
Что я делаю не так?
 
Привет ребята. Как сделать среднюю линию на дополнительном индикаторе? Например на Volume?
 
новая ссылка
в индикаторе ADX было лишнее округление, что приводило к искажению результатов расчета на инструментах с дробными ценами
 

Делал свою реализацию RSI так что бы она в точности совпадала с реализацией в quik.

Скачал последний файл с примерами реализаций индикаторов.

Посмотрел.

Очень сложный, не читабельный код! Разбираться в алгоритме индикатора по такому коду чрезвычайно сложно.

Комментарии в тексте кода очень бы помогли, а комментариев в коде нет.

Разобрался в вашем коде. Написал свою реализацию RSI намного проще.

Проверил. Результаты RSI она выдает такие же как у вас.

Вот моя реализация RSI.

Код
Settings = {
Name = "rsi", 
line = {{
   Name = "Horizontal line (top)",
   Type = TYPE_LINE, 
   Color = RGB(140, 140, 140)
   },
   {Name = "Horizontal line (bottom)",
   Type = TYPE_LINE, 
   Color = RGB(140, 140, 140)
   },
   {Name = "RSI2",
   Type = TYPE_LINE, 
   Color = RGB(221, 44, 44)
   }
   },
Horizontal_line="20"
}

function Init()
smoothUp={}   --в этом массиве храним сглаженные значения периодов роста
smoothDown={}--в этом массиве храним сглаженные значения периодов падения
return #Settings.line
end
-----------------------------------------------------------
function OnCalculate(Index)
local Out =RSI(Index)
local HL = tonumber(Settings.Horizontal_line)

if HL then
   return 50+HL,50-HL,Out
else
   return nil,nil,Out
end
end
-----------------------------------------------------------
function RSI(I)-- функция выдает значение RSI для свечи номер I
local valUp,valDown

if I==1 then   --Для 1-й свечи результата нет
   return
end

local Val=C(I)      --Цена закрытия в эту минуту
local ValPrev=C(I-1)   --Цена закрытия в предыдущую минуту

if Val>=ValPrev then   --Если цена закрытия уувеличилась
   valUp=Val-ValPrev
   valDown = 0
else 
   valUp=0
   valDown=ValPrev-Val
end

if I==2 then      --для 2-й свечи устанавливает сглаженное значение
   smoothUp[I]=valUp
   smoothDown[I]=valDown
else            --Для свечи начиная с 2-й
   smoothUp[I]=(smoothUp[I-1]*13+valUp)/14         --Вычисляем сглаженное значение этой свечи для периодов роста
   smoothDown[I]=(smoothDown[I-1]*13+valDown)/14   --Вычисляем сглаженное значение этой свечи для периодов падения
end

return 100*smoothUp[I]/(smoothUp[I]+smoothDown[I])      --получаем результирущее значение RSI
end

 
Рано радуетесь. Даже если вы не видите кролика, он все равно есть.

Например,

в одной диаграмме на минутном графике постройте график газпрома и график какого-нибудь неликвидного фьючерса.и постройте ваш индикатор ПО НЕЛИКВИДНОМУ ФЬЮЧЕРСУ. Наблюдайте за кучей ошибок исполнения.
 
Доброе время суток, а у вас есть файлы индикаторов Volume (объем) и Количество открытых позиций?
 
Здравствуйте, Раиль.
Индикаторы объёма и открытого интереса могут быть построены как с использованием индикаторов, так и без использования дополнительных lua-индикаторов.
График объёма Вы можете построить через пункт контекстного меню окна графика: ПКМ / Добавить график (индикатор). В появившемся окне выберите инструмент в качестве источника данных, а для типа графика выберите "Volume".
График открытого интереса может быть построен из Таблицы Текущих Торгов по параметру "Колво отк.поз.", либо, как и объём - через контекстное меню меню. В этом случае, в окне добавления графика необходимо нажать Новый / Изменить / История значений параметра / Количество открытых позиций.
Если Вас интересуют файлы, описывающие алгоритмы расчёта и построения данных графиков и индикаторов, то таких файлов не предоставляем.
Готовых вариантов на lua-скриптах также не распространяем. Однако, Вы можете написать их самостоятельно с использованием документации QLUA, а также следующих примеров.
 
Цитата
Рустам написал:
Привет ребята. Как сделать среднюю линию на дополнительном индикаторе? Например на Volume?
Ищу ответ на тот же вопрос. Как добавить для индикатора volume среднюю скользящую, это возможно в принципе? ставить раздельно два индикатора на объем неудобно, например volume & volume oscillator  
 
http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/volumeaverage.html
 
Цитата
s_mike@rambler.ru написал:
http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/volumeaverage.html
Похоже это то, что я ищу, хорошо, что есть демка, можно потестить некоторое время, понять для себя, нужно или нет.
 
подскажите, почему при добавлении индикатора Квик 7.27 выдает ошибку: attempt to compare number with nil   ?

Settings=
{
Name = "PrChannel ClosMid",
period = 55,
line=
{
{
Name = "UpChannelClose",
Color = RGB(0,128,0),
Type=TYPE_LINE,
Width=1
},
{
Name = "Middle",
Color = RGB(255,0,0),
Type=TYPE_LINE,
Width=1

},
{
Name = "DownChannelClose",
Color = RGB(0,128,0),
Type=TYPE_LINE,
Width=1
}

}

}
function Init() -- возвр сколько линий в индикаторе
return 3
end
function OnCalculate(index)
if index<Settings.period then
return nil
else
local maximum = 0
local minimum = 1000000

for i= index - Settings.period +1, index do
if C(i)>maximum then
maximum = C(i)
end
if C(i)<minimum then
minimum = C(i)
end
end
return maximum, maximum-(maximum-minimum)/2, minimum
end

end
 
Цитата
Максим написал:
подскажите, почему при добавлении индикатора Квик 7.27 выдает ошибку: attempt to compare number with nil   ?


Скорей всего просто на графике есть пустые пропуски. Рекомендуется проверять свечки функцией CandleExist
 
Цитата
Sergey Gorokhov написал:
Цитата
Максим написал:
подскажите, почему при добавлении индикатора Квик 7.27 выдает ошибку: attempt to compare number with nil   ?


Скорей всего просто на графике есть пустые пропуски. Рекомендуется проверять свечки функцией CandleExist
а почему же в Квике 6 версии работало? Проверил график, нет там пустых пропусков.
 
Максим,

Максим, нам не известно какой график Вы смотрите, не известно какие индикаторы на нем кроме указанного, не известно какой таймфрейм, вообще ничего не известно.
Только код, на котором у нас проблема НЕ воспроизводится.
 
Цитата
Sergey Gorokhov написал:
Максим,

Максим, нам не известно какой график Вы смотрите, не известно какие индикаторы на нем кроме указанного, не известно какой таймфрейм, вообще ничего не известно.
Только код, на котором у нас проблема НЕ воспроизводится.
на любом графике вылетает эта ошибка, на графике только этот индикатор, любой таймфрейм выдает ошибку.  
 
Максим,
Ок,
Вот боевой график доллар рубль, дневной таймфрейм.


ошибки нет.
 
Максим,
Сообщите хотя бы полный текст ошибки, со всеми цифрами
 
Цитата
Sergey Gorokhov написал:
Максим,
Ок,
Вот боевой график доллар рубль, дневной таймфрейм.
 

ошибки нет.
а теперь попробуйте сдвинуть в настройках - дополнительно график на 1 интервал вперёд.
 
Цитата
Sergey Gorokhov написал:
Максим,
Сообщите хотя бы полный текст ошибки, со всеми цифрами
 
Цитата
Максим написал:
а теперь попробуйте сдвинуть в настройках - дополнительно график на 1 интервал вперёд.

Почему раньше не сообщили? Просьба впредь более подробно описывать суть проблемы.
Вы в первую очередь должны быть в этом заинтересованы.

Цитата
Максим написал:
Прикрепленные файлы
image_2020_03_13T14_52_47_347Z.png  (3.65 КБ)
Цифра 41 в данном сообщении указывает на строку где возникла ошибка.
Код
 if C(i)>maximum then


Т.е. у Вас  C(i) возвращает nil
А значит свечи нет.
И то что Вы говорите что это не так, совершенно ничего не значит.
Свечи может не быть на момент обращения к ней из-за сдвига или из-за наличия нескольких графиков.
Совет тот же, добавьте проверку через CandleExist
 
Цитата
Sergey Gorokhov написал:
Цитата
Максим написал:
а теперь попробуйте сдвинуть в настройках - дополнительно график на 1 интервал вперёд.

Почему раньше не сообщили? Просьба впредь более подробно описывать суть проблемы.
Вы в первую очередь должны быть в этом заинтересованы.

Цитата
Максим написал:
Прикрепленные файлы
image_2020_03_13T14_52_47_347Z.png  (3.65 КБ)
Цифра 41 в данном сообщении указывает на строку где возникла ошибка.
Код
    if  C(i) > maximum  then   


Т.е. у Вас  C(i) возвращает nil
А значит свечи нет.
И то что Вы говорите что это не так, совершенно ничего не значит.
Свечи может не быть на момент обращения к ней из-за сдвига или из-за наличия нескольких графиков.
Совет тот же, добавьте проверку через CandleExist
спасибо большое, вы самый грамотный программист , второй раз мне уже помогаете!!!
Страницы: 1
Читают тему (гостей: 1)
Наверх