Bir arkadaþý istemeden kýrmýþ olabilirim. Kan hýzlý akýyor.
Lütfen beni baðýþlasýn (Forumda aradým ama mesajý bulamadým)
Saðlýcakla.
Bir arkadaþý istemeden kýrmýþ olabilirim. Kan hýzlý akýyor.
Lütfen beni baðýþlasýn (Forumda aradým ama mesajý bulamadým)
Saðlýcakla.
Ayný periyoda ait sistemleri görsel kýyaslama (At yarýþý peronu gibi)
Kod:var StartDate = new DateTime(2018, 12, 1, 0, 0, 0); var SistemDictionary = new Dictionary<string, int>(); SistemDictionary.Add("A2_K5", 1); // 1 SistemDictionary.Add("A5_K5", 1); // 2 SistemDictionary.Add("C1_K5", 1); // 3 SistemDictionary.Add("C6_K5", 1); // 4 int StartBar = 0; var V = Sistem.GrafikVerileri; for (int i = 1; i < Sistem.BarSayisi; i++) { if (V[i].Date >= StartDate) { StartBar = i; break; } } // List<List<float>> GetiriList = new List<List<float>>(); int Sayac = 0; foreach (var sistemitem in SistemDictionary) { Sayac++; var MySistem = Sistem.SistemGetir(sistemitem.Key, "VIP'VIP-X030", "1"); MySistem.GetiriHesapla("01/01/2000", 0.0); GetiriList.Add(MySistem.GetiriKZ); Sistem.Cizgiler[Sayac].Deger = MySistem.GetiriKZ; } // List<float> StartList = new List<float>(); for (int j = 0; j < GetiriList.Count; j++) StartList.Add(GetiriList[j][StartBar]); for (int i = 1; i < Sistem.BarSayisi; i++) { for (int j = 0; j < GetiriList.Count; j++) { if (V[i].Date < StartDate) GetiriList[j][i] = 0; else GetiriList[j][i] -= StartList[j]; } } // var OrtList = Sistem.Liste(0); for (int i = 1; i < Sistem.BarSayisi; i++) { if (V[i].Date.DayOfWeek < V[i - 1].Date.DayOfWeek) Sistem.DikeyCizgiEkle(i, Color.FromArgb(70, 70, 70), 2, 2); float Toplam = 0; for (int j = 0; j < GetiriList.Count; j++) Toplam += GetiriList[j][i]; OrtList[i] = Toplam / GetiriList.Count; } Sistem.Cizgiler[0].Deger = OrtList; // for (int j = 0; j < GetiriList.Count; j++) { Sistem.Dortgen(2, 40, j * 40 + 30, 120, 35, Color.Black, Color.Black, Color.Silver); Sistem.GradientYaziEkle(SistemDictionary.ElementAt(j).Key, 2, 50, j * 40 + 35, Sistem.Cizgiler[j + 1].Renk, Sistem.Cizgiler[j + 1].Renk, "Tahoma", 14); Sistem.Dortgen(2, 170, j * 40 + 30, 120, 35, Color.Black, Color.Black, Color.Silver); Sistem.GradientYaziEkle(GetiriList[j][GetiriList[j].Count - 1].ToString("0.000"), 2, 180, j * 40 + 35, Sistem.Cizgiler[j + 1].Renk, Sistem.Cizgiler[j + 1].Renk, "Tahoma", 14); } Sistem.Dortgen(3, 40, 30, 120, 35, Color.Black, Color.Black, Color.Silver); Sistem.GradientYaziEkle(Sistem.Name, 3, 50, 35, Sistem.Cizgiler[0].Renk, Sistem.Cizgiler[0].Renk, "Tahoma", 14); Sistem.Dortgen(3, 170, 30, 120, 35, Color.Black, Color.Black, Color.Silver); Sistem.GradientYaziEkle(OrtList[OrtList.Count - 1].ToString("0.000"), 3, 180, 35, Sistem.Cizgiler[0].Renk, Sistem.Cizgiler[0].Renk, "Tahoma", 14);![]()
vahap beyaz, ahmet çakar ....
Kodlama konusunda bilgili arkadaþlardan ricam var. Tiberus, ykoçi bearbul vb. diðer arkadaþlar tasarlamak istediðim bir indikator var.
Hatta mümkünse bunu idealin kütüphanesine de ekleyelim çok deðiþik projelerde iþe yarayacak bir indikator olacðaýný düþünüyorum.
Kendi uydurduðum bir indikatör. Yabancý kaynaklarda böyle bir indikatör var mý bilmiyorum. Eðer yoksa Ýndikatörün ismini. Erhanifilter koymak isterim.
Ýndikatörün parametrelerini tarif edeyim önce.
var Sistem.ErhanifilterPuan(Liste, 3.0f, 3.0f); // 3.0 anlamý 3000 puan 3000 puan anlamýna geliyor. 0.1f yaparsan 100 puan anlamýna gelecekti.
Birde % olaný olacak.
var Sistem.Erhanifilter(Liste, 3 , 3); Buda %3 e %3 manasýnda olacak mesela.
Þimdi çalýþma prensibine gelirsek.
Diyelimki var Sistem.Erhanifilter(Liste, 3, 5); parametresini kullanacaðýz.
Ýlk parametre olan 3 fiyatlarda görülen en tepeden %3 gerilediðinde indikatörümüz 1 deðerini alsýn indikatör 1 deðerini aldýktan sonra görülen en dipten yukarý %5 çýktýðýnda da -1 deðerini alsýn.
dipten çýkýþta -1 deðerini almasý için ilk önce +1 deðerini almasý þart. Yani +1 gerçekleþmeden -1 hiçbir zaman olamaz.
Bu indikatör ne iþe yarar Biraz RSÝ vari bir çalýþma prensibi var ancak rsi den daha anlamlý ve opsiyonel kullanýlabilir diye düþünüyorum.
1-Örnegýn orta uzun vadeli yukarý yönlü bir trend oldugunu düþünelim.
Ýndikatore de 1 olursa al -1 olursa sat dediðimizi düþünelim.
BU durum da Erhanifilter(V, 2,3); paramtresi kullanýlabilir. Fiyatlar (V) ve/veya(liste) görülen en tepeden %2 düþtüðünde indikator 1 deðerini alacaktýr. Dolayýsýyla AL oku yanacak Görülen en dipten %3 yükseldiðinde de Ýndikator -1 deðerini alacaðý için sat yakacaktýr. Böylece düzletmeyle beraber yukarý doðru giden bir grafikte trend kanal çizgisinde al sat yapan indikatör görevi görecektir.
2-Orta uzun vadeli aþaðý yönlü bir trend oldugunda Erhanifilter(V, 3,2); paramtresi fiyatlar görülen en tepeden %3 düþtüðünde AL En dipten %2 yükseldiðinde Sat oku koyacak ve düþen kanal çizgisindeki hareketlere tam uyumlu çalýþacaktýr.
3-Yatay piyasa da kullaným için ise Erhanifilter (V,2,2); parametresi fiyatlar görülen en tepeden %2 düþtüðünde AL görülen en dipten %2 yükseldiðinde SAT þeklinde çalýþtýrarak yatay piyasa da verimli sonuçlar üretebilir.
BU sistemin RSÝ den ayýran en büyük farklar Sert hareketlere erkenden tepki verebilmesi yumuþak çikiþ hareketlerinde de yine sinyale erkenden oturabilmesi.
Opsiyonel olarak herhangibir listenin içindede kullanýlabilir böylece daha opsiyonel 2 çift çizgi elde edilebilir. Örnegýn RSÝ içine normalde ya MA atarýz yada Ýki adet seviye belirler çizginin birini yukarý kesince sat diðerini aþaðý kesince al deriz. BU çizgiler sabit kaldýðý için uzun süre boyunca bir tarafa kesiþim gelmeyebiliyor.
Fakat erhanifilterPuan indikatöründe parametreler doðru girildiði sürece böyle bir sorun oluþmaz. Örneðin ErhanifilterPuan(RSI, 0.030f , 0.030f); girildiðinde RSÝ indikatörünün gördüðü en tepeden 30 birim/puan düþtüðünde AL Gördüðü en dipten 30 puan yükseldiðinde de sat sinyali yakar.
Böylece 2 adet seviyeniz her yeni tepe ve dipte yer deðiþtirir. her sefrinde ayný seviyeye çarpmalar sýk sýk ayný yerde sinyal oluþturmalar kararsýzlýklar ortadan kalkacaktýr.
Bu indikatör farklý þekillerde kullanýlabilir.
Örnegin 50 lik ma 100 lük MA yý ve 200 lük MA yý yukarý kesmiþse Erhanifilter(V,1,3); göre al sat. ana trend yukarý yönde ise görülen tepeden %1 düþünce al aldýktan sonra görülen en dipten %3 yükselince sat.
50 lik ma 100 lüðü ve 200 lüðü aþaðý kestiðinde Erhanifilter(V,3,1); göre al sat. Ana trend aþaðý döneceði için aþaðý hareket en tepeden %3 düþmüþse al görülen en dipten %1 yükselince sat
50 lik 100 lüðü yukarý/aþaðý kesmiþ 200 lüðü kesememiþse erhanifilter(V, 1,1) çalýþtýr. Piyasa kararsýz anlamýna gelir kararsýz yatay piyasada sistem en tepeden %1 düþünce alýr en dipten %1 yükselince satar.
Gibi gibi Bilmiyorum yapýlabilir mi
Bazý görsel örnekler temsili;
![]()
Senin almaya cesaret edemediðin riskleri alanlar, senin yaþamak istediðin hayatý yaþarlar..
Sokrates twit @erhanacikgoz1
Erhan Bey, zigzag indikatörüne benzettim.
Benzeri bir çalýþma sanýrým.
Erhan bey bu trend kanal çalýþmalarýný ben formülün içine dökerek test etmeye çalýþtým. Benim istediðim bu kanallar hep düz çizgi içinde olsun. Ayný trend çizgisi çizdiðimiz gibi olsun istiyorum fakat hiç bir zaman düz çizgi olmadý.
Hhv,llv,h,l, gibi datalarla tepe dip tespit edilip içindeki kanala en uygun sistem parametresi bulmak için ugraþýnca þöyle bir þey ortaya çýkýyor. Fiyatlar hiçbir zaman bukanallarýn dýþýna çýkamýyor. Girilen bar sayýsýna göre dip tepe hep deðiþiyor. Bol. band gibi fiyatlar hep kanalýn içinde oluyor. Buda filtre olarak kullanýlamýyor.
Trend çizgileri kaydedilip formül içinde kullanýlarak çizdiðimiz trend kanalý gibi düz çizgi gibi olabilmektedir. Fakat sistemi test ederken sdece bu trend çizgilerinin þeçilen bar içinde iþlemleri gösteriyor. Geçmiþ trend çizgisi kanalý dýþýnda sistem iþlem yapmýyor gözüküyor.
SM-J500FN cihazýmdan hisse.net mobile app kullanarak gönderildi.
BU indikatorü yapabilecek biri çýkarsa sadece basit bir trend kanalý indikatörü olmayacaktýr. Cok daha farklý yerlerde görev alarak sýstemý daha iyi noktalara götüreceðini düþünüyorum.
Sizin sorunuza gelirsek geçmiþdeki kaç adet bar sayýsýný baz alarak trend çizecekte koyacak. Bir bilgisayar gibi düþünmeniz lazým.
Sistem yaza yaza bir bilgisayar gibi düþünmek nasýl birþey anlayacaksýnýz. Bir stratejinin repaint olup olmayacaðýný daha yazmadan anlayabileceksiniz.
Sistemin sizin gördüðünüz trend çizgisini çizmezsi için bir matematik uydurmanýz gerekiyor.
Örneðin her ayýn baþýnda son 10 bara göre trend çiz gibi birþey demeniz lazým ki trendi uzatýp durmasýn kýsaca trend çiz yerine o görevi yapabilecek matematiksel bir fomul geliþtirmek lazým.
En basit yöntemlerden bir tanesi MA kullanmak olabilir. BU ma nýn hhv ye uzaklýgýný hesaplatýrsýnýz % sel olarak sonra o yüzdeyi ise ma + hhv ma arasýndaki % = üst kanal çizgisi oluþur. ma + llv ma arasýndaki farkýn % si = alt kanal bandý.
tam olarak trend kanalý olmasa da bir bolýnger bandý gibi birþey elde edersiniz. Trend kanalýnýn az bucuk benzerý olacaktýr.
Bunun gibi bir formul bir matematik uydurmak lazým.
her ne yaparsanýz yapýn müthiþ bir mucýtlýk yapmak çok zor.
Asýl mucitlik Para yönetiminde gizli.
biraz önce bir sistem daha tasarladým. 5 dakýkalýk grafiklerde para yönetimi içeren bir sistem. daha modifikasyona açýk ancak hiç modifiye bile etmeden elde edileni söyleyeyim.
Toplam kazanç ise 12 yýlda 1,363,468 KAT bileþik Getiri.
Þimdi bu teoride böyle teoriden kastým þu piyasadaki hacim sýnýrsýz ise yani istediðin kadar lotluk emir gönderebiliyor ve her çift yönlü iþlemde 70 puan kayma yaþýyorsan getiri bu. ancak diyelimki toplam kullanýlan lot miktarý 500 e çýktýðýn da lot sayýsýný 250 ye indiriyorsan elde edilen getiri 110 katýna çýkýyor. Faiz geliri hariç. 110/12= her yýl 9 katlýk bir getiri ortalamasýna sahipsin demek.
Temiz verilerle yapýlmýþ bir analiz yani vade geçiþinde kazanýlan puanlar yok. Sistem anlýk çalýþýp gaplerde sahte puan üretmiyor. Simulasyon ne üretmiþse gerçek hesapta aynýsýný üretecek.
Bu yapýnýn real piyasadaki durumunu 2019 sonuna kadar izleyeceðim. Ýlk stratejinin testleri bitmedi. Bu 2. bir strateji olacak cepte duracak.
Ýyi bir yatýrým parasý bulsam istifa edip bu iþle uðraþacam neredeyse 5 seneye emekli edebilecek sistemler tasarlanabilir.
Senin almaya cesaret edemediðin riskleri alanlar, senin yaþamak istediðin hayatý yaþarlar..
Sokrates twit @erhanacikgoz1
Yunan mitolojisinde sirenler var, guzel sesleriyle gemicileri buyuluyolar , yaklasmaya calisinca gemiler kayaliklara carpip batiyolar. Zigzag da traderlar icin oyle bisey heralde , fiyata uygulayip gemileri batiranlar vardi. Equity curve uzerine uygulamak da farkli sonuc dogurmaz muhtemelen..
Yer Ýmleri