Sayfa 346/593 İlkİlk ... 246296336344345346347348356396446 ... SonSon
Arama sonucu : 4738 madde; 2,761 - 2,768 arası.

Konu: İDEAL veri terminalinde /Sistem/İndikatör/Robot

  1. İDEAL veri terminalinde /Sistem/İndikatör/Robot

    Merhaba,kodun icinde grafigin calistigi para birimini alabilecegim bir method var midir?

  2.  Alıntı Originally Posted by erhanacikgoz1 Yazıyı Oku
    SonYon için.

    Bir önceki son yönü çekebilmenin bir yöntemi varmıdır.

    Mesela SonYon[-1] filan gibi.
    Erhan hocam,

    //1 deki gibi yeni bir liste tanimlayip, //2 deki satiri dongu icersine ekleyip dener misiniz?

    PHP Code:

    //1 
    var SonYon_Liste =  Sistem.Liste(0);

    //2
    SonYon_Liste[i]=Sistem.Yon[i]=="A"?1:Sistem.Yon[i]=="S"?-1:Sistem.Yon[i]=="F"?0:SonYon_Liste[i-1]; 
    Bu yeni liste Sistem.Yon'deki A/S/F degisimlerini 1/-1/0 degerleri olarak tutuyor. Sistem.Yon listesi sadece yon degisimleri sirasinda deger aliyor yani yon degisimi disindaki herhangi baska bir anda ici bos gibi. Yeni liste ise tum barlar boyunca ekranda gordugumuz yone paralel 1/-1/0 degerleri atiyor.

    Not:Bu satirlari eski forumdan "anonim" arkadasimizin sistem birlestirme kodu icerisinde uyarladim.

  3.  Alıntı Originally Posted by tuncahm Yazıyı Oku
    var ATT = Sistem.TOMA(C, 1, 0.015);
    var TOMA = Sistem.TOMA(ATT, 20, 0.5);

    Sistem.Cizgiler[1].Deger = TOMA;

    var SonYon = "";
    var Sinyal = "";
    double SonFiyat = 0.0;

    for (int i = 100; i < V.Count; i++)
    {
    // Strateji
    if ( ATT[i+1] >TOMA[i+1]) Sinyal = "A";
    else if (ATT[i+1] < TOMA[i+1]) Sinyal = "S";

    yukarıdaki sistemi örnek amaçlı yazdım strateji kısmını bu şekilde kullanan var mı yada kullanılması sonucu ne olabilir ?
    cevaplarınınız için şimdiden Tesekkür Ederim.
    Merhaba,
    Benim gorebildigim kadariyla strateji kismindaki kodunuz gelecege bakip sinyal uretmek istiyor. Geriye donuk testlerde bir sekilde calistirabilseniz bile seans sirasinda bir sonraki bar (i+1) hicbir zaman olusmayacagi icin tutarli bir sinyal de uretmeyecektir diye dusunuyorum. Muhtemelen yeni bar olustuktan sonra sanki onceki barda sinyal vermis gibi yapacaktir.
    Son düzenleme : 3c1a; 04-08-2019 saat: 12:35.

  4.  Alıntı Originally Posted by 3c1a Yazıyı Oku
    Erhan hocam,

    //1 deki gibi yeni bir liste tanimlayip, //2 deki satiri dongu icersine ekleyip dener misiniz?

    PHP Code:

    //1 
    var SonYon_Liste =  Sistem.Liste(0);

    //2
    SonYon_Liste[i]=Sistem.Yon[i]=="A"?1:Sistem.Yon[i]=="S"?-1:Sistem.Yon[i]=="F"?0:SonYon_Liste[i-1]; 
    Bu yeni liste Sistem.Yon'deki A/S/F degisimlerini 1/-1/0 degerleri olarak tutuyor. Sistem.Yon listesi sadece yon degisimleri sirasinda deger aliyor yani yon degisimi disindaki herhangi baska bir anda ici bos gibi. Yeni liste ise tum barlar boyunca ekranda gordugumuz yone paralel 1/-1/0 degerleri atiyor.

    Not:Bu satirlari eski forumdan "anonim" arkadasimizin sistem birlestirme kodu icerisinde uyarladim.
    performans açısından döngüye sokmadan bu işi yapayım demiştim.

    Bir arayüz tasarlıyorum timer ile Sistem Getiri çalıştırıp sistemin yönlerini sürekli olarak çekiyorum. Yön çekildiği veya değiştiği andaki grafik fiyat verilerindeki son değer neyse onu form uygulamama yazdırmak istiyorum amacım bu.

    -Sistem YÖnünü çekiyorum ve forma yazdırabiliyorum PROBLEM YOK!
    -Alış veya Satış fiyatınıda çekiyorum forma yazdırıyorum YÖN DEĞİŞMESE BİLE FİYAT DEĞİŞİYOR. PROBLEM VAR!

    BUradaki problem ana sebebi timer sürekli olarak okuma yapıyor haliyle koşul gerçekleştiği içinde okumayı sürdürüyor. Buaya bir if bloğuyla son yön değişmişse git fiyatları oku veya yansıt gibi birşey demem lazım ki sadece o anda fiyatı okusun. Bir önceki son yön değişmiş ise git son fiyatı oku demek lazım fakat son yon bir liste değil anladıgım kadarıyla.

    Yonumuz diye bir değişken oluşturdum global alanda timer dışında burayı kontrol ettireyim diyordum. Yanlız Yonumuz adlı değişkeni tetikleyemiyorum. yine timer veya for gibi birşeylere girişmek gerekiyormuş gibi.

    Aklıma gelen şey şu Yonumuz adlı global alandaki değişkeni bir listeye çeviremezmiyiz. Bunu bir liste halinde tutup bir önceki yonumuz şöyle şimdiki yönümüz böyle ise fiyatı o zaman oku gibi bir kurgu problemı cozermı yoksa liste sürekli olarak dolup şişirirmi programı kafamda deli sorular KIT C# bilgisiyle :D

    Kod:
    int Yonumuz;
            
            public void timer1_Tick(object sender, EventArgs e) //timer1 acılınca okunacak verıler
            {
    
                SistemAdi = textBoxsistemadi.Text;
                SembolAdi = textBoxsembol.Text;
                Periyot = textBoxperiyot.Text;
                var Sistemim = User.Sistem.SistemGetir(SistemAdi, SembolAdi, Periyot);
                
                if (Sistemim.SonYon == "A")
                {
                    lblsistemyonu.Text = "LONG";
                    Yonumuz = 1;
                    var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                    float P1 = S1.LastPrice; //son fiyatı
                    lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                }
                if (Sistemim.SonYon == "S")
                {
                    lblsistemyonu.Text = "SHORT";
                    Yonumuz = -1;
                    var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                    float P1 = S1.LastPrice; //son fiyatı
                    lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                }
                if (Sistemim.SonYon == "F")
                {
                    lblsistemyonu.Text = "FLAT";
                    Yonumuz = 0;
                    var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                    float P1 = S1.LastPrice; //son fiyatı
                    lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                }
                
                else if (Sistemim.SonYon == null)
                {
                    MessageBox.Show("Sistem Bulunamadı!");
                }
            }
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  5. // hesapla
    var DEMA1 = Sistem.DEMA(5);
    var DEMA2 = Sistem.DEMA(21);

    // hesaplanan verileri çizgilere aktar
    Sistem.Cizgiler[0].Deger = DEMA1;
    Sistem.Cizgiler[1].Deger = DEMA2;

    // sistem strateji
    Sistem.KesismeTara(DEMA1, DEMA2);


    // algo strateji
    if (Sistem.YukariKestiyse(DEMA1, DEMA2)) // alış
    Sistem.AlgoIslem = "A";
    if (Sistem.AsagiKestiyse(DEMA1, DEMA2)) // satış
    Sistem.AlgoIslem = "S";


    // algo açıklama
    Sistem.AlgoAciklama = "DEMA1=" + DEMA1[Sistem.BarSayisi-1].ToString("0.00") + " " +
    "DEMA2=" + DEMA2[Sistem.BarSayisi-1].ToString("0.00");

    ************************************************** ********


    // parametreleri al
    var Periyot = Sistem.Parametreler[0];
    var Yuzde = Sistem.Parametreler[1];

    // TOMA hesapla
    var TOMA = Sistem.TOMA(Periyot, Yuzde);
    // EMA hesapla
    var Veriler = Sistem.GrafikFiyatSec("Kapanis");
    var EMA = Sistem.MA(Veriler, "Exp", Periyot);

    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger = TOMA;
    Sistem.Cizgiler[1].Deger = EMA;

    // strateji
    Sistem.KesismeTara(EMA, TOMA);



    **************************************
    İdealin demo verisyonunda üsteki dema5-dema21 formülünde siyah olarak belirttiğim yerde sistem strateji ve algo stratejisi varken Toma formül örneginde sadece strateji bölümü eklenmiş, algo strateji eklenmemiş.

    dema örnegi algo örnegi iken, toma indikatör örnegimi oluyor. Fark bumdanmı kaynaklanıyor.

  6.  Alıntı Originally Posted by erhanacikgoz1 Yazıyı Oku
    SonYon için.

    Bir önceki son yönü çekebilmenin bir yöntemi varmıdır.

    Mesela SonYon[-1] filan gibi.

    Orhan Akdoğan ın Lib dosyasında buna benzer bir şey gördüm ama bahsettiğiniz olay mı bilmiyorum.


  7. Problemi muhtemelen çözdüm Pazartesi deneyeceğim Ancak kurgulanan algorıtma doğru diye düşünüyorum.

    Bilgi ve öğretme amaçlı buraya da yayınlamış olayım.

    a,s,f diye 0 değerinde değişkenler oluşturdum global alanda.

    Timerin tick olayına yani her saniyede bir diyelim Sistemgetiri çalıştırıp sistemi çekiyor.

    eğer sistemin son yonu A ise;
    eğer a nın değeri de 0 a eşit ise;
    Son fiyatı oku ve a nın değerini 1 arttır s ve f yide 0 yap.

    Böylece timer tekrar okuma yaptıgında a'nın değeri artık 1 olacağı için LONG yazmasına veya son fiyatı okumasına gerek kalmayacak bir kere long olmuşsa birdaha long olmuş gibi davranmayacak.

    Normalde her tickte yani her saniyede son yon kontrolunu saglayan if bloklarını okuyup duruyordu bu sayede o bloklarıda atlayacak max performansla calıstırmış olacagım

    Ancak sistem getir acaba ne kadar yük bindiriyor makinaya onu ilerde ölçeceğim.


    Kod:
    int a = 0;
            int s = 0;
            int f = 0;
            
            public void timer1_Tick(object sender, EventArgs e) //timer1 acılınca okunacak verıler
            {
                SistemAdi = textBoxsistemadi.Text;
                SembolAdi = textBoxsembol.Text;
                Periyot = textBoxperiyot.Text;
                var Sistemim = User.Sistem.SistemGetir(SistemAdi, SembolAdi, Periyot);
                
                if (Sistemim.SonYon == "A") 
                {
                    if (a==0)
                    {
                        lblsistemyonu.Text = "LONG";
                      
                        var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                        float P1 = S1.LastPrice; //son fiyatı
                        lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                        a++;
                        s = 0;
                        f = 0;
                    }
    
                }
                else if (Sistemim.SonYon == "S")
                {
                    if (s==0)
                    {
                        lblsistemyonu.Text = "SHORT";
                        var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                        float P1 = S1.LastPrice; //son fiyatı
                        lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                        s++;
                        a = 0;
                        f = 0;
                    }
                   
                }
                else if (Sistemim.SonYon == "F")
                {
                    if (f==0)
                    {
                        lblsistemyonu.Text = "FLAT";
                        var S1 = User.Sistem.YuzeyselVeriOku(SembolAdi);//yüzeysel verileri oku
                        float P1 = S1.LastPrice; //son fiyatı
                        lblislemfiyat.Text = P1.ToString("0.0000"); //yazdır
                        f++;
                        s = 0;
                        a = 0;
                    }
                }
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  8. #2768
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,630
    Erhan aşağıdaki kalıptan alacağın parça formül işine yarayacaktır.
    PHP Code:
    var FIYATLIST Sistem.Liste(0);


       if (
    AlisSinyal && SonYon != "A" || SonYon == "F" && Flat_Al   )  // alış sinyal
       
    {
          
    Miktar = -Pozisyon LevelLot ;
          
    MIKTARLIST[i] = Miktar;
          
    FIYATLIST[i] = C[i]; 
          
    AvrFiyat C[i];
          
    AVRFIYATLIST[i] = AvrFiyat;
          
    izLIST[i] =  (FIYATLIST[i] - izleyen ) ;                                 
          
    Pozisyon LevelLot ;
          
    POZLIST[i] = Pozisyon;           
          
    SonYon "A"
          
    Sistem.Yon[i] = SonYon;
       }
       else if (
    SatisSinyal && SonYon != "S" || SonYon == "F" && Flat_Sat )  // satış sinyal
       
    {
          
    Miktar = -Pozisyon LevelLot ;
          
    MIKTARLIST[i] = Miktar;
          
    FIYATLIST[i] = C[i];
          
    AvrFiyat C[i];
          
    AVRFIYATLIST[i] = AvrFiyat;
          
    izLIST[i] =  (FIYATLIST[i] + izleyen ) ;                                  
          
    Pozisyon = - LevelLot ;
          
    POZLIST[i] = Pozisyon;         
          
    SonYon "S"
          
    Sistem.Yon[i] = SonYon;
       }


    Sistem.Cizgiler[2].Deger FIYATLIST
    grafikteki
    beyaz çizgi İşlem yerlerini ve o andaki fiyatı
    Açıkmavi ortalama maliyeti
    Sarı İzleyen stop değerini gösterir

    Bear_Bull
    @BearBull26

Sayfa 346/593 İlkİlk ... 246296336344345346347348356396446 ... SonSon

Yer İmleri

Yer İmleri

Gönderi Kuralları

  • Yeni konu açamazsınız
  • Konulara cevap yazamazsınız
  • Yazılara ek gönderemezsiniz
  • Yazılarınızı değiştiremezsiniz
  •