Aynı şey değil ama...
Trend tespitine katkı sağlaması için 9,20,50,100,200,500 barlardan oluşan ortalamaların trendini hesaplayan şöyle bir tarama sistemi yaptım.
Bunu MTF' ye dönüştürmedim, çünkü Ideal' in sorgu modülünde MTF opsiyonu var.
Ham hali şöyle:
Kod:var fi=Sistem.GrafikFiyatSec("Kapanis"); var son=Sistem.BarSayisi-1; var a=Sistem.MA(5,"Weighted", "Kapanis"); var b=Sistem.MA(20,"Weighted", "Kapanis"); var c=Sistem.MA(50,"Weighted", "Kapanis"); var d=Sistem.MA(100,"Weighted", "Kapanis"); var e=Sistem.MA(200,"Weighted", "Kapanis"); var f=Sistem.MA(500,"Weighted", "Kapanis"); var m9=Sistem.Liste(0); var m20=Sistem.Liste(0); var m50=Sistem.Liste(0); var m100=Sistem.Liste(0); var m200=Sistem.Liste(0); var m500=Sistem.Liste(0); for (int i=1; i<Sistem.BarSayisi; i++) { m9[i]=(a[i]/a[i-1])*1000; m20[i]=b[i]/b[i-1]*1000; m50[i]=(c[i]/c[i-1])*1000; m100[i]=(d[i]/d[i-1])*1000; m200[i]=(e[i]/e[i-1])*1000; m500[i]=(f[i]/f[i-1])*1000; } var c1=Sistem.Renk(255, 0, 255, 0); var c2=Sistem.Renk(255, 255, 79, 0); var c3=Sistem.Renk(255, 255, 0, 0); Sistem.SorguBaslik[0] ="Fiyat"; Sistem.SorguOndalik[0] =2; Sistem.SorguDeger[0]=fi[son]; Sistem.SorguSutunGenislik[0] = 40; //Fiyat Değişimi Sistem.SorguBaslik[1] ="%"; Sistem.SorguOndalik[1] =2; Sistem.SorguDeger[1]=((fi[son]/fi[son-1])*100)-100; Sistem.SorguSutunGenislik[1] = 35; Sistem.SorguBaslik[2] ="m9"; Sistem.SorguOndalik[2] =2; Sistem.SorguDeger[2]=m9[son]; Sistem.SorguSutunGenislik[2] = 50; if (m9[son]>m9[son-1]) Sistem.SorguHucreZeminRengi[2] = c1; else if (m9[son]==m9[son-1]) Sistem.SorguHucreZeminRengi[2] = c2; else if (3<4) Sistem.SorguHucreZeminRengi[2] = c3; Sistem.SorguBaslik[3] ="m20"; Sistem.SorguOndalik[3] =2; Sistem.SorguDeger[3]=m20[son]; Sistem.SorguSutunGenislik[3] = 50; if (m20[son]>m20[son-1]) Sistem.SorguHucreZeminRengi[3] = c1; else if (m20[son]==m20[son-1]) Sistem.SorguHucreZeminRengi[3] = c2; else if (3<4) Sistem.SorguHucreZeminRengi[3] = c3; Sistem.SorguBaslik[4] ="m50"; Sistem.SorguOndalik[4] =2; Sistem.SorguDeger[4]=m50[son]; Sistem.SorguSutunGenislik[4] = 50; if (m50[son]>m50[son-1]) Sistem.SorguHucreZeminRengi[4] = c1; else if (m50[son]==m50[son-1]) Sistem.SorguHucreZeminRengi[4] = c2; else if (3<4) Sistem.SorguHucreZeminRengi[4] = c3; Sistem.SorguBaslik[5] ="m100"; Sistem.SorguOndalik[5] =2; Sistem.SorguDeger[5]=m100[son]; Sistem.SorguSutunGenislik[5] = 50; if (m100[son]>m100[son-1]) Sistem.SorguHucreZeminRengi[5] = c1; else if (m100[son]==m100[son-1]) Sistem.SorguHucreZeminRengi[5] = c2; else if (3<4) Sistem.SorguHucreZeminRengi[5] = c3; Sistem.SorguBaslik[6] ="m200"; Sistem.SorguOndalik[6] =2; Sistem.SorguDeger[6]=m200[son]; Sistem.SorguSutunGenislik[6] = 50; if (m200[son]>m200[son-1]) Sistem.SorguHucreZeminRengi[6] = c1; else if (m200[son]==m200[son-1]) Sistem.SorguHucreZeminRengi[6] = c2; else if (3<4) Sistem.SorguHucreZeminRengi[6] = c3; Sistem.SorguBaslik[7] ="m500"; Sistem.SorguOndalik[7] =2; Sistem.SorguDeger[7]=m500[son]; Sistem.SorguSutunGenislik[7] = 50; if (m500[son]>m500[son-1]) Sistem.SorguHucreZeminRengi[7] = c1; else if (m500[son]==m500[son-1]) Sistem.SorguHucreZeminRengi[7] = c2; else if (3<4) Sistem.SorguHucreZeminRengi[7] = c3; if(m9[son]>m9[son-1]&&m20[son]>m20[son-1]&&m50[son]>m50[son-1]&&m100[son]>=m100[son-1]) { Sistem.SorguEkle(); }
"Benim liste" yi tarayınca sonuç böyle:
Koşul(filtre):
m9-m20-m50' nin eğimi düne göre artanlar, m100' ün ise minimum yatay seyir ettiği enstrümanları buluyor.
Dikkat: Fiyatın bunların altında veya üzerinde olmasını gözetmiyor!!!
Renkleri açıklamaya gerek duymuyorum...
Sütunlardaki değerler ise (x/x-1)*1000.
Örneğin (m20/ma20(önceki bar))*1000(Bu da hassasiyeti arttırmak için.
Yer İmleri