
Originally Posted by
engin.kilic.73
Hocam tekrardan çok teşekkür ederim. Buda oldu. Sonunda güzel bir robot kalıbı olduğunu düşünüyorum Kendim için.
Bunun Parasal değil lot olarak emir göndermek istersek nereyi düzeltmemiz lazım hocam.
Lotlu hali daha sade:
PHP Code:
var SistemAdi = "Sistemim_1"; //sistemizin adı
var GrafikPeriyodu = "1"; //grafiğin priyodu
var ToplamPozisyon = 24; //Kaç defa alım yapılacak
var hisseLot = new Dictionary<string, int>();
hisseLot["IMKBH'PETKM"] = 10;
hisseLot["IMKBH'KRDMD"] = 20;
hisseLot["IMKBH'KCHOL"] = 30;
hisseLot["IMKBH'AKBNK"] = 10;
hisseLot["IMKBH'EREGL"] = 20;
hisseLot["IMKBH'EKGYO"] = 30;
for (var No = 0; No < hisseLot.Count; No++)
{
var item = hisseLot.ElementAt(No);
var Sembol = item.Key;//sistemin sinyal ürettiği grafik sembolü
var LotSize = item.Value;//sistemin sinyal ürettiği hisse için yukarıda tanımlanan lot
var SonFiyat = (decimal)Sistem.SonFiyat(Sembol);
var SonYon = Sistem.SonYonGetir(SistemAdi, Sembol, GrafikPeriyodu);
var PozisyonAnahtari = Sistem.Name + ", " + Sembol + ", " + GrafikPeriyodu;
var EmirAnahtari = Sistem.Name + "::" + Sembol + "::" + GrafikPeriyodu;
double IslemFiyat = 0;
DateTime IslemTarih;
var Pozisyon = Sistem.PozisyonKontrolOku(PozisyonAnahtari, out IslemFiyat, out IslemTarih);
var EmirTekrari = Sistem.PozisyonKontrolOku(EmirAnahtari);
var Islem = "";
if (SonYon == "A" && (Pozisyon == 0 || Sistem.ZamanKontrolSaniye(EmirAnahtari) >= 10) && EmirTekrari <= ToplamPozisyon)
{
Islem = "ALIS";
}
if (SonYon == "F" && Pozisyon > 0 && Sistem.ZamanKontrolSaniye(EmirAnahtari) >= 10) // Sat
{
Islem = "SATIS";
}
if (Islem != "")
{
Sistem.ZamanKontrolGuncelle(EmirAnahtari);
if (Islem == "ALIS")
{
EmirTekrari++;
Sistem.PozisyonKontrolGuncelle(EmirAnahtari, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(PozisyonAnahtari, Pozisyon + LotSize, (double)SonFiyat);
}
else if (Islem == "SATIS")
{
EmirTekrari--;
Sistem.PozisyonKontrolGuncelle(EmirAnahtari, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(PozisyonAnahtari, Pozisyon - LotSize, (double)SonFiyat);
}
Sistem.EmirSembol = Sembol;
Sistem.EmirIslem = Islem;
Sistem.EmirSuresi = "GUN";
Sistem.EmirTipi = "Piyasa";
Sistem.EmirMiktari = (double)Math.Abs(LotSize);
Sistem.EmirGonder();
}
}
Yer İmleri