
Originally Posted by
yuji
2 kısım çok basit yapılabilir, fırsat bulunca yapar atarım buraya
Hisse bazlı bakiye girişi yapılabilecek hali aşağıdaki gibi
PHP Code:
var SistemAdi = "Sistemim_1"; //sistemizin adı
var GrafikPeriyodu = "1"; //grafiğin priyodu
var ToplamPozisyon = 24; //Kaç defa alım yapılacak
var hisseBakiye = new Dictionary<string, int>();
hisseBakiye["IMKBH'PETKM"] = 1000;
hisseBakiye["IMKBH'KRDMD"] = 2000;
hisseBakiye["IMKBH'KCHOL"] = 3000;
hisseBakiye["IMKBH'AKBNK"] = 1000;
hisseBakiye["IMKBH'EREGL"] = 2000;
hisseBakiye["IMKBH'EKGYO"] = 3000;
for (var No = 0; No < hisseBakiye.Count; No++)
{
var item = hisseBakiye.ElementAt(No);
var Sembol = item.Key;//sistemin sinyal ürettiği grafik sembolü
var Bakiye = item.Value;//sistemin sinyal ürettiği hisse için yukarıda tanımlanan bakiye
var SonFiyat = (decimal)Sistem.SonFiyat(Sembol);
var SonYon = Sistem.SonYonGetir(SistemAdi, Sembol, GrafikPeriyodu);
var Anahtar = Sistem.Name + ", " + Sembol + ", " + GrafikPeriyodu;
var Anahtar2 = Sistem.Name + "::" + Sembol + "::" + GrafikPeriyodu;
double IslemFiyat = 0;
DateTime IslemTarih;
var Islem = "";
var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);
var EmirTekrari = Sistem.PozisyonKontrolOku(Anahtar2);
var LotSize = (double)Math.Round(Sistem.SayiTablosunuOku(Anahtar2), 0);
var Basla = Sistem.SayiTablosunuOku(Anahtar);
if (Basla == 0)
{
Sistem.SayiTablosunuGuncelle(Anahtar, 1);
LotSize = (double)Math.Round(( Bakiye / SonFiyat), 0);
Sistem.SayiTablosunuGuncelle(Anahtar2, LotSize);
}
if (SonYon == "A" && (Pozisyon == 0 || Sistem.ZamanKontrolSaniye(Anahtar2) >= 10) && EmirTekrari <= ToplamPozisyon)
{
Islem = "ALIS";
}
if (SonYon == "F" && Pozisyon > 0 && Sistem.ZamanKontrolSaniye(Anahtar2) >= 10) // Sat
{
Islem = "SATIS";
}
if (Islem != "")
{
Sistem.ZamanKontrolGuncelle(Anahtar2);
if (Islem == "ALIS")
{
EmirTekrari++;
Sistem.PozisyonKontrolGuncelle(Anahtar2, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(Anahtar, Pozisyon + LotSize, (double)SonFiyat);
}
else if (Islem == "SATIS")
{
EmirTekrari--;
Sistem.PozisyonKontrolGuncelle(Anahtar2, EmirTekrari);
Sistem.PozisyonKontrolGuncelle(Anahtar, 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