Инструменты без запаздывания - страница 47

 

Вы никогда не спите ????

Сейчас час ночи во Франции...

Просто для уверенности. В конце, первая сумма у нас nlmprices[r-k]

это сумма всех цен или всех цен с m в качестве импульса (может быть 1, 2 или больше, как в RMI?

Я говорю это, потому что это странно с моим кодом, когда я ставлю длину>6, NonLagMa больше не на свечах, а ниже, как это не обычно с другими MA (Tillson, SSmoother и так далее).

Спасибо

Zilliq

 

Например, нелагма с длиной 4: это нормально.

Но с длиной 9 в синем намного ниже, чем, например, МА Тиллсона в красном, которая остается на свечах с длиной 6 и является более плавной.

Это логично, но NonlagMa кажется более отзывчивой, но менее плавной, так ли это?

Файлы:
 
zilliq:
Например, нелагма с длиной 4: это нормально.

Но с длиной 9 в синем намного ниже при разнице, например, с Tillson MA в красном, который остается на свечах с длиной 6 и который более плавный.

Это логично, но NonlagMa кажется более отзывчивым, но менее гладким, так ли это?

zilliq

Да. Как правило, чем более отзывчивым является какой-либо фильтр (если только это не подгоняющий/пересчитывающий фильтр), тем менее гладким он будет.

 

Я думаю, что у меня проблема с моим кодом, потому что с длиной 1, NonlagMa не находится в цене на разнице вашего кода.

Я буду искать, где проблема, похоже, в альфе.

См. U

Zilliq

 
zilliq:
Я думаю, что у меня проблема с моим кодом, потому что с длиной 1, NonlagMa не находится на цене на разнице вашего кода

Я буду искать, где находится проблема, которая, кажется, есть на alfa

См. U

Zilliq

Zillq

Длина 1 должна быть равна самой цене (каждое среднее должно возвращать саму цену для длины 1)

 

Привет, Младен,

Надеюсь, у тебя все в порядке,

Я думаю, что мне удалось закодировать Nonlagma.

И я вижу кое-что очень любопытное: кажется, что он очень похож на T3 Tillson, как вы видите на моем графике (фиолетовым цветом нелагма, а синим T3). Вы когда-нибудь видели такое и есть ли у вас объяснение? T3 более плавный и имеет такой же сдвиг "Nonlag". Я думал, что Nonlagma будет лучше.

Возможно, глупый вопрос, но что для вас является "лучшей" МА (T3, Oma, NonlagMa, Hull и т.д...), которая означает лучшее соотношение smooth/Nonlag?

Приятного вечера и спасибо за помощь

Zilliq

Файлы:
 
zilliq:
Привет, Младен,

Надеюсь, у вас все в порядке,

Я думаю, что мне удалось закодировать Nonlagma.

И я вижу кое-что очень любопытное: кажется, что она очень похожа на T3 Tillson, как вы видите на моем графике (фиолетовым - Nonlagma, синим - T3). Вы когда-нибудь видели такое и есть ли у вас объяснение? T3 более плавный и имеет такой же сдвиг "Nonlag". Я думал, что Nonlagma будет лучше.

Возможно, глупый вопрос, но что для вас является "лучшей" МА (T3, Oma, NonlagMa, Hull и т.д...), которая означает лучшее соотношение smooth/Nonlag?

Приятного вечера и спасибо за помощь

Zilliq

zilliq

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

Только когда периоды расчета достаточно длинные, тогда можно увидеть разницу. Вот сравнение T3 с периодом 25 и non lag ma - разница будет расти и расти по мере роста периода - оранжевый - non lag ma, зеленый - T3.

Файлы:
comparison.gif  65 kb
 

Спасибо, Младен,

Я понимаю, и это очень ясно на вашем графике.

Это странно, потому что когда я использую код nonlagma I на своем графике, он не так близок к цене, как на вашем графике (синий - T3 фиолетовый - Nonlagma) здесь с периодом 20

Я знаю, что это не тот же язык кода, что и в MT4, но не могли бы вы подтвердить расчет альфы, которую мы применяем к каждой цене:

*************************************

pi = 3.14159265358979323846264338327950288

Цикл = 4

Коэфф = 3*pi

Фаза = Длина-1

Len = Length*Cyclee + Phase

вес=0

сумма=0

for i=0 to Len

если i<=Фаза-1, то

t = 1.0*i/(Фаза-1)

else

t = 1.0 + (i-Фаза+1)*(2.0*Цикл-1.0)/(Цикл*Длина-1.0)

endif

beta = Cos(pi*t)

g = 1.0/(Коэф*t+1)

если t <= 0.5, то

g = 1

endif

alfa = g * beta

sum=close*alfa

вес=альфа

следующий

**************************

Потому что кажется, что у меня большая разница, и я не понимаю, почему.

После этого мы складываем все alfa*price на периоде "Length".

То же самое с alfa, мы добавляем все alfa на период Length

****************************

sum1=summation[Length](sum)

weight1=summation[Length](weight)

нонлагма=сумма1/вес1

****************************

Но у меня не та же самая Nonlagma ???

Может я что-то упустил в коде MT4?

Большое спасибо за помощь

Zilliq

Файлы:
 
zilliq:
Спасибо Младен,

Я понимаю, и это очень ясно на вашем графике.

Это странно, потому что когда я использую код nonlagma I на своем графике, он не так близок к цене, как на вашем графике (синий - T3 фиолетовый - Nonlagma) здесь с периодом 20

Я знаю, что это не тот же язык кода, что и в MT4, но не могли бы вы подтвердить расчет альфы, которую мы применяем к каждой цене:

*************************************

pi = 3.14159265358979323846264338327950288

Цикл = 4

Коэфф = 3*pi

Фаза = Длина-1

Len = Length*Cyclee + Phase

вес=0

сумма=0

for i=0 to Len

если i<=Фаза-1, то

t = 1.0*i/(Фаза-1)

else

t = 1.0 + (i-Фаза+1)*(2.0*Цикл-1.0)/(Цикл*Длина-1.0)

endif

beta = Cos(pi*t)

g = 1.0/(Коэф*t+1)

если t <= 0.5, то

g = 1

endif

alfa = g * beta

sum=close*alfa

вес=альфа

следующий

**************************

Потому что кажется, что у меня большая разница, и я не понимаю, почему.

После этого мы складываем все alfa*price на периоде "Length".

То же самое с alfa, мы добавляем все alfa на период Length

****************************

sum1=summation[Length](sum)

weight1=summation[Length](weight)

нонлагма=сумма1/вес1

****************************

Но у меня не та же самая Nonlagma ???

Может я что-то упустил в коде MT4?

Большое спасибо за помощь

Zilliq

Как работает функция cosine в вашей платформе: она использует радианы или градусы в качестве аргумента?

Косинус в Metatrader использует радианы.

 

Мы тоже используем радиан

Может быть объяснение: В коде MT4 мы умножаем alfa на цену.

Я полагаю, что это цена, которую я указывал ранее, нет?

И поэтому нам нужно добавить, например, при len 5

alfa*close[4]+alfa*close[3]+alfa*close[2]+alfa*close[1] and alfa*close

или

alfa[4]*close[4]+alfa[3]*close[3]+alfa[2]*close[2]+alfa[1]*close[1] и alfa*close ?

И это странно, потому что при длине 1 len равен 4 (4*1+0) и поэтому нонлагма не может быть равна close, потому что мы добавляем alfa*price последних 4 периодов.

Спасибо за ваши следующие комментарии

Zilliq

Я использую ваш код, но для лучшего понимания я использую самый простой код NonlagMav3

double pi = 3.1415926535;

double Coeff = 3*pi;

int Phase = Length-1;

double Len = Length*Cycle + Phase;

if ( counted_bars > 0 ) limit = Bars-counted_bars;

if ( counted_bars < 0 ) return(0);

if ( counted_bars ==0 ) limit=Bars-Len-1;

for(shift=limit;shift>=0;shift--)

{

Weight=0; Sum=0; t=0;

for (i=0;i<=Len-1;i++)

{

g = 1.0/(Coeff*t+1);

if (t <= 0.5 ) g = 1;

beta = MathCos(pi*t);

alfa = g * beta;

price = iMA(NULL,0,1,0,MODE_SMA,Price,shift+i);

Sum += alfa*price;

Вес += alfa;

if ( t < 1 ) t += 1.0/(Phase-1);

else if ( t < Len-1 ) t += (2*Cycle-1)/(Cycle*Length-1);

}

if (Weight > 0) MABuffer[shift] = Sum/Weight;

Причина обращения: