Sayfa 344/593 İlkİlk ... 244294334342343344345346354394444 ... SonSon
Arama sonucu : 4738 madde; 2,745 - 2,752 arası.

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

  1. #2745
    sercanfx Guest
     Alıntı Originally Posted by Bear_Bull Yazıyı Oku
    if den sonra ; olmaması lazım şart sağlanıyorsa
    {
    içindekileri işler
    }
    else şart sağlamıyorsa
    {
    içindekileri işler veya yazılı birşey yoksa pas geçer.

    }




    olmaması gerekir Erhan

    sonuçta Anlık gönderilen sisteme gidip grafikten sistem yönüne bakıp geri geliyor.

    sistemin ilk başı ile sonunun ne kadar sürede tarandığını gösteren bir minik kod parçası vardı
    onu bulup Debug ta yazdırıp denemek lazım.


    bu arada grafikle hiç işi olmayan sistem 1500 değişik kontrat datalarını saniyede 950 kez okuyup dönebiliyor.

    aynı benzer sistemlerden 10-12 tane bağladığımda
    saniyede 100 kez dönüş yapabiliyor
    işlem yaptırma sırasında
    emir borsaya gitsin işlem teyidi geri dönsün diye
    System.Threading.Thread.Sleep(2000);
    sistemi 2 saniyeliğine ben durduruyorum.
    Sn.Bear_Bull,

    BekleT yerine “aktif bir kod” yazıp, sistemdakika yerine sistemsaniye yapınca şimdilik çalıştı gibi , test ediyorum. Cok teşekkür ederim 🙏

  2.  Alıntı Originally Posted by OGRENCI Yazıyı Oku
    selam ustalar ... yukarıdaki koda örneğin 5 ma 10 ma kesmesi alış şartını nasıl ekleriz ..mantıgını anlamaya çalısıyorum lütfen gülmeyin dostlar..

    selam ustalar ... yukarıdaki koda örneğin 5 ma 10 ma kesmesi alış şartını nasıl ekleriz ..mantıgını anlamaya çalısıyorum lütfen gülmeyin dostlar..

    var C = Sistem.GrafikFiyatSec("Kapanis");
    var L = Sistem.GrafikFiyatSec("Düsük");
    var H = Sistem.GrafikFiyatSec("Yüksek");
    var SonYon = "";
    float StopPuan = 0.05f; //Puanı kendiniz belirleyebilirsiniz
    bool SartAl = .....; //Alış şartınız
    float SonStop = 0f;
    var IzleyenStop = Sistem.Liste(0);
    for (int i = 1; i < Sistem.BarSayisi; i++)
    {
    if (SartAl && SonYon!="A")
    {
    Sistem.Yon[i] = "A";
    SonYon = "A";
    SonStop = L[i] - StopPuan; //Alışın gerçekleşmesiyle stopu belirledik
    IzleyenStop[i] = SonStop;
    continue;
    }
    if ( SonYon =="A")
    {
    //Kapanış stop üstü ve yeni yüksek görülmediyse
    if (C[i]>=IzleyenStop[i-1]&& H[i]<=H[i-1])
    {
    IzleyenStop[i] = SonStop; //Stop seviyesi değişmez
    continue;
    }
    else if (C[i] >= IzleyenStop[i - 1] && H[i] > H[i - 1]) //Yeni yüksek
    {
    SonStop = L[i] - StopPuan; //Stop güncellenir
    IzleyenStop[i] = SonStop;
    continue;
    }
    else if (C[i] < IzleyenStop[i - 1]) //Stop altında kapatırsa
    {
    Sistem.Yon[i] = "F"; // yön flate döner
    SonYon = "F";
    IzleyenStop[i] = IzleyenStop[i - 1]; //Burayı sadece sonstop seviyelerini grafikte görebilmeniz için yazdım
    }
    }
    }
    Sistem.Cizgiler[0].Deger = IzleyenStop;

  3. Merhaba arkadaşlar. Github kullanan varmı? Formüllerimizi github üzerinde yazmak ve saklamak kolaylık sağlar mı?

  4.  Alıntı Originally Posted by OGRENCI Yazıyı Oku
    selam ustalar ... yukarıdaki koda örneğin 5 ma 10 ma kesmesi alış şartını nasıl ekleriz ..mantıgını anlamaya çalısıyorum lütfen gülmeyin dostlar..

    var C = Sistem.GrafikFiyatSec("Kapanis");
    var L = Sistem.GrafikFiyatSec("Düsük");
    var H = Sistem.GrafikFiyatSec("Yüksek");
    var SonYon = "";
    float StopPuan = 0.05f; //Puanı kendiniz belirleyebilirsiniz
    bool SartAl = .....; //Alış şartınız
    float SonStop = 0f;
    var IzleyenStop = Sistem.Liste(0);
    for (int i = 1; i < Sistem.BarSayisi; i++)
    {
    if (SartAl && SonYon!="A")
    {
    Sistem.Yon[i] = "A";
    SonYon = "A";
    SonStop = L[i] - StopPuan; //Alışın gerçekleşmesiyle stopu belirledik
    IzleyenStop[i] = SonStop;
    continue;
    }
    if ( SonYon =="A")
    {
    //Kapanış stop üstü ve yeni yüksek görülmediyse
    if (C[i]>=IzleyenStop[i-1]&& H[i]<=H[i-1])
    {
    IzleyenStop[i] = SonStop; //Stop seviyesi değişmez
    continue;
    }
    else if (C[i] >= IzleyenStop[i - 1] && H[i] > H[i - 1]) //Yeni yüksek
    {
    SonStop = L[i] - StopPuan; //Stop güncellenir
    IzleyenStop[i] = SonStop;
    continue;
    }
    else if (C[i] < IzleyenStop[i - 1]) //Stop altında kapatırsa
    {
    Sistem.Yon[i] = "F"; // yön flate döner
    SonYon = "F";
    IzleyenStop[i] = IzleyenStop[i - 1]; //Burayı sadece sonstop seviyelerini grafikte görebilmeniz için yazdım
    }
    }
    }
    Sistem.Cizgiler[0].Deger = IzleyenStop;
    Bu kodda bazı sıkıntılar vardı, biraz düzenledim.. Yaptığı iş:
    * m1, m2 yi yukarı kestikten sonraki bar alacak; ancak onun bir öncesine de bakacak ki, m1>m2 iken flat olmuşsa hemen yeniden almasın ******Bu da robotta kullanmaya kalktığınızda şöyle bir risk doğurur: Aldınız ve 2. bar stop oldu ama ortalama aşağı kesmedi..Sonra hisse aldı yürüdü, sizin robot arkadan bakar..Grafiklerde epey sık olan bir şey; önce ortalama yukarı kesiyor, fiyat ortalamaların altına inip ortalamaları aşağı kesiştirmeden basıyor yukarı..*** Bu arada, robot kullanmıyorum, sadece mantık yürütüyorum!!Yani robota çevirmeye niyetlenirseniz bir sürü olasılığı test etmelisiniz..
    * aldığı barın düşüğünden belirlediğin yüzde kadar aşağısını stop olarak belirleyip, her yeni yüksekte bu stop şartını gerekiyorsa güncelleyecek. Gerekiyorsadan kastım, yeni stop eskisinden yüksek mi?


    PHP Code:
    int p1=10//ma kısa periyot
    int p2=20//ma uzun
    var Sistem.GrafikFiyatSec("Kapanis"); 
    var 
    Sistem.GrafikFiyatSec("Düsük"); 
    var 
    Sistem.GrafikFiyatSec("Yüksek");
    var 
    Sistem.SonFiyat(Sistem.Sembol); 
    var 
    m1 Sistem.MA(p1"Exp""Kapanis");
    var 
    m2 Sistem.MA(p2"Exp""Kapanis");

                var 
    SonYon ""
                
    //float StopPuan = 0.15f;//15 kuruş, Puanı kendiniz belirleyebilirsiniz, 
    //puan kullanmak istiyorsanız aşağıdaki satırın önüne // koyup, yukarıdakinin önündekileri kaldırın
    //hisseye özel kullanımda puan olur ama genel için % uygun; aselsan 15 kuruş %1 bile yapmazken zoren de %15 eder 
                
    float StopPuan 0.015f*X;//0.015 = %1.5 ; son fiyatın % kadar puan kullan
                
    float SonStop 0f
                var 
    IzleyenStop Sistem.Liste(0);
     
    //son 1000 bar baksın, performans için 
    for (int i Sistem.BarSayisi-1000Sistem.BarSayisii++)  { 

    //alışta değilse, bir önceki bar m1 > m2 ve ondan önceki barda da m1<m2 mi? aksi durumda m1>m2 iken flat olursa hemen yine alır..
         
    if ( m1[i-1]>m2[i-1] && m1[i-2]<m2[i-2] && SonYon!="A"
                    { 
                        
    SonYon Sistem.Yon[i] = "A"
                        
    SonStop L[i] - StopPuan//Alışın gerçekleşmesiyle stopu belirledik 
                        
    IzleyenStop[i] = SonStop;
                    } 

      if ( 
    SonYon =="A") {                     
         if (
    H[i] > H[i-1] && (L[i]-StopPuan)>SonStop ) { //Yeni yüksek var ve potansiyel stop eski stoptan yüksekse.. 
                 
    SonStop L[i] - StopPuan//Stop güncellenir 
                 
    IzleyenStop[i] = SonStop
          }  else 
    IzleyenStop[i] = SonStop;   //Stop seviyesi değişmez 
      
      
    if (C[i] < IzleyenStop[i-1]) //Stop altında kapatırsa 
         

           
    SonYon Sistem.Yon[i] = "F"// yön flate döner
           //IzleyenStop[i] = H[i-1]; //flat olduğunda görsel açıdan - sistem etkisi yok - stop yukarı atsın istiyorsan bu satırın başındaki // kaldır
         
    }
    //alışta son      
      
    } else IzleyenStop[i] = IzleyenStop[i-1]; //Burayı sadece sonstop seviyelerini grafikte görebilmeniz için yazdım 
    //for son
    }

    Sistem.Cizgiler[0].Deger IzleyenStop;
    Sistem.Cizgiler[1].Deger m1;
    Sistem.Cizgiler[2].Deger m2

    Bu da idealin içinde geliyor diye hatırlıyorum ama Sistem_Stop_Take_MA, gelmiyorsa da sabit rakamlarla kar al - zarar durdur..

    PHP Code:
    //%5 Kar Al, %2 Zarar durdur sistem örneği.

    // kapanış fiyatlarını oku
    var Sistem.GrafikFiyatSec("Kapanis");
       
    // hareketli ortalamaları hesapla
    var MA1 Sistem.MA(C"Exp"50);
    var 
    MA2 Sistem.MA(C"Exp"100);
    // strateji
    var SonYon "";
    double Fiyat 0;

    for (
    int i 1i<Sistem.BarSayisii++)
    {
       if (
    MA1[i-1] < MA2[i-1] && MA1[i] >= MA2[i] && SonYon != "A"// AL
       
    {
          
    Sistem.Yon[i] = "A";  // alış
          
    SonYon Sistem.Yon[i];
          
    Fiyat C[i];
       }
       else if (
    MA1[i-1] > MA2[i-1] && MA1[i] <= MA2[i] && SonYon != "S"// SAT
       
    {
          
    Sistem.Yon[i] = "S";  // satış
          
    SonYon Sistem.Yon[i];
          
    Fiyat C[i];
       }
       else if (
    SonYon == "A" &&  C[i] > Fiyat 1.05)   // % 5 kar realizasyonu
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
       else if (
    SonYon == "A" &&  C[i] < Fiyat 0.98)   // % 2 stop
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
       else if (
    SonYon == "S" &&  C[i] < Fiyat 0.95)   // % 5 kar realizasyonu
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
       else if (
    SonYon == "S" &&  C[i] > Fiyat 1.02)   // % 2 stop
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
    }



    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger MA1;
    Sistem.Cizgiler[1].Deger MA2
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlı hayatın ne de son matemidir bu.

  5. merhabalar kodun şu kısmına CCI'nin tomayı kesmesini eklemek istiyorum,nasıl yazabilirim? bir türlü yapamadım.
    for (int i = 1; i < V.Count; i++)
    {
    MID1[i] = (UP[i] + DOWN[i])/2;
    }

  6. Tesekkurler üstad .. faydali açıklamalı anlatımın için .. kafamda bu kalıpları oturtmaya çalışıyorum .....
     Alıntı Originally Posted by sonli Yazıyı Oku
    Bu kodda bazı sıkıntılar vardı, biraz düzenledim.. Yaptığı iş:
    * m1, m2 yi yukarı kestikten sonraki bar alacak; ancak onun bir öncesine de bakacak ki, m1>m2 iken flat olmuşsa hemen yeniden almasın ******Bu da robotta kullanmaya kalktığınızda şöyle bir risk doğurur: Aldınız ve 2. bar stop oldu ama ortalama aşağı kesmedi..Sonra hisse aldı yürüdü, sizin robot arkadan bakar..Grafiklerde epey sık olan bir şey; önce ortalama yukarı kesiyor, fiyat ortalamaların altına inip ortalamaları aşağı kesiştirmeden basıyor yukarı..*** Bu arada, robot kullanmıyorum, sadece mantık yürütüyorum!!Yani robota çevirmeye niyetlenirseniz bir sürü olasılığı test etmelisiniz..
    * aldığı barın düşüğünden belirlediğin yüzde kadar aşağısını stop olarak belirleyip, her yeni yüksekte bu stop şartını gerekiyorsa güncelleyecek. Gerekiyorsadan kastım, yeni stop eskisinden yüksek mi?


    PHP Code:
    int p1=10//ma kısa periyot
    int p2=20//ma uzun
    var Sistem.GrafikFiyatSec("Kapanis"); 
    var 
    Sistem.GrafikFiyatSec("Düsük"); 
    var 
    Sistem.GrafikFiyatSec("Yüksek");
    var 
    Sistem.SonFiyat(Sistem.Sembol); 
    var 
    m1 Sistem.MA(p1"Exp""Kapanis");
    var 
    m2 Sistem.MA(p2"Exp""Kapanis");

                var 
    SonYon ""
                
    //float StopPuan = 0.15f;//15 kuruş, Puanı kendiniz belirleyebilirsiniz, 
    //puan kullanmak istiyorsanız aşağıdaki satırın önüne // koyup, yukarıdakinin önündekileri kaldırın
    //hisseye özel kullanımda puan olur ama genel için % uygun; aselsan 15 kuruş %1 bile yapmazken zoren de %15 eder 
                
    float StopPuan 0.015f*X;//0.015 = %1.5 ; son fiyatın % kadar puan kullan
                
    float SonStop 0f
                var 
    IzleyenStop Sistem.Liste(0);
     
    //son 1000 bar baksın, performans için 
    for (int i Sistem.BarSayisi-1000Sistem.BarSayisii++)  { 

    //alışta değilse, bir önceki bar m1 > m2 ve ondan önceki barda da m1<m2 mi? aksi durumda m1>m2 iken flat olursa hemen yine alır..
         
    if ( m1[i-1]>m2[i-1] && m1[i-2]<m2[i-2] && SonYon!="A"
                    { 
                        
    SonYon Sistem.Yon[i] = "A"
                        
    SonStop L[i] - StopPuan//Alışın gerçekleşmesiyle stopu belirledik 
                        
    IzleyenStop[i] = SonStop;
                    } 

      if ( 
    SonYon =="A") {                     
         if (
    H[i] > H[i-1] && (L[i]-StopPuan)>SonStop ) { //Yeni yüksek var ve potansiyel stop eski stoptan yüksekse.. 
                 
    SonStop L[i] - StopPuan//Stop güncellenir 
                 
    IzleyenStop[i] = SonStop
          }  else 
    IzleyenStop[i] = SonStop;   //Stop seviyesi değişmez 
      
      
    if (C[i] < IzleyenStop[i-1]) //Stop altında kapatırsa 
         

           
    SonYon Sistem.Yon[i] = "F"// yön flate döner
           //IzleyenStop[i] = H[i-1]; //flat olduğunda görsel açıdan - sistem etkisi yok - stop yukarı atsın istiyorsan bu satırın başındaki // kaldır
         
    }
    //alışta son      
      
    } else IzleyenStop[i] = IzleyenStop[i-1]; //Burayı sadece sonstop seviyelerini grafikte görebilmeniz için yazdım 
    //for son
    }

    Sistem.Cizgiler[0].Deger IzleyenStop;
    Sistem.Cizgiler[1].Deger m1;
    Sistem.Cizgiler[2].Deger m2

    Bu da idealin içinde geliyor diye hatırlıyorum ama Sistem_Stop_Take_MA, gelmiyorsa da sabit rakamlarla kar al - zarar durdur..

    PHP Code:
    //%5 Kar Al, %2 Zarar durdur sistem örneği.

    // kapanış fiyatlarını oku
    var Sistem.GrafikFiyatSec("Kapanis");
       
    // hareketli ortalamaları hesapla
    var MA1 Sistem.MA(C"Exp"50);
    var 
    MA2 Sistem.MA(C"Exp"100);
    // strateji
    var SonYon "";
    double Fiyat 0;

    for (
    int i 1i<Sistem.BarSayisii++)
    {
       if (
    MA1[i-1] < MA2[i-1] && MA1[i] >= MA2[i] && SonYon != "A"// AL
       
    {
          
    Sistem.Yon[i] = "A";  // alış
          
    SonYon Sistem.Yon[i];
          
    Fiyat C[i];
       }
       else if (
    MA1[i-1] > MA2[i-1] && MA1[i] <= MA2[i] && SonYon != "S"// SAT
       
    {
          
    Sistem.Yon[i] = "S";  // satış
          
    SonYon Sistem.Yon[i];
          
    Fiyat C[i];
       }
       else if (
    SonYon == "A" &&  C[i] > Fiyat 1.05)   // % 5 kar realizasyonu
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
       else if (
    SonYon == "A" &&  C[i] < Fiyat 0.98)   // % 2 stop
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
       else if (
    SonYon == "S" &&  C[i] < Fiyat 0.95)   // % 5 kar realizasyonu
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
       else if (
    SonYon == "S" &&  C[i] > Fiyat 1.02)   // % 2 stop
       
    {
          
    Sistem.Yon[i] = "F";  // flat
          
    SonYon Sistem.Yon[i];
       }
    }



    // hesaplanan verileri çizgilere aktar ve açıklama ekle
    Sistem.Cizgiler[0].Deger MA1;
    Sistem.Cizgiler[1].Deger MA2
    SM-N9000Q cihazımdan hisse.net mobile app kullanarak gönderildi.

  7.  Alıntı Originally Posted by berlys Yazıyı Oku
    merhabalar kodun şu kısmına CCI'nin tomayı kesmesini eklemek istiyorum,nasıl yazabilirim? bir türlü yapamadım.
    for (int i = 1; i < V.Count; i++)
    {
    MID1[i] = (UP[i] + DOWN[i])/2;
    }

    Tam ne keseceğini anlayamadım, kodda ema tomayı keserse var, ona göre kendiniz ayarlayabilirsiniz..

    PHP Code:

    var cici Sistem.CommodityChannelIndex(14);//cci
    var Toci Sistem.TOMA(cici105);// CCI TOMA at: 14 lük 10 tane CCI ortalamasının %5 altını çiz

    var Sistem.GrafikFiyatOku(Veriler"Kapanis");
    var 
    TOMA Sistem.TOMA(C31);// TOMA hesapla: 3  kapanış ortalamasının %1 altını çiz
    var EMA Sistem.MA(C"Exp"3); // EMA hesapla


    for (int i 1V.Counti++)  


      if (
    EMA[i-2]<=TOMA[i-2] && EMA[i-1]>TOMA[i-1]){

         
    //ema tomayı kesti..

      
    }


    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlı hayatın ne de son matemidir bu.

  8.  Alıntı Originally Posted by sonli Yazıyı Oku
    Tam ne keseceğini anlayamadım, kodda ema tomayı keserse var, ona göre kendiniz ayarlayabilirsiniz..

    PHP Code:

    var cici Sistem.CommodityChannelIndex(14);//cci
    var Toci Sistem.TOMA(cici105);// CCI TOMA at: 14 lük 10 tane CCI ortalamasının %5 altını çiz

    var Sistem.GrafikFiyatOku(Veriler"Kapanis");
    var 
    TOMA Sistem.TOMA(C31);// TOMA hesapla: 3  kapanış ortalamasının %1 altını çiz
    var EMA Sistem.MA(C"Exp"3); // EMA hesapla


    for (int i 1V.Counti++)  


      if (
    EMA[i-2]<=TOMA[i-2] && EMA[i-1]>TOMA[i-1]){

         
    //ema tomayı kesti..

      
    }


    cevabınız için teşekkür ederim Sayın Sonli, Aslında panel 2 de donchain kanal içerisinde ccı ve tomayı görmek için sormuştum.

Sayfa 344/593 İlkİlk ... 244294334342343344345346354394444 ... 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
  •