Решил сделать себе индикатор паттерна - прошу ответить на вопросы

Автор записи: arn11555
1 звезда2 звезды3 звезды4 звезды5 звезд (Голосов 1, среднее: 5,00 из 5)
Загрузка...

Вопросы:

тф= таймфрейм, вопросы задаются с учетом создания на qlua

  1. возможно ли нанести линии на график с помощью скрипта или нужно создавать индикатор?
  2. возможно ли в ячейке таблицы вывести список выпадающий с набором значений
  3. можно ли в одном скрипте обрабатывать несколько инструментов

Добавить комментарий

Решил сделать себе индикатор паттерна - прошу ответить на вопросы: 6 комментариев

  1. Здравствуйте. Есть индикатор BB.Lua и там такой код (копирую часть кода):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    
    function BB() --Bollinger Bands ("BB")
    	local BB_MA=MA()
    	local BB_SD=SD()
    return function (I, Fsettings, ds)
    local Fsettings=(Fsettings or {})
    local P = (Fsettings.Period or 20)
    local M = (Fsettings.Metod or "SMA")
    local S = (Fsettings.Shift or 2)
    local VT = (Fsettings.VType or "Close")
    local R = (Fsettings.round or "off")
    local b_ma = BB_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds)
    local b_sd = BB_SD(I, {Period=P, Metod = "SMA", VType=VT, round=R}, ds )
    if I>=P and b_ma and b_sd then
    	return rounding(b_ma, R), rounding(b_ma+S*b_sd, R), rounding(b_ma-S*b_sd, R)
    else return nil,nil,nil end
    end
    end
     
    function SD() --Standard Deviation ("SD")
    	local SD_MA=MA()
    return function (I, Fsettings, ds)
    local Out = nil
    local Fsettings=(Fsettings or {})
    local P = (Fsettings.Period or 20)
    local M = (Fsettings.Metod or "SMA")
    local VT = (Fsettings.VType or "Close")
    local R = (Fsettings.round or "off")
    local sum = 0 
    local t_ma = SD_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds) 
     
    if I>=P and t_ma then 
    		for i = I-P+1, I do
    			sum = sum + (Value(i, VT, ds) - t_ma)^2
    		end
    	Out = math.sqrt(sum / P) 
    	return rounding(Out, R) 
    else
    	return nil
    end
    end
    end

    Видно, что скользящая средняя рассчитывается 2 раза ( BB_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds) и в функции BB() и в SD()
    Пробовал как вариант, сделать b_ma в функции BB() глобальной и потом использовать значение в функции SD(), т.е. получилось
    local t_ma = b_ma , вместо local t_ma = SD_MA(I, {Period=P, Metod = M, VType=VT, round=R}, ds) - всё работает
    Но наверное такое использование глобальных переменных является нецелесообразным. А можно ли как-то передать b_ma из функции BB() в SD() в качестве аргумента? Делаю это больше для навыков программирования, но может и ускорение какое-то кода будет без повторного расчета.

  2. )
    спросил - ответил
    Для снятия значения с индикатора "рукописного", тоже в меню индикатора перейти в закладку Дополнительно.
    Или просто быть внимательнее и по ночам не работать)

  3. Здравствуйте.
    Подскажите
    Для снятия значения с индикатора встроенного в Квик мы в настройках индикатора в поле "Идентификатор" вставляем Идентификатор и используем его в роботе. Как быть с "рукописным" индикатором, каким образом идентифицировать значение индикатора для робота?

  4. Раньше писал простейший индикатор. А теперь вообще забыл, что да и как. Откуда брал информацию по написанию кода также не помню. Не подскажите, есть где-то инструкция по этому по-воду, что-то ничего найти не могу или только можно смотреть, как другие индикаторы написаны и действовать по аналогии?

  5. 1.возможно ли нанести линии на график с помощью скрипта или нужно создавать индикатор?
    Нет, только через индикатор

    2.возможно ли в ячейке таблицы вывести список выпадающий с набором значений
    Средствами QLua невозможно, только если использовать какие-то сторонние графические библиотеки.
    Либо можно при нажатии на ячейку показывать еще одну таблицу со значениями и по клику по значению в ней, заносить выбранное значение в исходную таблицу.

    3.можно ли в одном скрипте обрабатывать несколько инструментов
    Да