Подскажите как правильно

Страницы: 1
RSS
Подскажите как правильно
 
Добрый день, пару лет назад человек спрашивал как в lua индикаторе fractal(с вашего сайта), сместить расположение индикатора на графике. Был ответ, сделать
SetValue(Out1, 2, ConvertValue(Settings,H(Out1)+100))

SetValue(Out2, 3, ConvertValue(Settings,L(Out2)-100))

Сегодня попробовал, индикатор сместился, но повылазило куча сообщений с одной ошибкой "FRACTALS.lua:32: attempt to perform arithmetic on a nil value"

Подскажите, что еще где добавить?

 
Вот сам индикатор FRACTALS.lua

Скрытый текст
 
Здравствуйте.

Цитата
Сергей написал:
"FRACTALS.lua:32: attempt to perform arithmetic on a nil value"
Ошибка говорит о том, что на 32 строке происходит арифметическая операция со значением nil(lua пытается выполнить операцию nil + 100).
Вероятно ConvertValue(Settings,H(Out1)) возвращает nil, попробуйте добавить в код обработку данного случая.
 
Цитата
Alexey Danin написал:
попробуйте добавить в код обработку данного случая.

Спасибо большое, что ответили, но я в программировании полный ноль, по этому я ничего не понял.))
 
Цитата
Сергей написал:
Цитата
Alexey Danin написал:
попробуйте добавить в код обработку данного случая.

Спасибо большое, что ответили, но я в программировании полный ноль, по этому я ничего не понял.))
покажите скрипт
 
Приветствую, во втором сообщении код индикатора. Стандартный фрактал на lua. Мне нужно просто поднять/опустить его от графика, потому что он очень близко рисуется, мелкие свечи бывает не видно. Я делаю его в виде жирных точек, вот они сильно низко рисуются. А стандартные треугольники со сделками иногда сливаются.
 
Цитата
Сергей написал:
Приветствую, во втором сообщении код индикатора. Стандартный фрактал на lua. Мне нужно просто поднять/опустить его от графика, потому что он очень близко рисуется, мелкие свечи бывает не видно. Я делаю его в виде жирных точек, вот они сильно низко рисуются. А стандартные треугольники со сделками иногда сливаются.

можно сделать так:
----------------
В setting добавляем два значения вот так:
Settings = {
Name = "nk_FRACTALS(Fractals)",
X1 = 0.0,  -- это смещение для максимума
X2 = 0.0,  -- это смещение для минимума
Period = 5,
line = {{
Name = "Horizontal line",
Type = TYPE_LINE,
Color = RGB(140, 140, 140)
},
{
Name = "FRACTALS - Up",
Type = TYPE_TRIANGLE_UP,
Color = RGB(0, 206, 0)
},
{
Name = "FRACTALS - Down",
Type = TYPE_TRIANGLE_DOWN,
Color = RGB(221, 44, 44)
}
},
--------------------
далее   добавляем вот такую функцию
--------------------
local function nk_sm(X,N,m)   if N then return X(N)+m end  end
-----------------
и исправляем две строки в функции
-----------------
function OnCalculate(Index)
local Out1,Out2 = func(Index, Settings)
SetValue(Out1, 2, ConvertValue(Settings,nk_sm(H,Out1,Settings.X1)))
SetValue(Out2, 3, ConvertValue(Settings,nk_sm(L,Out2,Settings.X2)))
return tonumber(Settings.Horizontal_line),nil,nil
end
=================
если что не так, пишите, поправлю.
 
и еще
функция FRACTALS
это плохой индикатор из тех, которые заглядывают в будущее.
Т е индикатор -шулер.
Значения на график заносятся задним числом. Поэтому вам кажется что можно легко торговать.
----------------
Если вы построите робота на таком индикаторе то на истории этот робот будет давать прибыль а на реале - убыток.
 
 Спасибо это то, что нужно, все хорошо работает. Методом тыка сделал более универсально
X1=1.002
X2=0.998
X(N)*m
чтоб неподгонять под каждую акцию отдельно.
Страницы: 1
Читают тему
Наверх