Sayfa 80/595 İlkİlk ... 3070787980818290130180580 ... SonSon
Arama sonucu : 4754 madde; 633 - 640 arası.

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

  1.  Alıntı Originally Posted by razer Yazıyı Oku
    Heikin ashi için referans olarak alınan bir adet başlangıç barınızın olması gerek (mecbur bir adet OHLC olacak yani), o barı nereden başlattığınıza bağlı olarak elinizdeki sonuç grafiği farklı olacaktır. Acaba fark buradan kaynaklanıyor olabilir mi? Şu anda deneyemiyorum, bu akşam deneyip buraya yazacağım ama fikir olarak paylaşayım dedim.

    Bu arada yanlış hatırlamıyorsam İdeal'in heikin ashi grafiğindeki OHLC verileri -sol üstteki- gerçek veriler, türevlenmiş olanlar değil.
    idealin nerede hata yaptığını dün yazdım aslında.
    sn çağların formülü mantığında yazıyorum, grafik hesaplarında bu formülü kullanıyor ideal:
    ha[i].Open = (bars[i - 1].Open + bars[i - 1].Close) / 2;

    yani düz veri üzerinden hesaplanıyor open.
    doğrusu sn çağlar'ın araştırmasından anladığım kadarı ile toplanan değerlerin önceki barlara ait
    Heikin ashi değerleri olmasıdır.

    belirttiğiniz sol üstte yazan rakamları bir hata olarak yazmıyorum, bu ise bence önemli bir eksiklik.

    sonuç olarak;
    1.ideal
    heikin ashi de open formülünü düzeltmelidir.
    2.heikin ashi grafik tipinde sol üst panelde heikin ashi değerleri olmalıdır.

    Keçiyi yardan uçuran bir tutam ottur..

  2. Sn Keçi, Sn Çaglar 1 dk lik datadan üst periyot ortalamalari donemcevir kullanmadan elde edebilecegimiz bir yonteminiz var midir? Yani örnegin 5 dklik 200 birim ortalamayi 1 dklik datadan hesaplatmak istiyorum.

  3.  Alıntı Originally Posted by umit_ykoc Yazıyı Oku
    Sn Keçi, Sn Çaglar 1 dk lik datadan üst periyot ortalamalari donemcevir kullanmadan elde edebilecegimiz bir yonteminiz var midir? Yani örnegin 5 dklik 200 birim ortalamayi 1 dklik datadan hesaplatmak istiyorum.

    Donemcevir'in yaptığı iş,
    küçük periyot verinin count u kadar yeni bir liste oluşturup,
    bu yeni boş listeyi "date" kontrolü yaparak,
    büyük periyot veri üzerinden hesaplanan liste ile doldurmaktır.
    sonuç olarak doldurulan bu yeni liste tarihleri eşleşmiş ve küçük periyot verinin countu kadar döner.
    Böylece çizmek mümkün olur.


    Benzer bir işi farklı bir kodla yapmak mümkün fakat farklı bir yolla yapmak mümkün değil.
    Çünkü yazılacak yeni kodlar aynı iş mantığında olmak zorunda, özellikle amaç grafik çizmek ise.


    Bundan dolayı şunu soracağım, neden Donemcevir kullanmak istemiyorsunuz?
    Keçiyi yardan uçuran bir tutam ottur..

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

     Alıntı Originally Posted by Keçi Yazıyı Oku
    Donemcevir'in yaptığı iş,
    küçük periyot verinin count u kadar yeni bir liste oluşturup,
    bu yeni boş listeyi "date" kontrolü yaparak,
    büyük periyot veri üzerinden hesaplanan liste ile doldurmaktır.
    sonuç olarak doldurulan bu yeni liste tarihleri eşleşmiş ve küçük periyot verinin countu kadar döner.
    Böylece çizmek mümkün olur.


    Benzer bir işi farklı bir kodla yapmak mümkün fakat farklı bir yolla yapmak mümkün değil.
    Çünkü yazılacak yeni kodlar aynı iş mantığında olmak zorunda, özellikle amaç grafik çizmek ise.


    Bundan dolayı şunu soracağım, neden Donemcevir kullanmak istemiyorsunuz?
    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.

  5.  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.

  6.  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

  7. Şunu yapmak mümkün müdür. 5 dakikalık periyodda cci sıfırı yukarı ve aşağı kesen hisseleri sıfıra olan uzaklığına göre sıralasın ve bunları bir sayfada göstersin dursun. Bunu 5 dakikada bir kontrol edip sayfayı yenilesin... Sıfırı yukarı kesen ve en uzak olan en üstte, sıfırı aşağı kesmiş be en uzak olan ise en aşağıda şeklinde. Mümkün ise hisseleride bir txt den okutayım istediklerimi kontrol edeyim.
    Syg..
    Hedefin yok ise yardım edecek rüzgarı bulamazsın.

  8. 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.

Sayfa 80/595 İlkİlk ... 3070787980818290130180580 ... 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
  •