Istediginiz robot tarafinda da yapilabilir ancak sistem tarafinda olmasi backtest yapilabilirligi saglar. Gunde 1 karli islem belki 3 zararli islem sonrasi 25 puanla gelecek. Bu yaklasimin beklentinize paralel sonuc uretip uretmedigini gecmis verilerle muhakkak test etmenizi oneririm.
Asagidaki goruntude sari bolgeler mevcut sisteminiz, mavi bolgeler ise hangi bolgeye neler eklenmesi gerektigini gosteriyor. "GunlukLimit" ve karli islem icin "KarMargin" istege gore ayarlanabilir veya optimize edilebilir.
Kod:var V = Sistem.GrafikVerileri ; var C = Sistem.GrafikFiyatOku(V, "Kapanis"); //Diger tum sistem degiskenleri var SonYon = ""; float islemKZ = 0f; float KarMargin = 0.05f; float Sayac = 0f; float AlFiyat = 0f; float SatFiyat = 0f; int GunlukLimit = 1; for (int i=1; i<V.Count; i++) { //Sistem hesaplamalari if ( V[i].Date.Date != V[i-1].Date.Date) Sayac=0f; if ("Al Kosulu" && SonYon != "A" && Sayac < GunlukLimit ) //Alis { AlFiyat=C[i]; islemKZ= AlFiyat>0 && SatFiyat>0 ? SatFiyat-AlFiyat : 0f; if (islemKZ > KarMargin) {Sayac++; SonYon="F"; Sistem.Yon[i]="F";} else { SonYon="A"; Sistem.Yon[i]="A"; } } else if ("Sat Kosulu" && SonYon != "S" && Sayac < GunlukLimit ) //Satis { SatFiyat=C[i]; islemKZ= AlFiyat>0 && SatFiyat>0 ? SatFiyat-AlFiyat : 0f; if (islemKZ > KarMargin) {Sayac++; SonYon="F"; Sistem.Yon[i]="F";} else { SonYon="S"; Sistem.Yon[i]="S"; } } }
Yer İmleri