Pazar, Mart 04, 2018

4 ORTALAMA ile örnek sistem

Örnek sistemde 4 MA (ortalama ) ve 4 senaryolu flat olma ve 4 farklı zarar kes örneği ile sistem 

oluşturulmuştur degerleri kendinize göre degiştirebilirsiniz 



//senaryo 1
var a_tp_y = 190.7f ;   // alışta kaç puan karda "kar al" 
var a_s_y = 30.5f ;   // alışta kaç puan zararda stop
var s_tp_y = 190.8f ;  //satışta kaç puan karda "kar al"
var s_s_y = 20.8f ;   //satışta kaç puan zararda stop

// senaryo 2
var a_tp_y1 = 110.7f ;   // alışta kaç puan karda "kar al" 
var a_s_y1 = 30.5f ;   // alışta kaç puan zararda stop
var s_tp_y1 = 190.8f ;  //satışta kaç puan karda "kar al"
var s_s_y1 = 20.9f ;   //satışta kaç puan zararda stop

var V = Sistem.GrafikVerileri ; 

var C = Sistem.GrafikFiyatOku(V, "Kapanis" ) ;
var H = Sistem.GrafikFiyatOku(V, "Yuksek" ) ;
var L = Sistem.GrafikFiyatOku(V, "Dusuk" ) ;
var O = Sistem.GrafikFiyatOku(V, "Acilis" ) ;
   
// hareketli ortalamaları hesapla
var MA1 = Sistem.MA(C, "Exp", 120);
var MA2 = Sistem.MA(C, "Exp", 440);

var MA3 = Sistem.MA(C, "Exp", 280);
var MA4 = Sistem.MA(C, "Exp", 600);




var x1 = Sistem.Liste(0);
var x2 = Sistem.Liste(0); 
for (int i = 1; i
{
x1[i] = C[i] >= MA1[i] && C[i] >= MA2[i] ? 1 : C[i] <= MA1[i] && C[i] <= MA2[i] ? -1 : x1[i-1] ;
x2[i] = C[i] >= MA1[i] && C[i] >= MA2[i] ? 1 : C[i] <= MA1[i] && C[i] <= MA2[i] ? -1 : x1[i-1] ;
}




// STRATEJİ

var SonYon = "";
double Fiyat = 0;
for (int i = 1; i
{

// senaryo 1

if ( x1[i] == 1 && x1[i-1] != 1 && SonYon != "A" ) // AL
{
Sistem.Yon[i] = "A"; // alış
SonYon = Sistem.Yon[i];
Fiyat = C[i];
}

else if ( x1[i] == -1 && x1[i-1] != -1 && SonYon != "S" ) // SAT

{
Sistem.Yon[i] = "S"; // satış
SonYon = Sistem.Yon[i];
Fiyat = C[i];

}

else if (SonYon == "A" && C[i] > ( Fiyat + a_tp_y ) ) // alışta kar realizasyonu
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}


else if (SonYon == "A" && C[i] < ( Fiyat - a_s_y ) ) // alışta stop 
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}


else if (SonYon == "S" && C[i] < ( Fiyat - s_tp_y )) // satışta kar realizasyonu
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}


else if (SonYon == "S" && C[i] > ( Fiyat + s_s_y ) ) // satışta stop
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}





// senaryo 2

if ( x2[i] == 1 && x2[i-1] != 1 && SonYon == "F" ) // AL
{
Sistem.Yon[i] = "A"; // alış
SonYon = Sistem.Yon[i];
Fiyat = C[i];
}

else if ( x2[i] == -1 && x2[i-1] != -1  && SonYon == "F" ) // SAT

{
Sistem.Yon[i] = "S"; // satış
SonYon = Sistem.Yon[i];
Fiyat = C[i];

}

else if (SonYon == "A" && C[i] > ( Fiyat + a_tp_y1 ) ) // alışta kar realizasyonu
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}


else if (SonYon == "A" && C[i] < ( Fiyat - a_s_y1 ) ) // alışta stop 
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}


else if (SonYon == "S" && C[i] < ( Fiyat - s_tp_y1 )) // satışta kar realizasyonu
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}


else if (SonYon == "S" && C[i] > ( Fiyat + s_s_y1 ) ) // satışta stop
{
Sistem.Yon[i] = "F"; 
SonYon = Sistem.Yon[i];
}




}




Sistem.GetiriHesapla("02/01/2006", 0.0185); 
// hangi tarihten getiri hesaplanacak ve kayma ne kadar olacak..örnekte 37.5 puan 
var KarZarar = Sistem.GetiriKZ;


  
var KarZararAy = Sistem.Liste(0);
float KarZarar1 = 0;
int BarNo1 = 1;
float Fark = 0;
for (int i = 1; i < Sistem.BarSayisi; i++)
{

//if (V[i].Date.DayOfWeek == DayOfWeek.Monday && V[i-1].Date.DayOfWeek != DayOfWeek.Monday)  // haftalık dilim
if (V[i].Date.Month != V[i-1].Date.Month) // aylık dilim
//if (V[i].Date.Year != V[i-1].Date.Year ) // yıllık dilim


    {
       Fark = KarZarar[i-1] - KarZarar1;
       for (int j = BarNo1; j < i; j++)
          KarZararAy[j] = Fark;
       KarZarar1 = KarZarar[i-1];
       BarNo1 = i;
    }
    if (i == Sistem.BarSayisi-1)
    {
       Fark = KarZarar[i] - KarZarar1;
       for (int j = BarNo1; j < Sistem.BarSayisi; j++)
          KarZararAy[j] = Fark;
    }
}
var KarList = Sistem.Liste(0);
var ZararList = Sistem.Liste(0);
for (int i = 1; i < Sistem.BarSayisi; i++)
{
   if (KarZararAy[i] > 0)
      KarList[i] = KarZararAy[i];
   else if (KarZararAy[i] < 0)
      ZararList[i] = KarZararAy[i];
}


Sistem.Cizgiler[0].Deger = KarZarar;  // panel 2 -düz
Sistem.Cizgiler[1].Deger = KarList;              // panel 3   -dikey
Sistem.Cizgiler[2].Deger = ZararList; // panel 3 - dikey

  



Hiç yorum yok:

Yorum Gönder

Rast gele yazılar

karışık yazılar