|
|
editorde yazdım , pozisyon atmasın diye idealde denemedim."kk" lar benim notum
Kod:var LotSize = 1.0; var Periyot = "5"; var KullanilanSistem = "SistemAdi"; var DefaLimiti = 3; // VIOP - Canlı Barda Emir Gönderim Kalıbı var MySistem = Sistem.SistemGetir(KullanilanSistem, "VIP'VIP-X030", Periyot); if (MySistem != null) { var V = MySistem.GrafikVerileri; var Saat = V[V.Count - 1].Date; if (Sistem.SaatAraligi("09:30", "18:14") && V[V.Count - 1].Date.Day == DateTime.Now.Day) { var DefaAnahtar = Sistem.Name + " , " + "Defa" + " , " + Saat.ToString("yyyyMMddHHmm"); var DefaSayisi = Sistem.SayiTablosunuOku(DefaAnahtar); if (DefaSayisi <= DefaLimiti )// limitte ise dahil kk { var EmirSembol = Sistem.AktifViopKontrat; var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol); var SonYon = ""; for (int i = 0; i < MySistem.Yon.Count; i++) { if (MySistem.Yon[i] != "") SonYon = MySistem.Yon[i]; } // Emir Miktarını Hesapla var Miktar = 0.0; if (DefaSayisi == DefaLimiti){Miktar=Pozisyon==0?0:-Pozisyon;}// flate kk else if (SonYon == "F" && Pozisyon != 0) // Flata Geç Miktar = -Pozisyon; else if (SonYon == "A" && Pozisyon != LotSize) // Al Miktar = LotSize - Pozisyon; else if (SonYon == "S" && Pozisyon != -LotSize) // Sat Miktar = -LotSize - Pozisyon; // Emir Gönder if (Miktar != 0) { Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon); Sistem.EmirSembol = Sistem.AktifViopKontrat; Sistem.EmirIslem = Miktar > 0 ? "ALIS" : "SATIS"; Sistem.EmirMiktari = Math.Abs(Miktar); Sistem.EmirSuresi = "GUN"; Sistem.EmirTipi = "KPY"; Sistem.EmirFiyatTipi = "PYS"; Sistem.EmirGonder(); DefaSayisi++; Sistem.SayiTablosunuGuncelle(DefaAnahtar, DefaSayisi); } } } }
Birkaç denemem olmuştu. Uyumsuzluklar genelde hızlı yükseliş ve düşüş sonrası aşırı alım/satım bölgelerinin zorlanmasıyla oluşuyor. Genelde bilinenin aksini yapmak daha iyi getiri sağlıyor (örn: pozitif uyumsuzluk varsa alma sat). Ama şu olabilir 1000 bar içerisinde mesela 3 defa negatif uyumsuzluk olursa alış sinyaline girme denebilir (denemedim). Çünkü 3 4 defa uyumsuzluk olduktan sonra ancak fiyatlar dönüyor.
Kullanıcağın indikatörün hhv llv sini alıp fiyat ile indikatörü karşılaştırıp uyumsuzluk tespiti yapılabilir.
Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
Sokrates twit @erhanacikgoz1
Hazır robotlar açılmışken soru sorayım. İşlem yapacağımız lot miktarını hesaplamak için hesaptaki teminat +- son pozisyon kar zarar diyerek overall u bulabilir miyiz?
defasayısını güncellemeyi ihmal etmişim
Kod:var LotSize = 1.0; var Periyot = "5"; var KullanilanSistem = "SistemAdi"; var DefaLimiti = 3; // VIOP - Canlı Barda Emir Gönderim Kalıbı var MySistem = Sistem.SistemGetir(KullanilanSistem, "VIP'VIP-X030", Periyot); if (MySistem != null) { var V = MySistem.GrafikVerileri; var Saat = V[V.Count - 1].Date; if (Sistem.SaatAraligi("09:30", "18:14") && V[V.Count - 1].Date.Day == DateTime.Now.Day) { var DefaAnahtar = Sistem.Name + " , " + "Defa" + " , " + Saat.ToString("yyyyMMddHHmm"); var DefaSayisi = Sistem.SayiTablosunuOku(DefaAnahtar); if (DefaSayisi <= DefaLimiti )// limitte ise dahil kk { var EmirSembol = Sistem.AktifViopKontrat; var Pozisyon = Sistem.PozisyonKontrolOku(Sistem.Name + " , " + EmirSembol); var SonYon = ""; for (int i = 0; i < MySistem.Yon.Count; i++) { if (MySistem.Yon[i] != "") SonYon = MySistem.Yon[i]; } // Emir Miktarını Hesapla var Miktar = 0.0; if (DefaSayisi == DefaLimiti){Miktar=Pozisyon==0?0:-Pozisyon;}// flate kk else if (SonYon == "F" && Pozisyon != 0) // Flata Geç Miktar = -Pozisyon; else if (SonYon == "A" && Pozisyon != LotSize) // Al Miktar = LotSize - Pozisyon; else if (SonYon == "S" && Pozisyon != -LotSize) // Sat Miktar = -LotSize - Pozisyon; // Emir Gönder if (Miktar != 0) { Sistem.PozisyonKontrolGuncelle(Sistem.Name + " , " + EmirSembol, Miktar + Pozisyon); Sistem.EmirSembol = Sistem.AktifViopKontrat; Sistem.EmirIslem = Miktar > 0 ? "ALIS" : "SATIS"; Sistem.EmirMiktari = Math.Abs(Miktar); Sistem.EmirSuresi = "GUN"; Sistem.EmirTipi = "KPY"; Sistem.EmirFiyatTipi = "PYS"; Sistem.EmirGonder(); } DefaSayisi++; Sistem.SayiTablosunuGuncelle(DefaAnahtar, DefaSayisi); } } }
Yer İmleri