Sayın emlak,
kırmızı ile işaretli yerdeki tick'i kaldırıp (seçimi kaldırın) kaydedin.
https://i.hizliresim.com/013DLW.png
Printable View
Sayın emlak,
kırmızı ile işaretli yerdeki tick'i kaldırıp (seçimi kaldırın) kaydedin.
https://i.hizliresim.com/013DLW.png
ufuuk bey burayı unutmadınız degilmi hergün bakıyorum
Yok,dostum agır agır gidip sıradışı fikirler oluşması için zaman tanıyorum...
Sizlerden esirgedigim bilgi yok...
Hazım,sindirme,kavrama,sorgulama,irdeleme v.s aralıgı diye kabulllenin...
Çünkü,önünüze açdıgım sofradakileri mutfak sahibi (matriks) ahçı bile ????
Sizin,serşenize hediye OVERAL formuller sırada....
Teşekkürler sn Kafkaf.
MTF ler sistemi baya kasıyor zaten sistem yapmakta çok incelik gerekiyor matrikste barlar silindimi sistemin yapısıda değişiyor veya bir tarihten itibaren test et dediğinde sinyalleri etkiliyor vb. sorunlar. neyse şimdilik MTF leri rafa kaldırmış oldum
Uufuk üstadım selamlar
Daha önce forumda MTF Sma yazımı için epey ipucu vermiştiniz
MTF Ema yazımı için de yardımcı olabilir misiniz
malesef ema mtf alt periyotlarda biraz yanılıyor. sorun alt periyotlarda yeterli bar sayısı olmaması.
ben çözemedim. Sayın Uufuk çok ipucu verdi, lakin ben çözemedim.
mesela günlükte 60 ema yı 15 dk grafikte deneyin, farkı görün....
ema periyodu ne kadar büyür ve alt periyot (15dk 5 dk 1 dk) ne kadar küçülürse fark o kadar artıyor.....
hazır sorulmuş, ben de gündeme getireyim. belki ipucunu paylaşır.
Sayın Uufuk, emeğiniz büyük, ne kadar teşekkür etsek az.
ben aylardır overall sistemleri bekliyorum. belki daha iyi öğrenmemiz adına, ipucu ve ödevler ile bize öğretirsiniz.
çünkü kendi adıma açık konuşayım, çoğu şeyi sadece copy paste yapıyorum.
bu şekilde de kalıcı bir öğrenme olmuyor. sonra aynı şeyleri size tekrar tekrar soruyoruz.
Sayın Uufuk 'un yardımlarından bir derleme aşağıda.
sorun alt framede üst frame kadar bar olmaması.
dolayısıyla üst frame bar sayısının hesaplanması gerekiyor. buraya kadar olanları aşağıda paylaşayım.
üst frame nin bar sayısını hesaplamak: cum(-nw) (aşağıdaki yazışmanın özeti)
bu bar sayısı işin içine giriyor, ama nasıl derseniz ben yapamadım....
Originally Posted by ertpln
Alıntı Originally Posted by uufuk
Alıntı Originally Posted by ertpln
Alıntı Originally Posted by uufuk
Alıntı Originally Posted by ertpln
*İpin ucunu tuttun,anladın, devamını getir...
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
n1:=15; p1:=2/(n1+1);
If(nw,if(cum(1)<n1,cum(c)/cum(1),(p1*Ref(C,-1))+((1-p1)*PREV)),PREV))
fark çok azaldı, böyle kullansak olur mu?
*Bu formulde cum(1) grafik barını sayıyor değil mi?
*Halbuki size üst framenin sayılması gerek...
*Biraz daha caba ile olacak...
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
sy:=if(nw,prev+1,prev);
üst frame gün sayısı tamam, ama aklım durdu bugünlük daha fazla bir şey çıkmayacak gibi,
çalışmaya devam. akşam bakalım yeni bir fikir gelir mi.....
*nw cıktısı -1 kafan durmuş...
*Cum var ya...
(* lı satırlar sayın Uufuk'un cevapları)
Başta Sayın Uufuk ve emeği geçen herkesin tüm dostların Ramazan Bayramını kutlar, sağlıklı mutlu günler dilerim.
Değerli forumdaşlar @Uufuk üstadın paylaştığı 26 ncı mesajdaki formülü dünden bu yana arıyorum ama bulamadım. Yardımcı olursanız sevinirim!
Şimdiden başta Sayın Uufuk olmak üzere herkesin bayramını kutlarım!
Biraz vakit bulunca göz attım. Önce formülün ne dediğini/yaptığını anlamaya çalışalım.
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
n1:=15; p1:=2/(n1+1);
If(nw,(p1*Ref(C,-1))+((1-p1)*PREV),PREV)
AÇIKLAMA:
nw=-1 demek gün başı demektir. Öyleyse gün başında saat 10:00 da (yani nw=-1) bir önceki gün kapanışını ref(C-1) kullanarak ema hesaplanır ((p1*Ref(C,-1))+((1-p1)*PREV)) ve günün geri kalanında saat 10:00 dan sonra (yani nw=0) bir önceki değer (yani prev) kullanılır.
Ancaaaaak, alt frame lere geçildiğinde bir önceki günün kapanış değeri ( yani ref(c-1) ) doğru çekilmiyor ! Problem bar sayısından ziyade buradan kaynaklanıyor !!!
şu minik kodu (nw=-1 yani gün başında iken bir önceki günün kapanışını gösteren kod) kullanarak ne demek istediğimi grafik üzerinde anlatayım.
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
If(nw,REF(C-1),0)
5 dk.lık grafik'te 22 haziran günlük kapanışı 4.27 ve 21 haziran günlük kapanışı 4.06 olarak çekilmekte. Ancak GÜNLÜK grafikte baktığımızda 22 haziran günlük kapanışı 4.24 ve 21 haziran günlük kapanışı 4.04 olarak görülmekte. Demek ki alt frame lerde iken günlük kapanış datasının okunmasında problem var. Vakit bulunca bu problemi çözmek için kafa patlatırım.
Kolay gelsin.
https://i.hizliresim.com/ok3adm.png
Ema günlük için verdiğiniz kodun üzerinde uğraşıyorum.
amacım saatlik emayı 15 dk üzerinde göstermek...
sizin verdiğiniz
Nw:=DAYOFMONTH()<>ref(DAYOFMONTH(),-1);
n1:=40; p1:=2/(n1+1);
If(nw,(p1*Ref(C,-1))+((1-p1)*PREV),PREV)
kodunu
HOUR()<>ref(HOUR(),-1)
başlığı ile editledim...
Nw:=HOUR()<>ref(HOUR(),-1);
n1:=40; p1:=2/(n1+1);
If(nw,(p1*Ref(C,-1))+((1-p1)*PREV),PREV)
bu şekilde....
60dk evet aynı değeri hesaplıyor.
fakat grafiği 15 dk yada 5dk aldığımda olması gereken değeri göstermiyor. nerede yanlış yapıyorum sizce ?
n1:=14;
nw:=HOUR()<>ref(HOUR(),-1);
p1:=2/(n1+1);
nc1:=valuewhen(1,nw,Ref(C,-1));
nc2:=valuewhen(n1+1,nw,Ref(C,-1));
If(nw,(p1*Ref(C,-1))+((1-p1)*PREV),PREV)
başka formüllerinizden bölük pörcük yapmaya çalışıyorum...
momentum için kullandığınız ifadeyi buraya taşıdım.. faakat aşağıda ifli hesaplamaya nasıl dahil edeceğimi bilemedim.
teşekkür ederim.
bunu bende yaptım fakat periyot büyütünce değerler sapıttı...
sanırım data yetersizliğinden oluyor sanırım...
1440 değeri için denermisiniz
saatlik ema 15dk üzerinde yok oluyor...
oysa matriks 15 ve 60 lıklarda 1440ema hesaplıyıp grafik üzerine atıyor.
ilginiz için teşekkürler.
https://i.hizliresim.com/qJQWNW.png
bahsettiğim şey bu...
:(
https://i.hizliresim.com/3pWpA0.png
burada hatam nedir
https://i.hizliresim.com/kX7OEA.png
Üssel ortalamanın,normal açık formulunden kaynaklı hata...
Bak basit ortalamada o hata yok.Basit ortalamaya kendim açık formul yazdım...
Üssel e bir bar önceki degeri kullanmak zorunda oldugundan,daha çözüm bulamadım...
İyileştirme var ama tam sonuç daha yok...
Data sayısına oranla yüksek peryotlu ortalamada hata kaçınılmaz oluyor....
Selamlar arkadaşlar...
üstte sormuş olduğum sorular bir yana, Sayın ufuk beyin;
yardımcı olmaya çalışması vs herşey güzelde
elimde sıfır öyle çaresizce duruyorum.
Canı saolsun Ufuk bey özelden birşeyler yazdı ama olmadı olamadı...
kod bilgisine sahip biriyim ama
söz konusu mtf olunca yapamıyoruz...birazda matriks bu konuda geride...
Ufuk bey özel yerine buradan yazmamızı istediği için genele yazıyorum.
ben derdimi tekrar izah edeyim belki yardımcı olmak isteyen olur kimbilir.
5dk grafik üzerine ;
15dk 1440 ema yada sma
60dk 1440 ema yada sma
çizdirmek istiyorum.
bunun için;
Nw:=HOUR()<>ref(HOUR(),-1);
n1:=1440;
p1:=2/(n1+1);
x1:=If(nw,(p1*Ref(C,-1))+((1-p1)*PREV),PREV);
x1
ve SMA içinde
nw:=HOUR()<>ref(HOUR(),-1);
n1:=1440;
p1:=1/(n1);
nc1:=valuewhen(n1+1,nw,Ref(C,-1));
x1:=if(nw,(p1*Ref(C,-1))+(PREV-nc1*p1),PREV);
x1
kullanmaya çalıştım. (formüller ufuk beyin paylaşımıdır.)
ama bu değerde çizimi net değerlerle alamıyorum.
normalde 5 -15 60 lıklarda 1440 ema veya sma çizdirilirken mtf olarak olmuyor.
bunun bir çözümü yokmudur...
mesela https://www.tradingview.com/x/8NgzMyyC/
burada MTF EMA kodu ile;
5dk üzerinde bu görüntüyü alıyorum. tabi kodlama farklı yapıda olduğundan ve sistem bunu matrikste alamıyorum :(Kod:study("Multi Timeframe EMA", shorttitle="MTF_EMA",overlay=true)
len = input(20, title="Length", type=integer)
src = input(close, title="Source", type=source)
show5m = input(true, title="show 5m", type=bool)
show15m = input(true, title="show 15m", type=bool)
show30m = input(true, title="show 30m", type=bool)
show1h = input(true, title="show 1h", type=bool)
show2h = input(true, title="show 2h", type=bool)
show4h = input(true, title="show 4h", type=bool)
show1D = input(true, title="show 1D", type=bool)
emaCurrent = ema(src,len)
ema5m = security(ticker,"5",ema(src,len))
ema15m = security(ticker,"15",ema(src,len))
ema30m = security(ticker,"30",ema(src,len))
ema1h = security(ticker,"60",ema(src,len))
ema2h = security(ticker,"120",ema(src,len))
ema4h = security(ticker,"240",ema(src,len))
ema1D = security(ticker,"D",ema(src,len))
plot(emaCurrent, color=red, title="ema current")
plot(show5m ? ema5m : na, color=interval < 5 and not isdaily and not isweekly and not ismonthly ? #aaaaaa : na, title="ema 5m")
plot(show15m ? ema15m : na, color=interval < 15 and not isdaily and not isweekly and not ismonthly ? #999999 : na, title="ema 15m")
plot(show30m ? ema30m : na, color=interval < 30 and not isdaily and not isweekly and not ismonthly ? #888888 : na, title="ema 30m")
plot(show1h ? ema1h : na, color=interval < 60 and not isdaily and not isweekly and not ismonthly ? #777777 : na, title="ema 1h")
plot(show2h ? ema2h : na, color=interval < 120 and not isdaily and not isweekly and not ismonthly ? #666666 : na, title="ema 2h")
plot(show4h ? ema4h : na, color=interval < 240 and not isdaily and not isweekly and not ismonthly ? #555555 : na, title="ema 4h")
plot(show1D ? ema1D : na, color=not isdaily and not isweekly and not ismonthly ? #444444 : na, title="ema 1D")
SN. LEVENT DOĞAN, günlük kaçlık ortalama çizdireceksiniz alt periyotlara,
1.eğer seçtiğiniz sayı küçükse
2. indicatörün bügünkü değeri sizi ilgilendirmiyorsa
basit ortalama için aşağıdaki basit şablonu kullanabilirsiniz.
3 günlük mtf kapanış ortalaması bugün hariç
a1:=LoadDaily("X30YVADE",C,1);
a2:=LoadDaily("X30YVADE",C,2);
a3:=LoadDaily("X30YVADE",C,3);
B1:=(A1+A2+A3)/3;
B2:= MOV( B1,3,S);
B2
illa üssel ortalama lazımsa üssel ortalamanın mtf olmayan açık formülüne göre düzenleme yapmanız lazım. seçilen sayı büyükse sıkıntı yaratır mı matrikste bilmem.
https://i.hizliresim.com/vJvRLD.png
https://i.hizliresim.com/pGpol0.png
https://i.hizliresim.com/d7A2p4.png
5dk data 8000 bardır.
yani 15 dk üst frame çizilir, saatlık 1440 barlık ortalam çizilemez,çünkü data yok ...
600 küsür bardan(data) 1440 lık ortalama nasil elde edilirki...istiyorsun diye olmaz...
1440*12 =17280 bar dan fazlası lazımki son saat ortalaması hesaplansın....
Diger platformlar üst framenin datasını kullanır....ve repaint yaparlar
emaCurrent = ema(src,len)
ema5m = security(ticker,"5",ema(src,len))
ema15m = security(ticker,"15",ema(src,len))
ema30m = security(ticker,"30",ema(src,len))
ema1h = security(ticker,"60",ema(src,len))
ema2h = security(ticker,"120",ema(src,len))
ema4h = security(ticker,"240",ema(src,len))
ema1D = security(ticker,"D",ema(src,len))
Bak burada üst framenin datasını çagırıyor...
önlemin yoksa repaint
Son derece haklısınız. Lakin zaten Matriksten kaynaklandığını daha önceki yazışmalarımızdada konuşmuştuk.
Siz ema konusunda izahta ettiniz. Sonra basit ortalamaya geldik. ondada yardımı oldunuz.fakat örneklerde belirttiğiz basit ortalama bile 1440 da bende gösterdiğiniz değerleri vermiyor...
kısaca kafayı yediğim nokta bu...
mesela sma için 15dk 1440 değerini 5lik üzerinde gösterebiliyorsunuz. Ben o kodla onu bile gösteremedim. datalarım tam olduğu halde...
sizinle özelden yaptığımız son yazışmalarda kullandığınız KENDİNİ YOKLA ifadesi üzerine açık açık herşeyi kontrol edip olmayınca buraya yazdım. kısaca EVET Data Yetersiz. Matriksten kaynaklı. Fakat sizde resimlerle gösterdiğiniz SMA bile bende olamıyorken kodları yazarak buradan yardım istedim.
ilginize teşekkürler tekrardan....
iyi akşamlar
Hayır hocam, kodu yazamadım. Bayağı vakit harcadım ancak çözemedim. Tecrübe eksikliğinden kaynaklı olsa gerek diye düşünüyorum.
MOST MTF kodunun 60 dk.lık grafikte ki değeri Günlük MOST ile aynı ama daha düşük periyotlarda yani 15 dk., 5dk. ve 1 dk.lık grafiklerdeki MOST MTF değerleri, günlük MOST değerlerinden farklı çıkıyor.
Bu problem 15, 5 ve 1 dk.lık grafik lerdeki bar sayısından kaynaklanıyor ancak nasıl çözebiliriz? Ben yapamadım, kodu yazamadım.
Bu konuda sizden yardım bekliyoruz:-)
Tşk.ler...
NOT: Hocam, sen olmasan bitiğiz:-) İşin özeti bu ! Laf gevelemeye gerek yok :-)