Artan

13,86 10 18:10
16,73 9.99 18:10
48,46 9.99 18:10
47,80 9.99 18:10
9,49 9.97 18:10
Artan Hisseler

Azalan

74,25 -10 18:10
1,80 -10 18:10
247,50 -10 18:10
261,00 -10 18:10
355,50 -10 18:10
Azalan Hisseler

İşlem

12.483.671.562,50 18:10
7.660.126.892,25 18:10
7.224.558.633,72 18:10
6.414.277.037,00 18:10
6.015.548.689,20 18:10
Tüm Hisseler
Arama sonucu : 4978 madde; 1 - 8 arası.

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

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1.  Alıntı Originally Posted by umit_ykoc Yazıyı Oku
    Donemcevirden olsa gerek ( tam emin degilim ama başka bir sebebi de olmamali ) robotta flate dönüş yapiyor flatli sistem kullanmamama ragmen. Ha birde ust periyotlarin da devamli güncel olmasi gerekiyor donemcevirde. 1 dklik grafikten ilgili üst periyotlarin kapanislarini elde ediyorum oraya kadar sorun yok. Ama iş ortalamayi hesaplamaya gelince verdigimiz 100 birimlik degeri 1 dklik grafige gore aliyor ve iş tikaniyor , cizmesinin önemi yok yeterki hesabi yapsin.
    Sn Keçi'nin yorumlarına katılmak ile birlikte dönem çevir kullanmadan her 5 dakikada bir barın kapanış değerini alıp onları bir listeye atan ve bu listenin ortalamasını belli periyotlarda hesaplayan bir sistem yazdım:

    Kod:
    try
    {
        var P = Sistem.GrafikVerileri;
        var C = Sistem.GrafikFiyatSec("Kapanis");
        var C5 = new List<float>();
        var C5MA = Sistem.Liste(0);
        var ma5Period = 200;
    
        Sistem.Yon = User.List("", Sistem.BarSayisi);
        var pos = "F";
        var c5ma = 0f;
    
        for (int i = 0; i < P.Count; i++)
        {
            if (P[i].Date.Minute % 5 == 0)
                C5.Add(P[i].Close);
    
            if (C5.Count == ma5Period)
            {
                c5ma = C5.Average();
                C5.Clear();
            }
    
            C5MA[i] = c5ma;
    
            var buy = C[i] > C5MA[i];
            var sell = C[i] < C5MA[i];
            var flat = false;
    
            if ((pos == "A" || pos == "S") && flat) { Sistem.Yon[i] = pos = "F"; }
            else if (pos != "A" && buy) { Sistem.Yon[i] = pos = "A"; }
            else if (pos != "S" && sell) { Sistem.Yon[i] = pos = "S"; }
        }
    
        Sistem.GetiriHesapla("01/01/2010", 0.000);
        Sistem.Cizgiler[0].Deger = Sistem.GetiriKZ;
        Sistem.Cizgiler[1].Deger = Sistem.GetiriKZAy;
        Sistem.Cizgiler[2].Deger = C5MA;
    }
    catch (Exception ex)
    {
        Sistem.Mesaj(ex.ToString());
    }
    Kodla ile ilgili önemli noktalar şunlar

    • 5 dakikada bir kapanış değeri alıp 200 bar beklediği için toplamda 1000 bar beklemiş oluyor 1 dakikalık grafiklerde.
    • Ben hesaplamaya i = 0'da başladım yanı geriden bar toplayıp hesaplıyor. Dolayısıyla son barlardan geriye doğru hesaplasın derseniz algoritmayı değiştirmeniz gerekiyor.


    Hızlı bir şekilde yazıp test etmediğim için hatalar olabilir, kontrol etmenizi tavsiye ederim.

  2.  Alıntı Originally Posted by Caglar Yazıyı Oku
    Sn Keçi'nin yorumlarına katılmak ile birlikte dönem çevir kullanmadan her 5 dakikada bir barın kapanış değerini alıp onları bir listeye atan ve bu listenin ortalamasını belli periyotlarda hesaplayan bir sistem yazdım:

    Kod:
    try
    {
        var P = Sistem.GrafikVerileri;
        var C = Sistem.GrafikFiyatSec("Kapanis");
        var C5 = new List<float>();
        var C5MA = Sistem.Liste(0);
        var ma5Period = 200;
    
        Sistem.Yon = User.List("", Sistem.BarSayisi);
        var pos = "F";
        var c5ma = 0f;
    
        for (int i = 0; i < P.Count; i++)
        {
            if (P[i].Date.Minute % 5 == 0)
                C5.Add(P[i].Close);
    
            if (C5.Count == ma5Period)
            {
                c5ma = C5.Average();
                C5.Clear();
            }
    
            C5MA[i] = c5ma;
    
            var buy = C[i] > C5MA[i];
            var sell = C[i] < C5MA[i];
            var flat = false;
    
            if ((pos == "A" || pos == "S") && flat) { Sistem.Yon[i] = pos = "F"; }
            else if (pos != "A" && buy) { Sistem.Yon[i] = pos = "A"; }
            else if (pos != "S" && sell) { Sistem.Yon[i] = pos = "S"; }
        }
    
        Sistem.GetiriHesapla("01/01/2010", 0.000);
        Sistem.Cizgiler[0].Deger = Sistem.GetiriKZ;
        Sistem.Cizgiler[1].Deger = Sistem.GetiriKZAy;
        Sistem.Cizgiler[2].Deger = C5MA;
    }
    catch (Exception ex)
    {
        Sistem.Mesaj(ex.ToString());
    }
    Kodla ile ilgili önemli noktalar şunlar

    • 5 dakikada bir kapanış değeri alıp 200 bar beklediği için toplamda 1000 bar beklemiş oluyor 1 dakikalık grafiklerde.
    • Ben hesaplamaya i = 0'da başladım yanı geriden bar toplayıp hesaplıyor. Dolayısıyla son barlardan geriye doğru hesaplasın derseniz algoritmayı değiştirmeniz gerekiyor.


    Hızlı bir şekilde yazıp test etmediğim için hatalar olabilir, kontrol etmenizi tavsiye ederim.
    Teşekkür ederim, kod örneğiniz şahsen benim hic anlamadiğim terimler içeriyor deneyeceğim. bilginiz bana göre cok üst düzey, umarim piyasada getirisini fazlasiyla aliyorsunuzdur.

    Verdiğiniz örnek dogruysa mesela 15-30-60 periyotlarda %5 olan kisma ne yazacagiz? Sacma soru sormuş olabilirim

  3. bilginiz bana göre cok üst düzey, umarim piyasada getirisini fazlasiyla aliyorsunuzdur.
    İyi dilekleriniz için teşekkür ediyorum. Algo trading de yeni sayılırım dolayısıyla sizin sisteminizin getirisine henüz yaklaşamadım

    Verdiğiniz örnek dogruysa mesela 15-30-60 periyotlarda %5 olan kisma ne yazacagiz?
    Biraz açıklama yapsam daha iyi anlaşılabilirdi haklısınız.
    % 5 yazdığım satır barın dakikasının 5 ve 5'in katları olduğunda 0 değerini üretiyor. Yani 5, 10, 15,... 50, 55 gibi.
    15 dakika için "P[i].Date.Minute % 15 == 0" yazardım ancak bu varsayım seansın saat başı, 15 veya 30'uncu dakikada başladığını varsayıyor.
    30 ve 60 için bu ifade daha kolay yazılabilir. Örneğin 60 için dakikanın 0 olması yeterli, yani: "P[i].Date.Minute == 0". 30 için ise dakika 0 veya 30 olabilir şeklinde.

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

     Alıntı Originally Posted by Caglar Yazıyı Oku
    İyi dilekleriniz için teşekkür ediyorum. Algo trading de yeni sayılırım dolayısıyla sizin sisteminizin getirisine henüz yaklaşamadım


    Biraz açıklama yapsam daha iyi anlaşılabilirdi haklısınız.
    % 5 yazdığım satır barın dakikasının 5 ve 5'in katları olduğunda 0 değerini üretiyor. Yani 5, 10, 15,... 50, 55 gibi.
    15 dakika için "P[i].Date.Minute % 15 == 0" yazardım ancak bu varsayım seansın saat başı, 15 veya 30'uncu dakikada başladığını varsayıyor.
    30 ve 60 için bu ifade daha kolay yazılabilir. Örneğin 60 için dakikanın 0 olması yeterli, yani: "P[i].Date.Minute == 0". 30 için ise dakika 0 veya 30 olabilir şeklinde.
    Teşekkür ederim aciklama icin. Örneğinizi Geliştirebilirim diye düşünüyorum.

    Getiri konusuna şunu söyleyebilirim kod bilginize ekran tecrubenizi eklerseniz bizim getiriler sizinkinin yaninda çöp kalir.

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
  •