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ü.