Kod:var Semboller = new Dictionary<string, double>(); Semboller["IMKBH'AKBNK"] = 7; Semboller["IMKBH'GARAN"] = 9; Semboller["IMKBH'YKBNK"] = 11; Semboller["IMKBH'SISE"] = 13; Semboller["IMKBH'PGSUS"] = 15; Semboller["IMKBH'KCHOL"] = 17; Semboller["IMKBH'SAHOL"] = 19; var Mesaj = ""; foreach (var item in Semboller) { var Sembol = item.Key; var SembolLot = item.Value; var Bars = Sistem.GrafikVerileriniOku(Sembol, "60"); var DusenTrend = Sistem.OtoTrendDusen(Bars, 100, 10); var RSI = Sistem.RSI(Bars, 22); var SonFiyat = Sistem.SonFiyat(Sembol); var SonBarNo = Bars.Count - 1; Mesaj += "\r\n" + Sembol + ", RSI = " + RSI[SonBarNo].ToString("0.00") + ", Trend = " + DusenTrend[SonBarNo].ToString("0.00") + ", Son Fyt = " + SonFiyat.ToString("0.00"); if (Bars[SonBarNo].High > DusenTrend[SonBarNo] && RSI[SonBarNo] > 30) { // emir gönder var Anahtar = Sistem.Name + ", " + Sembol; double IslemFiyat = 0; DateTime IslemTarih; var Miktar = SembolLot; var Rezerv = ""; var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih); if (Pozisyon == 0 && SembolLot > 0 && Sistem.Saat.CompareTo("10:00:05") >= 0 && Sistem.Saat.CompareTo("17:59:55") <= 0) { var Islem = ""; Islem = "ALIS"; Rezerv = "ALIÞ YAPILDI"; Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar, SonFiyat, Rezerv); Sistem.EmirSembol = Sembol; Sistem.EmirIslem = Islem; Sistem.EmirSuresi = "KIE"; Sistem.EmirTipi = "Piyasa"; Sistem.EmirMiktari = Math.Abs(Miktar); Sistem.EmirAciklama = "Gerçekleþti"; Sistem.EmirGonder(); } } } Sistem.Mesaj(Mesaj);
vahap beyaz, ahmet çakar ....
ÝdeAlgo sürümünde gördüðüm eksiklikleri buraya 2 ana baþlýkta feedback olarak düþmek isterim.
Basit ama bir okadar da önemli olan temel eksikler :
1)ÝdeAlgo penceresinin büyütüp küçültülememesi, tam ekran yapýlamamasý özellikle opt sonuçlarýný karþýlaþtýrma açýsýndan kýsýtlayýcý
2)Opt sonuçlarý "Getiri, iþlem sayýsý, profit factor vb. gibi parametre bazýnda küçükten büyüðe sýralanabilmeli
3)Gösterilecek opt sonuçlarý için en iyi 30 sonuç deðil de kullanýcýnýn belirleyeceði adette sonuç gösterilebilmeli ve sonuçlar hem sistem içinde genel opt tarama sonuçlarý olarak kaydedilebilmeli hem de excele aktarýlabilmeli.
4)Lot miktarýný belirlemek için S ikonu/Sistem Performansý penceresine gitmek gerekiyor, bunun yerine lot miktarý direk ideAlgo/Performans penceresinden de deðiþtirilebilmeli.
5)ÝdeAlgo optimizasyon kýsmýndan optimize ettiðim 3 parametreli sistemimi grafiðe uyguladýðýmda toplam iþlem adetini grafikte, listedekinden 35-40 adet fazla gösteriyor, benden baþka böyle bi problem yaþayan oldu mu bilmiyorum ama bi hata varmýþ gibi geldi bana.
6)Sharpe Ratio ve Sortino Ratio performans metriklerine eklenmeli ve sistemin uygulandýðý grafik üzerinde gösterilecek performans metrikleri de kullanýcý tarafýndan seçilebilmeli.
Ýleri seviye eksikler :
1)Sistem oluþtururken belli koþullara göre lot arttýrýp azaltmak sisteme dahil edilip backtest yapýlamýyor, kompleks para yönetimi yok.
2)Pay tarafýnda oluþturulan sinyaller bot üzerinden ayný hissenin vadelisine iletilebiliyor ama bunu backtestte test edemiyoruz, örneðin THYAO'da yazdýðým bi sistemin verdiði sinyalleri VIP-THYAO'da göremiyorum.
3)Optimizasyon kýsmý için genetic algorithm ile walk-forward ve monte-carlo simülasyon yöntemlerinin olmamasý büyük eksikler
4)Optimizasyon sadece max. getiri parametresini maximize edecek þekilde deðil de kullanýcýnýn performans metriklerinden istediklerine verdiði puanlamaya göre optimize edebilmeli
Sayin Tiberius, sagolun Hizir gibi yetistiniz.
var Semboller = new Dictionary<string, double>();
Semboller["IMKBH'AKBNK"] = 7;
Semboller["IMKBH'GARAN"] = 9;
Semboller["IMKBH'YKBNK"] = 11;
Semboller["IMKBH'SISE"] = 13;
Semboller["IMKBH'PGSUS"] = 15;
Semboller["IMKBH'KCHOL"] = 17;
Semboller["IMKBH'SAHOL"] = 19;
burdaki numaralar rastgelemi yaziliyor yoksa IMKB de her hissenin bu sekilde bir numarasi mi var.
Mesaj += "\r\n" + Sembol + ", RSI = " + RSI[SonBarNo].ToString("0.00") + ", Trend = " + DusenTrend[SonBarNo].ToString("0.00") + ", Son Fyt = " + SonFiyat.ToString("0.00");
buradaki kodlama sadece ekrana msj yazilmasi icin midir?
Son düzenleme : Santi78; 21-05-2019 saat: 02:40.
Herkese merhaba,
var K = Sistem.MA(C, "Simple", 22);
K = Sistem.Ref(K, -61);
Bu kod için 61 bar deðilde deðiþken olarak saat baþýna öteleme yapýlabilir mi ? örnek olarak 1 dakikalýkta kullanýrken 09:58 deðeri 10:01 e ötelenecek, saat 10:00 da deðer 11:01 e, 10:30 11:01 e gibi... süre bazlý geri sayan öteleme gibi.
Evet mesaj satýrý gözlem yapmak amacýyla eklendi.
Ancak kodda bir deðiþiklik yaptýk. Trend oluþmamýþsa kontrolu de ekledik.
var Semboller = new Dictionary<string, double>();
Semboller["IMKBH'AKBNK"] = 7;
Semboller["IMKBH'GARAN"] = 9;
Semboller["IMKBH'YKBNK"] = 11;
Semboller["IMKBH'SISE"] = 13;
Semboller["IMKBH'PGSUS"] = 15;
Semboller["IMKBH'KCHOL"] = 17;
Semboller["IMKBH'SAHOL"] = 19;
var Mesaj = "";
foreach (var item in Semboller)
{
var Sembol = item.Key;
var SembolLot = item.Value;
var Bars = Sistem.GrafikVerileriniOku(Sembol, "60");
var DusenTrend = Sistem.OtoTrendDusen(Bars, 100, 10);
var RSI = Sistem.RSI(Bars, 22);
var SonFiyat = Sistem.SonFiyat(Sembol);
var SonBarNo = Bars.Count - 1;
Mesaj += "\r\n" + Sembol + ", RSI = " + RSI[SonBarNo].ToString("0.00") + ", Trend = " + DusenTrend[SonBarNo].ToString("0.00") + ", Son Fyt = " + SonFiyat.ToString("0.00");
if (Bars[SonBarNo].High > DusenTrend[SonBarNo] && DusenTrend[SonBarNo] > 0 && RSI[SonBarNo] > 30)
{
// emir gönder
var Anahtar = Sistem.Name + ", " + Sembol;
double IslemFiyat = 0;
DateTime IslemTarih;
var Miktar = SembolLot;
var Rezerv = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
if (Pozisyon == 0 && SembolLot > 0 && Sistem.Saat.CompareTo("10:00:05") >= 0 && Sistem.Saat.CompareTo("17:59:55") <= 0)
{
var Islem = "";
Islem = "ALIS";
Rezerv = "ALIÞ YAPILDI";
Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar, SonFiyat, Rezerv);
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "KIE";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = Math.Abs(Miktar);
Sistem.EmirAciklama = "Gerçekleþti";
Sistem.EmirGonder();
}
}
}
Sistem.Mesaj(Mesaj);
vahap beyaz, ahmet çakar ....
Yer Ýmleri