PHP Code:
//Pozisyon Kontrol Robotu / Girilen Pozisyonun Otomatik Kontrolünü Saðlar Kontrolsüz Zarar Etmenizi Önler
//#################################################
var Sembol_VIP30 = "VIP'VIP-X030";
//Kontrol Edilecek Pozisyon Bilgileri Parametrelerden Alýnýr.
string Pozisyon_Yonu = Sistem.Parametreler[0]; // Girilen pozisyonun yönü belirlenir Örnek: Satýþ = S Alýþ = A
float Lot_Miktari = Convert.ToSingle(Sistem.Parametreler[1]); //Alýþ/Satýþ yapýlan Aktif Lot Miktarý belirlenir.
float islem_Fiyati = Convert.ToSingle(Sistem.Parametreler[2]); //Lot Alýþ/Satýþ fiyatý belirlenir.
float Zarar_Limiti = Convert.ToSingle(Sistem.Parametreler[3])/1000; //Pozisyonda maksimum edilecek zarar seviyesi. Örnek: 300 Puan için = 300
float Kar_Limiti = Convert.ToSingle(Sistem.Parametreler[4]); //Pozisyonda maksimum kar seviyesi belirlenir. Örnek: 1250 Puan için = 1250
float Kar_Alma_Seviyesi = Convert.ToSingle(Sistem.Parametreler[5]); //Pozisyondan alýnacak olan kar seviyesi
//string HesapAdi = Sistem.Parametreler[8];
//string AltHesapAdi = Sistem.Parametreler[9];
string SozlesmeAdi = Sistem.Parametreler[10];
var Renk_Kirmizi = Sistem.Renk(250, 250, 0, 0); //Kýrmýzý
var Renk_Siyah = Sistem.Renk(0, 300, 0, 0); //Siyah
var Renk_Mavi = Sistem.Renk(250, 50, 50, 250); //Mavi
var Renk_Mor = Sistem.Renk(250, 191, 62, 255); //Mor
var Renk_Gri = Sistem.Renk(255, 160, 160, 160); //Gri
var Renk_Yesil = Sistem.Renk(250, 0, 160, 50); //Yeþil
//Anlýk VIOP deðeri alýnýr.
float VIP30 = Sistem.SonFiyat(Sembol_VIP30);
if (VIP30 != 0 )
{
//-------------------------------------------------------------------------------------
// Strateji Ýþlemleri Yapýlýr.
float Kar_Zarar = 0;
float Stop_Seviyesi = 0;
var Sinyal = 0; // Al, Sat veya Stop sinyali olduðunda deðer 1 olur ve pozisyona göre iþlem yapýlýr.
if (Pozisyon_Yonu == "A")
{
Stop_Seviyesi = islem_Fiyati - Zarar_Limiti; //Stop Seviyesi Hesaplanýr.
Kar_Zarar = Sistem.SayiYuvarla(((VIP30 - islem_Fiyati) * 1000),1); //Anlýk Kar Zarar Durumu Hesaplanýr ve Virgülden sonrasý yuvarlanýr.
}
if (Pozisyon_Yonu == "S")
{
Stop_Seviyesi = islem_Fiyati + Zarar_Limiti; //Stop Seviyesi Hesaplanýr.
Kar_Zarar = Sistem.SayiYuvarla(((islem_Fiyati - VIP30) * 1000),1); //Anlýk Kar Zarar Durumu Hesaplanýr ve Virgülden sonrasý yuvarlanýr.
}
if ( (Pozisyon_Yonu == "A") || (Pozisyon_Yonu == "S") ) //Robotun Pozisyonda ise hesaplama yapýlýr.
{
if ( (Kar_Zarar >= 150) && (Kar_Alma_Seviyesi < 50) ) { Kar_Alma_Seviyesi = 50; } //50 TL kar alýr //Kar Alma Seviyesi Belirlenir.
if ( (Kar_Zarar >= 200) && (Kar_Alma_Seviyesi < 100) ) { Kar_Alma_Seviyesi = 100; } //100 TL kar alýr //Kar Alma Seviyesi Belirlenir.
if ( (Kar_Zarar >= 300) && (Kar_Alma_Seviyesi < 200) ) { Kar_Alma_Seviyesi = 200; } //200 TL kar alýr //Kar Alma Seviyesi Belirlenir.
if ( (Kar_Zarar >= 500) && (Kar_Alma_Seviyesi < 250) ) { Kar_Alma_Seviyesi = 250; } //250 TL kar alýr //Kar Alma Seviyesi Belirlenir.
}
//-----------------------------------------------------------------------------------------
//Stop ve Kar Alma Seviyeleri kontrol edilir. Duruma göre pozisyon kapatýlýr.
if (Pozisyon_Yonu == "A") //Pozisyon Alýþ Yönde ise
{
if (VIP30 < Stop_Seviyesi) { Sinyal = 1; } //Stop Seviyesi Geçilmiþ ise Pozisyon Kapatýlýr.
if (Kar_Zarar >= Kar_Limiti) { Sinyal = 1; } //Maksimum Kar Limitine Gelinmiþ ise Pozisyon Kapatýlýr.
if ( (Kar_Alma_Seviyesi > 0) && (VIP30 <= (islem_Fiyati + (Kar_Alma_Seviyesi/1000))) ) { Sinyal = 1; } //Kar Alma Seviyesi Geçilmiþ ise Pozisyon Kapatýlýr.
}
if (Pozisyon_Yonu == "S") //Pozisyon Satýþ Yönde ise
{
if (VIP30 > Stop_Seviyesi) { Sinyal = 1; } //Stop Seviyesi Geçilmiþ ise Pozisyon Kapatýlýr.
if (Kar_Zarar >= Kar_Limiti) { Sinyal = 1; } //Maksimum Kar Limitine Gelinmiþ ise Pozisyon Kapatýlýr.
if ( (Kar_Alma_Seviyesi > 0) && (VIP30 >= (islem_Fiyati - (Kar_Alma_Seviyesi/1000))) ) { Sinyal = 1; } //Kar Alma Seviyesi Geçilmiþ ise Pozisyon Kapatýlýr.
}
//Stop ve Kar Alma Seviyeleri kontrol edilir. Duruma göre pozisyon kapatýlýr. BÝTTÝ
//-------------------------------------------------------------------------------------
// Strateji Ýþlemleri Yapýlýr. BÝTTÝ
//----------------------------------------------------------------------------------
//--------------------------------------------------------------------------------
// AL - SAT Ýþlemleri Yapýlýr.
if (Sistem.HaftaSonu == false) { //Hafta Sonu Kontrolü Yapýlýr.
if (Sistem.BaglantiVar == true) { //iDeal Baðlantý Kontrolü Yapýlýr.
if (Sistem.SaatAraligi("09:10", "12:30") || Sistem.SaatAraligi("13:55", "17:30") ) { //Zaman Kontrolü Yapýlýr, Seans Saatleri
if ( (Sinyal == 1) && (Lot_Miktari != 0) && (Pozisyon_Yonu != "F")) // Sinyal ve Parametre Kontrolü Yapýlýr.
{
//Sistem.EmirHesapAdi = HesapAdi;
//Sistem.EmirAltHesap = AltHesapAdi;
Sistem.EmirSembol = SozlesmeAdi;
if (Pozisyon_Yonu == "A") { Sistem.EmirIslem = "Satýþ"; } else { Sistem.EmirIslem = "Alýþ"; }
Sistem.EmirMiktari = Lot_Miktari;
Sistem.EmirSuresi = "GUN"; // GUN, SNS, IKG
Sistem.EmirTipi = "NORMAL"; // NORMAL, KPY, KIE, GIE, SAR
Sistem.EmirFiyati = "Aktif";
Sistem.EmirFiyatTipi = "PYS"; // PYS, LMT, EIF, KAP
Sistem.EmirGonder();
Pozisyon_Yonu = "F"; //Pozisyon Kapatýldýðý için Parametre Deðerine Flat ifadesi atanýr.
Sistem.Parametreler[1] = "0"; //Pozisyon Kapatýldýðý için Parametre Deðerine 0 atanýr.
Kar_Alma_Seviyesi = 0; //Pozisyon Kapatýldýðý için Parametre Deðerine 0 atanýr.
} // AL - SAT Ýþlemleri Yapýlýr. BÝTTÝ
//-----------------------------------------------------------------------------------------------------------------
}//HaftaSonu
}//Baðlantý
}//Saat
//----------------------------------------------------------------------------------
// Ekrana Robot ile ilgili Çeþitli Bilgiler Yazýlýr.
Sistem.ZeminYazisiEkle("Pozisyon Yönü ", 1, 165, 43, Renk_Siyah, "Tahoma", 7);
Sistem.ZeminYazisiEkle("Lot miktarý ", 1, 165, 55, Renk_Siyah, "Tahoma", 7);
Sistem.ZeminYazisiEkle("Ýþlem Fiyatý ", 1, 165, 67, Renk_Siyah, "Tahoma", 7);
Sistem.ZeminYazisiEkle("Stop Seviyesi ", 1, 165, 79, Renk_Siyah, "Tahoma", 7);
Sistem.ZeminYazisiEkle("Kar Alma Seviyesi ", 1, 165, 91, Renk_Siyah, "Tahoma", 7);
Sistem.ZeminYazisiEkle("Kar-Zarar (Puan) ", 1, 165, 103, Renk_Siyah, "Tahoma", 7);
Sistem.ZeminYazisiEkle("Kar-Zarar (TL) ", 1, 165, 115, Renk_Siyah, "Tahoma", 7);
//Sisteme ait Sonuçlar ve Strateji Ekrana Yazýlýr.
if (Pozisyon_Yonu == "A") { Sistem.ZeminYazisiEkle(": Alýþ ", 1, 265, 43, Renk_Mavi, "Tahoma", 7); } //Piyasa Yönü
if (Pozisyon_Yonu == "S") { Sistem.ZeminYazisiEkle(": Satýþ ", 1, 265, 43, Renk_Kirmizi, "Tahoma", 7); } //Piyasa Yönü
if (Pozisyon_Yonu == "F") { Sistem.ZeminYazisiEkle(": Pozisyon Kapalý ", 1, 265, 43, Renk_Mor, "Tahoma", 7); } //Piyasa Yönü
Sistem.ZeminYazisiEkle(": " + Lot_Miktari.ToString(), 1, 265, 55, Renk_Mor, "Tahoma", 7); //Lot Miktarý
Sistem.ZeminYazisiEkle(": " + islem_Fiyati.ToString(), 1, 265, 67, Renk_Mor, "Tahoma", 7); //Ýþlem Fiuyatý
Sistem.ZeminYazisiEkle(": " + Stop_Seviyesi.ToString(), 1, 265, 79, Renk_Kirmizi, "Tahoma", 7); //Stop Seviyesi
Sistem.ZeminYazisiEkle(": " + Kar_Alma_Seviyesi.ToString() + " Puan", 1, 265, 91, Renk_Yesil, "Tahoma", 7); //Kar Alma Seviyesi
if (Kar_Zarar >= 0) { Sistem.ZeminYazisiEkle(": " + Kar_Zarar.ToString() + " Puan", 1, 265, 103, Renk_Yesil, "Tahoma", 7); } //Kar Zarar Durumu Puan +
if (Kar_Zarar < 0) { Sistem.ZeminYazisiEkle(": " + Kar_Zarar.ToString() + " Puan", 1, 265, 103, Renk_Kirmizi, "Tahoma", 7); } //Kar Zarar Durumu Puan -
if (Kar_Zarar >= 0) { Sistem.ZeminYazisiEkle(": " + ((Kar_Zarar/10)*Lot_Miktari).ToString() + " TL", 1, 265, 115, Renk_Yesil, "Tahoma", 7); } //Kar Zarar Durumu Puan +
if (Kar_Zarar < 0) { Sistem.ZeminYazisiEkle(": " + ((Kar_Zarar/10)*Lot_Miktari).ToString() + " TL", 1, 265, 115, Renk_Kirmizi, "Tahoma", 7); } //Kar Zarar Durumu Puan -
if (Pozisyon_Yonu != "F") // Pozisyon kapalý ise çizgiler kapatýlýr.
{
Sistem.Cizgiler[0].Deger = Sistem.Liste(islem_Fiyati); Sistem.Cizgiler[0].Aciklama = "Ýþlem Fiyatý"; Sistem.Cizgiler[0].Kalinlik = 2; Sistem.Cizgiler[0].Renk = Renk_Mavi;
Sistem.Cizgiler[1].Deger = Sistem.Liste(Stop_Seviyesi); Sistem.Cizgiler[1].Aciklama = "Stop Seviyesi"; Sistem.Cizgiler[1].Kalinlik = 2; Sistem.Cizgiler[1].Renk = Renk_Kirmizi;
//Kar Alma Çizgisi Ekrana Çizdirilir.
if ( (Pozisyon_Yonu == "A") && (Kar_Alma_Seviyesi >0) ) { Sistem.Cizgiler[2].Deger = Sistem.Liste(islem_Fiyati + (Kar_Alma_Seviyesi/1000)); Sistem.Cizgiler[2].Aciklama = "Kar Seviyesi"; Sistem.Cizgiler[2].Kalinlik = 2; Sistem.Cizgiler[2].Renk = Renk_Yesil; }
if ( (Pozisyon_Yonu == "S") && (Kar_Alma_Seviyesi >0) ) { Sistem.Cizgiler[2].Deger = Sistem.Liste(islem_Fiyati - (Kar_Alma_Seviyesi/1000)); Sistem.Cizgiler[2].Aciklama = "Kar Seviyesi"; Sistem.Cizgiler[2].Kalinlik = 2; Sistem.Cizgiler[2].Renk = Renk_Yesil; }
}
// Ekrana Robot ile ilgili Çeþitli Bilgiler Yazýlýr. BÝTTÝ
//---------------------------------------------------------------------------------------
} //VIP30 Deðiþkeni 0 Sýfýr kontrolü
//Kontrol Edilecek YENÝ Pozisyon Bilgileri Parametrelere Aktarýlýr.
Sistem.Parametreler[0] = Pozisyon_Yonu; // Girilen pozisyonun yönü belirlenir Örnek: Satýþ = S Alýþ = A
Sistem.Parametreler[2] = islem_Fiyati.ToString(); //Lot Alýþ/Satýþ fiyatý belirlenir.
Sistem.Parametreler[5] = Kar_Alma_Seviyesi.ToString(); //Pozisyondan alýnacak olan kar seviyesi. Örnek: 300 Puan için = 300
Yer Ýmleri