Artan

339,00 9.98 11:02
10,43 9.91 11:03
789,00 9.58 09:55
57,25 8.02 11:03
13,04 6.8 11:03
Artan Hisseler

Azalan

66,60 -10 11:03
89,70 -9.98 11:03
12,28 -9.97 11:03
234,30 -9.97 11:03
97,95 -9.97 11:03
Azalan Hisseler

İşlem

4.206.368.941,55 11:03
2.063.513.841,00 11:03
1.839.787.251,88 11:03
1.725.222.411,60 11:03
1.689.925.994,64 11:03
Tüm Hisseler
Arama sonucu : 4980 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 Caglar Yazıyı Oku
    Malesef o şekilde kullanamazsınız. Nedenleri:

    1- Öncelikle bu bir Sistem metodu değil. iDeal'de olmayan bir metod yazdık. Ben user.dll kullanıyorum, dolayısıyla benim için User.Median(H, C, L) şeklinde kullanımı.
    2- Metod için period tanımlamadım. Listenin bütün elemanlarını birleştirip median hesaplar. Belli bir period için hesaplasın istiyorsanız verileri bir listeye ekleyip bu metodu çağırabilirsiniz.
    Yani, var H10 = Sistem.HHV(10,"Yuksek"); deyip diğerlerini de aynı şekilde tanımlayıp

    var M10 = User.Median(H10,C10,L10) dersek istediğimiz sonucu elde etmiş oluruz. Doğru mudur ?

  2.  Alıntı Originally Posted by vVvendetta Yazıyı Oku
    Yani, var H10 = Sistem.HHV(10,"Yuksek"); deyip diğerlerini de aynı şekilde tanımlayıp

    var M10 = User.Median(H10,C10,L10) dersek istediğimiz sonucu elde etmiş oluruz. Doğru mudur ?
    Melesef doğru değil.
    Anladığım kadarıyla siz Median'ı indiktör olarak kullanmak istiyorsunuz. Ancak verdiğiniz excel örneğinde veriler birleştiriliyor ve tek bir median değeri hesaplanıyor. Ben de buna göre yazdım formülü. Örneğin H, C, L için düşünelim. Grafiğinizde farzedelim ki 1000 bar var. Bu listeyi birleştirirseniz 3000'lik bir dizi elde edeceksiniz. Bu 3000'lik dizinin belli periyotlarda medianını hesaplarsınız ancak bu hesapladığınız 3000'lik median dizisini tekrar nasıl 1000'lik bir diziye dönüştüreceksiniz?

  3.  Alıntı Originally Posted by Caglar Yazıyı Oku
    Melesef doğru değil.
    Anladığım kadarıyla siz Median'ı indiktör olarak kullanmak istiyorsunuz. Ancak verdiğiniz excel örneğinde veriler birleştiriliyor ve tek bir median değeri hesaplanıyor. Ben de buna göre yazdım formülü. Örneğin H, C, L için düşünelim. Grafiğinizde farzedelim ki 1000 bar var. Bu listeyi birleştirirseniz 3000'lik bir dizi elde edeceksiniz. Bu 3000'lik dizinin belli periyotlarda medianını hesaplarsınız ancak bu hesapladığınız 3000'lik median dizisini tekrar nasıl 1000'lik bir diziye dönüştüreceksiniz?
    Ben Median ile bir indikator oluşturmak istiyorum direk indikatörden ziyade ve bu indikatörde istenilen periyodda H,L,C değerlerini tek bir dizeye dönüştürüp Median değerini almak istiyorum.Benim sorunum bu 3 dizeyi bir araya getirip Median değerlerini almak.yani diyelim ki 10 günlük Median'ı kullanacağım.Son 10 günün 10H+10L+10C toplamı 30 tane değer verecek bana ve bu 30 sayının medianı lazım.Tekrardan 10 tane değere dönmeme gerek yok.

  4.  Alıntı Originally Posted by vVvendetta Yazıyı Oku
    Ben Median ile bir indikator oluşturmak istiyorum direk indikatörden ziyade ve bu indikatörde istenilen periyodda H,L,C değerlerini tek bir dizeye dönüştürüp Median değerini almak istiyorum.Benim sorunum bu 3 dizeyi bir araya getirip Median değerlerini almak.yani diyelim ki 10 günlük Median'ı kullanacağım.Son 10 günün 10H+10L+10C toplamı 30 tane değer verecek bana ve bu 30 sayının medianı lazım.Tekrardan 10 tane değere dönmeme gerek yok.
    Aslında çok basit bir indikatör yapmak istediğim. Açıkcası sonuçları nasıl olacak bilmiyorum:

    MSR= (10-day median of (H, L, C) – 20-day MAX (H, L, C))/(20-day MAX (H, L, C))

  5.  Alıntı Originally Posted by vVvendetta Yazıyı Oku
    Aslında çok basit bir indikatör yapmak istediğim. Açıkcası sonuçları nasıl olacak bilmiyorum:

    MSR= (10-day median of (H, L, C) – 20-day MAX (H, L, C))/(20-day MAX (H, L, C))
    Son bir sorum daha var, MAX(H, L, C) neyi ifade ediyor? H, L, C'den en büyük olanını mı yoksa (H + L + C) / 3 ü mü?

  6.  Alıntı Originally Posted by Caglar Yazıyı Oku
    Son bir sorum daha var, MAX(H, L, C) neyi ifade ediyor? H, L, C'den en büyük olanını mı yoksa (H + L + C) / 3 ü mü?
    Ayni median gibi 20 gunluk H,L,C 'i tek bir liste haline getirip iclerinden hangisi en buyuk ise onu aliyor.

  7.  Alıntı Originally Posted by vVvendetta Yazıyı Oku
    Ayni median gibi 20 gunluk H,L,C 'i tek bir liste haline getirip iclerinden hangisi en buyuk ise onu aliyor.
    MAX(H, L, C) ile MAX(H) ve MIN(H, L, C) ile MIN(L) aynı değerleri verir ancak kodu sizin istediğiniz gibi yazdım. Gönderdiğiniz MRS hesaplamasına değerleri daha makul görebilmek amacıyla 100 ile çarpma işlemi ekledim. Beklediğimden farklı ve güzel bir çıktı verdi. Filtre olarak işe yarayabilir.

    Kod:
    var P = Sistem.GrafikVerileri;
    var H = Sistem.GrafikFiyatOku(P, "Yuksek");
    var C = Sistem.GrafikFiyatOku(P, "Kapanis");
    var L = Sistem.GrafikFiyatOku(P, "Dusuk");
    
    var MED10 = Sistem.Liste(0f);
    var MAX20 = Sistem.Liste(0f);
    var MIN20 = Sistem.Liste(0f);
    var MRS = Sistem.Liste(0f);
    var HLC10 = new List<float>();
    var HLC20 = new List<float>();
    
    for (var i = 21; i < P.Count; i++)
    {
        var hlc = new List<float> { H[i], C[i], L[i] };
        HLC10.AddRange(hlc);
        HLC20.AddRange(hlc);
    
        if (HLC10.Count == 30)
        {
            MED10[i] = User.Median(HLC10);
            HLC10.RemoveRange(0, 3);
        }
    
        if (HLC20.Count == 60)
        {
            MAX20[i] = HLC20.Max();
            MIN20[i] = HLC20.Min();
            HLC20.RemoveRange(0, 3);
        }
    
        MRS[i] = 100 * (MED10[i] - MAX20[i]) / MAX20[i];
    }
    
    Sistem.Cizgiler[0].Deger = MED10;
    Sistem.Cizgiler[1].Deger = MAX20;
    Sistem.Cizgiler[2].Deger = MIN20;
    Sistem.Cizgiler[3].Deger = MRS;
    Kodu çalıştırabilmek için daha önce göndermiş olduğum median formülünü User.dll de tutmanız gerekiyor. Hesaplamalarda hatalar olabilir, dolayısıyla kendiniz test etmeyi unutmayın.

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
  •