10 luk ortlamam var ve bu ort. nın 2 katsayı çarpımı ile sLong ve sShort olarak 2 farklı ortalama elde ediyorum. ma nın bu iki ortlalamanın altında ve ya üstünde olduğu duruma göre trail adında bir yeni indikatörü ; Long ve Short olma durumuna göre kesişimlerini çizdiriyorum. 

matriks te bunu nasıl indikatör haline getiririm?

___________________________________

ma:=mov(c,10,s);

Coef1:=2;

Coef2:=2.2;

 

sLong:=ma*Coef1;

sShort:=ma*Coef2;

 

Long olma şartı:= bir önceki POS eşit değilse 1`e ve ma (1 bar önceki trail den büyükse) Long tur

Short olma şartı:= bir önceki POS eşit değilse -1`e ve ma (1 bar önceki trail den küçükse) Short tur

 

trail:= Long ise sorgula, (ma-sLong) yap: Short ise sorgula (ma+short) yap : bir önce ki POS > 0 ise sorgula MAX(ma - sLong, bir bar önceki trail değeri) : bir önce ki POS < 0 ise sorgula MAX(ma + sShort, bir bar önceki trail değeri) : ma;

 

POS:= Long ise sorgula doğru ise 1 :  Short ise sorgula -1 :  bir önce ki POS değeri;

_________________________________________________

 

tradingview için orjinal kod ve eregli üzerindeki görüntüyü en altta bulabilirsiniz. Kodu pine editör e olduğu gibi kopyalarsanız yardımcı olacaktır naçizane.https://www.tradingview.com/x/E13M7Gfr/

 

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © szrtaner

//@version=5
indicator('IZCI [livetrend]', shorttitle='IZCI', overlay=true)
length = input(10)

pLong = input(2.0) / 100
pShort = input(2.2) / 100


izci(l) =>
    Ma = nz(ta.ema(close, l),close)
   
    slLong =  Ma * pLong  // Stop Loss Long
    slShort =  Ma * pShort  // Stop Loss Short
    trail = 0.0
    trail := nz(trail[1])
    pos = 0
    pos := nz(pos[1])
    long = pos != 1 and Ma > trail
    short = pos != -1 and Ma < trail
    trail := long ? Ma - slLong : short ? Ma + slShort : pos > 0 ? math.max(Ma - slLong, trail) : pos < 0 ? math.min(Ma + slShort, trail) : Ma
    pos := long ? 1 : short ? -1 : pos
    [Ma, trail]
[m, t] = izci(length)
long = m > t
short = m < t

f1 = plot(m, color=color.new(color.lime, 0), title='Average')

f2 = plot(t, color=color.new(color.red, 0), title='Trailling Stop')

fill(f1, f2, color=m > t ? color.new(color.lime, 85) : color.new(color.red, 85))

İstediğim şey aslında MOST indikatörün açık koduymuş. 

 

Matriks Most Açık kodu

yuzde:=2;
per1:=3;
ort:=mov(c,per1,E);

ortp:=ort-(ort*yuzde/100);
ortm:=ort+(ort*yuzde/100);

line1:=if(ort<prev,ortp,if(ortp>prev,ortp,prev));
line2:=if(ort>prev,ortm,if(ortm<prev,ortm,prev));

k1:=cross(ort,ref(line2,-1));
k2:=cross(ref(line1,-1),ort);

s1:=barssince(k1)<barssince(k2);
s2:=if(s1=-1,line1,line2);
ort;s2

Maalesef Anıl beyin MOST indikatörü piyasada herkes kendine devşirmiş kimi TOMA kimi IZCI demiş . sorun bundan kaynaklı. Anıl beyi hakkını teslim edip onere etseler olmazmıydı. üzücü.