Alýntý Originally Posted by derborsa Yazýyý Oku
Soru orhan hocaya sorulmuÅŸ ama bende ÅŸöyle bir kod var.
Belki iÅŸinize yarar.

Selamlar / Saygılar


Kod:
// BAR KAPANIŞINI BEKLEMEDEN İŞLEM YAPAN ROBOT KODU
// BU KODU KULLANMAK İÇİN SİSTEMİNİZİN REPAİNT YAPAN KODLARDAN ARINDIRILMASI GEREKİR
// BU KODU KULLANMAK TEHLİKELİ SONUÇLARA YOL AÇABİLİR
// KOD KONUSUNDA UZMAN DEĞİLSENİZ KULLANMAYIN
var LotSize = 1; //iÅŸlem adedi
var Sembol = "VIP'VIP-THYAO"; // ÖRNEK SEMBOL KODU
var Periyot = "1"; //1 dklık grafik
var SistemAdi = "CANLIBARDAISLEMYAPANROBOTKODU"; //sistem adını buraya girin çift tırnak içinde

// CANLI BARDA İŞLEM YAPAN FONKSİYON Sistem.SistemGetirCanli(SistemAdi , Sembol, Periyot); 
var MySistem = Sistem.SistemGetirCanli(SistemAdi , Sembol, Periyot); //sistemin adı, grafik sembolü, grafiÄŸin periyodu
if (MySistem == null) 
{
   Sistem.Mesaj(Sistem.Name + "Hatalı ÇalıÅŸıyor !");
}
else
{
   var EmirSembol =  "VIP'F_THYAO1118"; // BURAYA SEMBOLÜNÜZÜN AÇIK YAZILIÅžI
   var SonFiyat = Sistem.SonFiyat(EmirSembol);
   var Anahtar = Sistem.Name + "," + EmirSembol;
   double IslemFiyat = 0;
   DateTime IslemTarih;
   var Miktar = 0.0;
   var Rezerv = "";
   var Pozisyon = Sistem.PozisyonKontrolOku(Anahtar, out IslemFiyat, out IslemTarih);

// CANLI BARDA İŞLEM YAPAN FONKSİYON Sistem.SistemGetirCanli(SistemAdi , Sembol, Periyot); 
   var SonYon = Sistem.SonYonGetirCanli(SistemAdi, Sembol, Periyot);
   if (Sistem.Saat.CompareTo("10:00:00") <= 0 || Sistem.Saat.CompareTo("17:59:59") >= 0)  // seans yok iÅŸlem yapma
   {
   }
//her günün sonunda poz varsa kapansın, ertesi sabah tekrar aynı yönde poz açılsın istenirse
//   else if (Sistem.Saat.CompareTo("16:30:00") >= 0)  // Gün Sonu Kapat
//   {
//      if (Pozisyon != 0)
//         Miktar = -Pozisyon;
//   }
   else if (SonYon == "F" && Pozisyon != 0)  // Flata Geç
      Miktar = -Pozisyon;
   else if (SonYon == "A" && Pozisyon != LotSize)  // Al
      Miktar = LotSize - Pozisyon;
   else if (SonYon == "S" && Pozisyon != -LotSize)  // Sat
      Miktar = -LotSize - Pozisyon;
    // Emir Gönder
    var Islem = "";
    if (Miktar > 0) {Islem = "ALIS"; Rezerv = "ALIÅž YAPILDI";}
    if (Miktar < 0) {Islem = "SATIS"; Rezerv = "SATIÅž YAPILDI";}
    if (Islem != "")
    {
        Sistem.PozisyonKontrolGuncelle(Anahtar, Miktar + Pozisyon, SonFiyat, Rezerv);
        Sistem.EmirSembol = EmirSembol ;
        Sistem.EmirIslem = Islem;
        Sistem.EmirSuresi = "KIE"; // GUN, KIE, IKG
        Sistem.EmirTipi = "Piyasa"; // Piyasa, Limitli, Piyasadan Limite
        Sistem.EmirMiktari = Math.Abs(Miktar);
        Sistem.EmirGonder();
// BURAYDA ROBOTUN İŞLEMLERİNİ ANLIK OLARAK TEXT'E YAZAN LOG TUTAN KOD VAR
//SANALDA TEST EDERKEN İNANILMAZ BİR KOLAYLIK SAĞLAR
        File.AppendAllText( "C:\\ideal\\CANLIBARDAISLEMYAPANROBOTKODU.txt"  , Sistem.Name + "-----" + EmirSembol + "-----" + DateTime.Now.ToString("HH:mm:ss") +  Sistem.EmirIslem + "------ " + "Fiyat =" + SonFiyat.ToString() + "-----" + "Marj = " + "\r\n");
    }
}

abi,
var SonYon = Sistem.SonYonGetirCanli(SistemAdi, Sembol, Periyot);

kodu

var GrafikSistem= Sistem.SistemGetir(SistemAdi, Sembol, Periyot);
var SonYon = GrafikSistem.Yon[GrafikSistem.GetLastYonNo()];

kodlarýnýn (Lib.cs de geçen ) muadilidir. bu ok.

Fakat kodda geçen

var MySistem = Sistem.SistemGetirCanli(SistemAdi , Sembol, Periyot);

kullanýmý hatalý. çünkü SistemGetirCanli diye bir metod idealde henüz yok.
Eðer henüz yayýnlanmamýþ beta bir sürümü kullanýyorsanýz SistemGetirCanli içerisinde RunSistem yapýlmamasýný rica edin yoksa gereksiz yere 2 kez sistem çalýþýr. (SistemGetirCanli +SonYonGetirCanli)