Sayfa 36/596 İlkİlk ... 2634353637384686136536 ... SonSon
Arama sonucu : 4768 madde; 281 - 288 arası.

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

  1.  Alıntı Originally Posted by stradivarius Yazıyı Oku
    daha once rsi icin, soyle bir formulverilmisti,
    bunun gibi,
    bir gun onceki "gunun" atr degerini "bes dakikalik" grafikte kullanmak istiyorum, repaint yapmadan nasil yazilabilir acaba.

    --
    var V = Sistem.GrafikVerileri;
    var PrevGunC = new List<float>();
    var GunTarih = new List<string>();
    for (int i = 1; i < V.Count; i++)
    {
    if (V[i].Date.Day != V[i - 1].Date.Day)
    {
    PrevGunC.Add(V[i - 1].Close);
    GunTarih.Add(V[i].Date.ToString("yyyyMMdd"));
    }
    }
    var PrevGunRSI = Sistem.RSI(PrevGunC, 20);

    var RSI = Sistem.Liste(0);
    var StartPos = 0;
    for (int i = 1; i < V.Count; i++)
    {
    for (int j = StartPos; j < PrevGunRSI.Count; j++)
    {
    if (V[i].Date.ToString("yyyyMMdd") == GunTarih[j])
    {
    RSI[i] = PrevGunRSI[j];
    StartPos = j;
    break;
    }
    }
    }

    // RSI listesi önceki günün değeridir.
    //intraday grafiklerde repaint olmadan döngü içinde kullanılabilir.

    Sistem.Cizgiler[0].Deger = RSI;
    sorunuzun cevabı formülün içerisinde yazıyor.
    repaint engellemenin en kolay ve temel yolu "önceki barı" kullanmaktır.
    Keçiyi yardan uçuran bir tutam ottur..

  2. #282
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,677
     Alıntı Originally Posted by mtasdelen Yazıyı Oku
    FORMULDE NEREDE HATA YAPIYORUM?
    çok yerinde hata vardı. özellikle kopyala yapıştır yaptığın yerlerde değişkenlerin.

    şu şekil bi görüntü mü istiyorsun?




    PHP Code:
    var =Sistem.GrafikVerileri ;
    var 
    Sistem.GrafikFiyatOku("Kapanis") ;
    var 
    Sistem.GrafikFiyatOku("Acilis") ;
    var 
    BarSayisi V.Count;
    var 
    Rsiperiyot Convert.ToSingle(Sistem.Parametreler[0]) ;  
    var 
    Rsialtbolge Convert.ToSingle(Sistem.Parametreler[1]) ;  
    var 
    RsiortabolgeConvert.ToSingle(Sistem.Parametreler[2]) ;  
    var 
    RsiustbolgeConvert.ToSingle(Sistem.Parametreler[3]) ;  
    var 
    RSI Sistem.RSI(V,Rsiperiyot);
    var 
    Rsialtbolgeninaltcizgisi Sistem.Liste(0);
    var 
    Rsialtbolgeninustcizgisi Sistem.Liste(0);
    var 
    Rsiortabolgeninaltcizgisi Sistem.Liste(0);
    var 
    Rsiortabolgeninustcizgisi Sistem.Liste(0);
    var 
    Rsiustbolgeninaltcizgisi Sistem.Liste(0);
    var 
    Rsiustbolgeninustcizgisi Sistem.Liste(0);


    for (
    int i 20BarSayisii++)
    {
    Rsialtbolgeninaltcizgisi[i] = Rsialtbolgeninaltcizgisi[i-1];
    Rsialtbolgeninustcizgisi[i] = Rsialtbolgeninustcizgisi[i-1];
    Rsiortabolgeninaltcizgisi[i] = Rsiortabolgeninaltcizgisi[i-1];
    Rsiortabolgeninustcizgisi[i] = Rsiortabolgeninustcizgisi[i-1];
    Rsiustbolgeninaltcizgisi[i]= Rsiustbolgeninaltcizgisi[i-1];
    Rsiustbolgeninustcizgisi[i]= Rsiustbolgeninustcizgisi[i-1];


    if ( 
    RSI[i-1] < Rsialtbolge && RSI[i] > Rsialtbolge )   // Sistem.YukariKestiyse(RSI, Rsialtbolge) )
    {
    Rsialtbolgeninaltcizgisi[i] = O[i];
    Rsialtbolgeninustcizgisi[i] = C[i];
    }


    if (
    RSI[i-1] < Rsiortabolge && RSI[i] > Rsiortabolge )   //Sistem.YukariKestiyse(RSI, Rsiortabolge) )
    {
    Rsiortabolgeninaltcizgisi[i] = O[i];
    Rsiortabolgeninustcizgisi[i] = C[i];
    }
    if (
    RSI[i-1] < Rsiustbolge && RSI[i] > Rsiustbolge //Sistem.YukariKestiyse(RSI, Rsiustbolge) )
    {
    Rsiustbolgeninaltcizgisi[i]= O[i];
    Rsiustbolgeninustcizgisi[i]= C[i];
    }
    }
    Sistem.Cizgiler[0].Deger Rsiustbolgeninaltcizgisi ;
    Sistem.Cizgiler[1].Deger Rsiustbolgeninustcizgisi ;
    Sistem.Cizgiler[2].Deger Rsiortabolgeninaltcizgisi ;
    Sistem.Cizgiler[3].Deger Rsiortabolgeninustcizgisi ;
    Sistem.Cizgiler[4].Deger Rsialtbolgeninaltcizgisi ;
    Sistem.Cizgiler[5].Deger Rsialtbolgeninustcizgisi 


    eedit : yukardaki grafik senin verdiğin 10 25 50 80 değildi

    bu 5 dk lık olan sizin değerlere göre


  3.  Alıntı Originally Posted by Keçi Yazıyı Oku
    sorunuzun cevabı formülün içerisinde yazıyor.
    repaint engellemenin en kolay ve temel yolu "önceki barı" kullanmaktır.
    sayin keci yanilyorsam duzeltin, orada zaten bir liste olusturuluyor, ve bu kapanislari tutuyor . rsi hesabinda yalnizca kapanis degerleriyle islem yapilabildiginden rahatlikle o listenin rsisi alinabilinir, ancak atr degerinde ise bildigim kadariyla high low open closelarin karsilastirilmasi neticesinde bir liste olusturulmasi lazim ki, benim yazdigim formule adapte edemedim. hani atrnin idealde acik formulu varsa belki adapte etmeyi deneyebilirim.. anladigim kadariyla sizin icin basit birsey bu.
    bang bang you shot me down..

  4. #284
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,677
     Alıntı Originally Posted by stradivarius Yazıyı Oku
    sayin keci yanilyorsam duzeltin, orada zaten bir liste olusturuluyor, ve bu kapanislari tutuyor . rsi hesabinda yalnizca kapanis degerleriyle islem yapilabildiginden rahatlikle o listenin rsisi alinabilinir, ancak atr degerinde ise bildigim kadariyla high low open closelarin karsilastirilmasi neticesinde bir liste olusturulmasi lazim ki, benim yazdigim formule adapte edemedim. hani atrnin idealde acik formulu varsa belki adapte etmeyi deneyebilirim.. anladigim kadariyla sizin icin basit birsey bu.
    ATR ye liste kullanım şekli ile ister fiyat ister RSI değerini hesaplattırıp kullanabilirsin.

    AverageTrueRange(Liste, 14)



    var V =Sistem.GrafikVerileri ;

    var C = Sistem.GrafikFiyatOku(V , "Kapanis") ;
    var RSI = Sistem.RSI(V,14);

    RSI_ATR=Sistem.AverageTrueRange(RSI, 14);
    FYT_ATR=Sistem.AverageTrueRange(C, 14);

  5.  Alıntı Originally Posted by Bear_Bull Yazıyı Oku
    ATR ye liste kullanım şekli ile ister fiyat ister RSI değerini hesaplattırıp kullanabilirsin.

    AverageTrueRange(Liste, 14)



    var V =Sistem.GrafikVerileri ;

    var C = Sistem.GrafikFiyatOku(V , "Kapanis") ;
    var RSI = Sistem.RSI(V,14);

    RSI_ATR=Sistem.AverageTrueRange(RSI, 14);
    FYT_ATR=Sistem.AverageTrueRange(C, 14);
    abi bu kullanimlari biliyorum. rsi (benim ornegini attigim)tek bir parametre aldigindan dolayi kapanislari for'lamak yetiyor, ancak atrde bildigim kadariyla 4 parametreye bakilip karsilastirilip ona gore hesaplaniyor atr degeri. benim sikinti cektigim yer surasi ;

    for (int i = 1; i < V.Count; i++)
    {
    if (V[i].Date.Day != V[i - 1].Date.Day)
    {
    PrevGunC.Add(V[i - 1].Close);
    GunTarih.Add(V[i].Date.ToString("yyyyMMdd"));
    }
    }

    buralara highli lowlu inside bar filan olursa atrnin hesabini yapacak seyler lazim. grafikverilerinden tum bilgileri cekiyorsa ben soyle bi kullanim denedim ama yemedi ;

    PrevGunC.Add(V[i - 1]);

    pp

    yani komple su sekilde degistirdim, guya grafikverilerinin icinden atryi hesaplaticam ,

    var V = Sistem.GrafikVerileri;
    var PrevGunV = new List<float>();
    var GunTarih = new List<string>();
    for (int i = 1; i < V.Count; i++)
    {
    if (V[i].Date.Day != V[i - 1].Date.Day)
    {
    PrevGunV.Add(V[i - 1]);
    GunTarih.Add(V[i].Date.ToString("yyyyMMdd"));
    }
    }
    var PrevGunATR = Sistem.AverageTrueRange(PrevGunV, 20);

    var ATR = Sistem.Liste(0);
    var StartPos = 0;
    for (int i = 1; i < V.Count; i++)
    {
    for (int j = StartPos; j < PrevGunATR.Count; j++)
    {
    if (V[i].Date.ToString("yyyyMMdd") == GunTarih[j])
    {
    ATR[i] = PrevGunATR[j];
    StartPos = j;
    break;
    }
    }
    }

    // RSI listesi önceki günün değeridir.
    //intraday grafiklerde repaint olmadan döngü içinde kullanılabilir.

    Sistem.Cizgiler[0].Deger = ATR;

    ancak yemedi.


    yoksa herhangi bir listenin atrsi rsisi hesaplanabilir idealde, anlamli bulunuyorsa.
    bang bang you shot me down..

  6. yanlış anlamadıysam atr kullanmak istiyosunuz ama çılgın açılış barlarının bozmasını istemiyosunuz
    öyle ise yukarıda yaptığınız gibi açılış barının H L ve C unu bir önceki bar olarak değiştirebilirsiniz

    o başlangıç barını tespit ettiğiniz yerde v[i].Kapanis=v[i-1].Kapanis; vs vs şeklinde

  7. Baboli parmaklarına, o parmakları yöneten beyin kıvrımlarına, ayırdığın zamana, o zamanı ayırma kararı veren beyninin limbik sistemine teşekkür ederim. O sistemden salgılanan dopamin miktarın daha nice nice olsun. ( psikolojik danışman iltifatı böyle oluyor maalesef . özür )

    Şimdi benim limbik sistemime takılıp azda olsa kortizon salgılatan şey şu. İncelediğim bütün kod parçaçıklarında parametre değerleri için "convert.tosingle" ihtiyaç duyulmamış.Bu örnekteki kullanım mantığı ne? (niye çok sayıda ondalık basamak içeren reel sayıya döndürüyoruz ) ( beginner seviyesi böyle olur. ÖZÜR )

    var V =Sistem.GrafikVerileri ;
    var C = Sistem.GrafikFiyatOku(V , "Kapanis") ;
    var O = Sistem.GrafikFiyatOku(V , "Acilis") ;
    var BarSayisi = V.Count;
    var Rsiperiyot = Convert.ToSingle(Sistem.Parametreler[0]) ;
    var Rsialtbolge = Convert.ToSingle(Sistem.Parametreler[1]) ;
    var Rsiortabolge= Convert.ToSingle(Sistem.Parametreler[2]) ;
    var Rsiustbolge= Convert.ToSingle(Sistem.Parametreler[3]) ;

  8. Baboli demişim özür. Bearbull.Yiğidi öldür hakkını yeme.

Sayfa 36/596 İlkİlk ... 2634353637384686136536 ... 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
  •