Sayfa 90/595 İlkİlk ... 40808889909192100140190590 ... SonSon
Arama sonucu : 4754 madde; 713 - 720 arası.

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

  1.  Alıntı Originally Posted by şef Yazıyı Oku
    ideali silip tekrar kurdum olmadı. son olarak vps serverde windows u tekrar kurdurdum, sorun çözüldü.
    Şef hocam kullandigin makina çok iyi degilse , max bar sayisini 15.000 okunacak bar sayisini 5000 yaparsan sistemlerin cihazi kasmalarini azaltirsin ideali actigin zaman gecikmeler azalacagi icin buna benzer sorunlarda azalir

  2.  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ü?

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

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

  5.  Alıntı Originally Posted by Caglar Yazıyı Oku
    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.

    Sayin Caglar;

    Ilgi ve alakaniza tesekkurler .Gonderdigim formul Amibroker'da ki percentrank ile daha verimli calisiyor. Orjinal formulde 252 gunluk deger ile kullanmak gerekiyor yani percentrank(MRS,252) seklinde .100 ile carpmak yerine bu sekilde kullanmak daha cok isinize yarayabilir belki.Ideal kullanimi ( Daha once Sezai bey yardimci olmustu cevirisinde) ve orjinali soyle:

    Orjinal Amibroker formulu:

    function PercentRank( Data, Periods )

    {
    Count = 0;
    for ( i = 1; i < Periods ; i++ )
    {
    Count = Count + ( Data > Ref( Data, -i ) );
    }
    return 100 * Count / (Periods-1);
    }


    Ideal Kullanimi (MRS'e uygulanmis hali):


    for ( int i = Lenght; i < C.Count; i++)
    {
    float Count = 0;
    for (int j = i-Lenght; j <= i; j++)
    {
    if (MRS[j] < MRS[i]) Count ++;
    }
    Count = Count * 100 / (float)Lenght;
    MRSB[i] = Count ;
    }

    Al-Sat Kosulu olarakta >50 ve <50 kullanilabilir.

    Ayrica Sayin Caglar, Percentrank'i surekli kullanmak icin User.dll icerisine nasil adapte edebiliriz acaba? Amibroker kullanimi oldukca verimli cunku.

  6. Merhaba, döngüde tüm barları değilde sadece son 100 barı okumasını istersek nasıl yazmamız gerekir.

    SM-N910C cihazımdan hisse.net mobile app kullanarak gönderildi.

  7. Arkadaslar,

    kesisme tara veya yukarikestiyse/asagikestiyse sorgularini robot haricinde dongu icinde nasil kullanabilirim ? Asagida ki denemem cevap vermiyor. Ideal kutuphane de ve eski forumlarda yeterli ornek bulamadim:

    var AL1 = Sistem.YukariKestiyse(RSI, 30);
    var SAT1 = Sistem.AsagiKestiyse(RSI, 70);
    var AL2 = Sistem.YukariKestiyse(RSI2, 25);
    var SAT2 = Sistem.AsagiKestiyse(RSI2, 75);


    for (int i = 1; i < Sistem.BarSayisi; i++)
    {
    if (SonYon != "A" && AL1 [i] || AL2 [i] )
    {
    Sistem.Yon[i] = "A"; // alış
    SonYon = "A";
    }

    else if ( SonYon != "S" && SAT1 [i] || SAT2 [i] ) //Satış koşulu

    {
    Sistem.Yon[i] = "S"; // satış
    SonYon = "S";
    }
    }

  8. #720
    Duhul
    Feb 2017
    İkamet
    Karadeniz
    Yaş
    52
    Gönderi
    179

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

    Twitter da Yeni başlayanlara iyi bir öğretici olacak gibi gözüküyor


    hisse.net kullanarak iPhone aracılığıyla gönderildi

Sayfa 90/595 İlkİlk ... 40808889909192100140190590 ... 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
  •