Originally Posted by
Santi78
Selam idealdeki paçal örneğini biraz değiştirdim ama idealdeki gibi sistem al verdiğinde maliyeti düşürecek şekilde lot toplayıp TP olunca satmıyor? sizce sebebi nedir? Ben sadece al koşulu idealde RSI olan yere MA koydum sadece bir kere alıyor TP görünce satıyor. nerede hata yapıyorum sızce?
Saygılar..
var Bakiye = 1000 ;
var Bars = Sistem.GrafikVerileri;
var C = Sistem.GrafikFiyatSec("Kapanis");
//var RSI = Sistem.RSI(14);
var Cum = 0.0;
var Maliyet = 0.0;
var Miktar = 0;
var TP = 1.01f; //YÜZDE 1
//var C = Sistem.GrafikFiyatSec("Kapanis");
var L = Sistem.GrafikFiyatSec("Dusuk");
var H = Sistem.GrafikFiyatSec("Yuksek");
var MA1 = Sistem.MA(C, "Exp", 3);
var MA2 = Sistem.MA(C, "Exp", 10);
var MA3 = Sistem.MA(H, "Exp", 10);
//var SonYon = "";
var SonYon = "";
var Pozisyon = Sistem.SayiListesi;
var OrtalamaMaliyet = Sistem.Liste(0);
var ToplamMaliyet = Sistem.Liste(0);
var MiktarList = Sistem.Liste(0);
var Liste = new List<string>();
for (int i = 1; i<Sistem.BarSayisi; i++)
{
Pozisyon[i] = Sistem.SayiListesi[i-1];
//for (int i = 1; i<Sistem.BarSayisi; i++)
//{
if (MA1[i] > MA3[i] && SonYon != "A") // AL
{
// Sistem.Yon[i] = SonYon = "A"; // alış
// if (RSI[i-1] < 50 && RSI[i] > 50)
SonYon = "A";
Sistem.Yon[i] = "A";
Miktar = (int)Sistem.SayiYuvarla(Bakiye / C[i],0);
MiktarList[i] = Miktar;
Cum = Cum + Miktar * C[i];
ToplamMaliyet[i] = (float)Cum;
Pozisyon[i] += Miktar;
Maliyet = (float) Cum / Pozisyon[i];
OrtalamaMaliyet[i] = (float)Maliyet ;
}
else if (C[i] >= Maliyet * TP && SonYon != "F")
{
SonYon = "F";
Sistem.Yon[i] = "F";
MiktarList[i] = 0;
Miktar = 0;
Cum = 0.0;
Maliyet = 0.0;
Pozisyon[i] = 0;
OrtalamaMaliyet[i] = 0;
ToplamMaliyet[i] = 0;
Liste.Add(Bars[i].Date.ToString("dd.MM.yyyy")
+ ";" + Bars[i].Date.ToString("HH:mm")
+ ";" + Bars[i].Close.ToString()
+ ";" + Sistem.Yon[i]
+ ";" + Pozisyon[i]);
}
else
OrtalamaMaliyet[i] = OrtalamaMaliyet[i-1];
}
//var DosyaAdi = "d:\\Ideal\\Rapor" + Sistem.Sembol + "_" + Sistem.Periyot + ".CSV";
//File.WriteAllLines(DosyaAdi, Liste);
Sistem.Cizgiler[0].Deger = Pozisyon;
Sistem.Cizgiler[0].Aciklama = "Pozisyon";
Sistem.Cizgiler[1].Deger = OrtalamaMaliyet;
Sistem.Cizgiler[1].Aciklama = "Ortalama Maliyet";
Sistem.Cizgiler[2].Deger = MiktarList;
Sistem.Cizgiler[2].Aciklama = "Miktar";
Sistem.Cizgiler[3].Deger = ToplamMaliyet;
Sistem.Cizgiler[3].Aciklama = "Cum";
//Sistem.Cizgiler[4].Deger = RSI;
//Sistem.Cizgiler[4].Aciklama = "RSI";