Sayfa 343/593 İlkİlk ... 243293333341342343344345353393443 ... SonSon
Arama sonucu : 4738 madde; 2,737 - 2,744 arası.

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

  1. #2737
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,630
     Alıntı Originally Posted by sercanfx Yazıyı Oku
    ; olunca bekleme olayı komple iptal oldu
    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.

    }


     Alıntı Originally Posted by erhanacikgoz1 Yazıyı Oku
    Sistem.Getir fonsıyonu performans düşüşüne sebep oluyormu acaba bılgısı olan var mı ?

    sistem getir deyip getirilen sistemin son yonune bakarak robota işlem açtırsak mesela performans kaybı yaşarmıyız.
    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.
    Son düzenleme : Bear_Bull; 29-07-2019 saat: 20:54.
    Bear_Bull
    @BearBull26

  2. #2738
    Duhul
    Feb 2017
    İkamet
    Eskişehir / Duhul 2007
    Yaş
    53
    Gönderi
    4,630
     Alıntı Originally Posted by OGRENCI Yazıyı Oku

    if (H[i-1]>a[i-1] ) { //yeni yüksek var mı H büyükse a dan

    a[i] =H[i-1]; a ya H yi ata
    b[i] =b[i-1]+( H[i-1]-a[i-1]) //yeni stop = Eski stop + (yeni yüksek- bir önceki yüksek) b ye b+(h-a) ata

    } else { //yeni yüksek yok
    ......

    şu kod paçasını tane tane açıklamalı yazacak olan varsa çok makbule geçer ...saolun ...

    if (H[i-1]>a[i-1] )
    { //yeni yüksek var mı H büyükse a dan

    a[i] =H[i-1]; a ya H yi ata

    b[i] =b[i-1]+( H[i-1]-a[i-1]) b ye b+(h-a) ata

    } else { //yeni yüksek yok
    Bear_Bull
    @BearBull26

  3.  Alıntı Originally Posted by OGRENCI Yazıyı Oku
    if (H[i-1]>a[i-1] ) { //yeni yüksek var mı

    a[i] =H[i-1];
    b[i] =b[i-1]+( H[i-1]-a[i-1]) //yeni stop = Eski stop + (yeni yüksek- bir önceki yüksek)

    } else { //yeni yüksek yok
    ......

    şu kod paçasını tane tane açıklamalı yazacak olan varsa çok makbule geçer ...saolun ...
    Bear_Bull Hocam anlatmış sağ olsun, ama kodun tamamını açıklamalı şekilde incelerseniz daha iyi anlaşılır. Daha önce şurada https://www.hisse.net/topluluk/showt...66#post3516466 paylaştığım kodu tamamen açıklamaya çalıştım. Kitabın açıklamasına göre yazmıştım hatalı olmadıysa.. Yalnız burada sadece satış şartı var, alım şartı olmadığından eski yüksek geçilene kadar takip etmez, dolayısıyla sabit gider.. Sistem değil de son x bar için iz süren stop indikatörü bu haliyle.. Bahsettiğiniz kod parçası ise sadece alttaki kodda stop şartını değiştirmek amacı taşıyor. Alttaki haliyle;
    stop=Son yüksek barın düşüğü - puan
    iken, üstteki kod parçacığını ilgili bölüm ile değiştirirseniz şu hale döner:
    stop = Eski stop + (yeni yüksek- bir önceki yüksek)
    Bu arada değiştirecek olursanız, yukarıdaki kodda b[i] =b[i-1]+( H[i-1]-a[i-1]); sondaki ; eksik kalmış..

    PHP Code:
    //Fiyat bölgesi indikatörü olarak son x bar için iz süren stop 
    //(stop= son x bardaki her yeni en yüksek barın düşüğü -belirlenen puan)..
    var bars 100;//son kaç barı takip edecek
    var puan 0.10f;//stop=düşük-puan..10 kuruş düşürerek takip edecek bu haliyle

    var Sistem.GrafikFiyatSec("Kapanis");
    var 
    Sistem.GrafikFiyatSec("Yuksek");
    var 
    Sistem.GrafikFiyatSec("Dusuk");

    var 
    Sistem.Liste(0);//yüksek listesi
    var Sistem.Liste(0);//stop

    var SonYon "";
    for (
    int i Sistem.BarSayisi-barsSistem.BarSayisii++)


    //Sondan bir önceki barın(i-1) yükseği, son yükseğimizden büyük mü? yani yeni yüksek var mı?
    if (H[i-1]>a[i-1] ) { //yeni yüksek var mı
    //varsa
    a[i] =H[i-1];//sonraki barlarda kıyaslamak için a ya yeni yükseği atıyoruz
    //son stop seviyemiz b, yeni yüksek barımızın (düşüğü-puan) dan düşük mü? düşükse stobu yukarı taşıyacağız, değilse eski stop devam..
     
    if (b[i-1]<(L[i-1]-puan)) b[i] =L[i-1]-puan//eski stop düşük kaldı, yeni stop b=son yükseğin düşüğü-puan
     
    else b[i] =b[i-1] ; //eski stop daha yukarıda, o zaman eskimemiş, aynı stopla devam

    } else { //yeni yüksek yok, o zaman yüksek ve stop listemiz eskilerle devam ediyor 
    a[i] =a[i-1] ; 
    b[i] =b[i-1] ;
    }

    if (
    C[i]<b[i] && SonYon !="S"// Fiyat stop altı, SAT
    {
    SonYon Sistem.Yon[i] = "S";  
    }



    Sistem.Cizgiler[0].Deger a;
    Sistem.Cizgiler[1].Deger b
    Biçare gönüller! Ne giden son gemidir bu!
    Hicranlı hayatın ne de son matemidir bu.

  4.  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.
    Şu yönden sordum abi.

    Acaba sistemi direk user.dll içinemi yazmalı yoksa sistem tanımlarından yazıp user.dll sistem getir ile çeksem performans ne derece değişecek.

    Bir arayüz yapıyorum bılıyorsun deneme amaclı tuşa basınca bır sıstemın yonunu cektırdım.

    2 saniye sonra yon bılgısını getırdı

    https://twitter.com/erhanacikgoz1/st...806934016?s=20

    şu videoyu bılıyorsun video sonunda alttaki rsi tuşuna basıyorum sağ altta label4 yazıyor o kısmı A yazıyor.

    rsi tusuna bastıktan 2 sanıye sonra A harfini koyuyor buda bana acaba performansta sorun cıkarmı sorusunu sordurttu ?

    acaba dedim bir kere getırınce bırdahakı sefere dahamı hızlı okur dedim. tusa vıdeodan sonra 2. kez bastım yıne aynı gecıkme oldugunu farkettım.

    şimdi yapacagım modulde sıstem ısmını gırdıkten sonra sürekli olarak yön bilgisini okutmama gerekecek.

    haliyle cok hızlı sekılde okuyabılmelı kı sistemden gelen yonu cesıtlı hesaplamalar sonrasında al veya sat olarak ıdeale gerı gondermelı.

    Bendekı data 12 yıllık acaba ondanmı gecıktı bılmıyorum tabı.
    Son düzenleme : erhanacikgoz1; 30-07-2019 saat: 01:28.
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  5. Sayin Sonic ve bear bull abi cok saolun Teşekkürler ....
     Alıntı Originally Posted by Bear_Bull Yazıyı Oku
    if (H[i-1]>a[i-1] )
    { //yeni yüksek var mı H büyükse a dan

    a[i] =H[i-1]; a ya H yi ata

    b[i] =b[i-1]+( H[i-1]-a[i-1]) b ye b+(h-a) ata

    } else { //yeni yüksek yok
     Alıntı Originally Posted by sonli Yazıyı Oku
    Bear_Bull Hocam anlatmış sağ olsun, ama kodun tamamını açıklamalı şekilde incelerseniz daha iyi anlaşılır. Daha önce şurada https://www.hisse.net/topluluk/showt...66#post3516466 paylaştığım kodu tamamen açıklamaya çalıştım. Kitabın açıklamasına göre yazmıştım hatalı olmadıysa.. Yalnız burada sadece satış şartı var, alım şartı olmadığından eski yüksek geçilene kadar takip etmez, dolayısıyla sabit gider.. Sistem değil de son x bar için iz süren stop indikatörü bu haliyle.. Bahsettiğiniz kod parçası ise sadece alttaki kodda stop şartını değiştirmek amacı taşıyor. Alttaki haliyle;
    stop=Son yüksek barın düşüğü - puan
    iken, üstteki kod parçacığını ilgili bölüm ile değiştirirseniz şu hale döner:
    stop = Eski stop + (yeni yüksek- bir önceki yüksek)
    Bu arada değiştirecek olursanız, yukarıdaki kodda b[i] =b[i-1]+( H[i-1]-a[i-1]); sondaki ; eksik kalmış..

    PHP Code:
    //Fiyat bölgesi indikatörü olarak son x bar için iz süren stop 
    //(stop= son x bardaki her yeni en yüksek barın düşüğü -belirlenen puan)..
    var bars 100;//son kaç barı takip edecek
    var puan 0.10f;//stop=düşük-puan..10 kuruş düşürerek takip edecek bu haliyle

    var Sistem.GrafikFiyatSec("Kapanis");
    var 
    Sistem.GrafikFiyatSec("Yuksek");
    var 
    Sistem.GrafikFiyatSec("Dusuk");

    var 
    Sistem.Liste(0);//yüksek listesi
    var Sistem.Liste(0);//stop

    var SonYon "";
    for (
    int i Sistem.BarSayisi-barsSistem.BarSayisii++)


    //Sondan bir önceki barın(i-1) yükseği, son yükseğimizden büyük mü? yani yeni yüksek var mı?
    if (H[i-1]>a[i-1] ) { //yeni yüksek var mı
    //varsa
    a[i] =H[i-1];//sonraki barlarda kıyaslamak için a ya yeni yükseği atıyoruz
    //son stop seviyemiz b, yeni yüksek barımızın (düşüğü-puan) dan düşük mü? düşükse stobu yukarı taşıyacağız, değilse eski stop devam..
     
    if (b[i-1]<(L[i-1]-puan)) b[i] =L[i-1]-puan//eski stop düşük kaldı, yeni stop b=son yükseğin düşüğü-puan
     
    else b[i] =b[i-1] ; //eski stop daha yukarıda, o zaman eskimemiş, aynı stopla devam

    } else { //yeni yüksek yok, o zaman yüksek ve stop listemiz eskilerle devam ediyor 
    a[i] =a[i-1] ; 
    b[i] =b[i-1] ;
    }

    if (
    C[i]<b[i] && SonYon !="S"// Fiyat stop altı, SAT
    {
    SonYon Sistem.Yon[i] = "S";  
    }



    Sistem.Cizgiler[0].Deger a;
    Sistem.Cizgiler[1].Deger b
    SM-N9000Q cihazımdan hisse.net mobile app kullanarak gönderildi.

  6. hız konusu çoğu zaman düşündüğümüzden önemli, ben her sistemin hangi adımında ne kadar zaman harcadığına mutlaka bakıyorum . bazen yanlış mantıkla yapılan işler falan zaman kaybına neden oluyor

    kodun herhangi biyerindeki ms detayındaki zamanı stringe atabilirsin
    Kod:
    DateTime.Now.ToString("HH:mm:ss.fff")
    formul testle falan kullanmak için kodun çeşitli yerlerine şu kod atılabilir

    Kod:
    Sistem.Debug(" xx "+DateTime.Now.ToString("HH:mm:ss.fff"));
    sistem.debug ın kendiside görüntülemeden dolayı 1-2 ms zaman alıyo , dolayısıyla onu da engellemek için örneğin şöyle bir kod kullanılabilir.

    Kod:
    string zzaman= "start "+DateTime.Now.ToString("HH:mm:ss.fff");// ilk başa 
    zzaman=zzaman+ "x adım "+ DateTime.Now.ToString("HH:mm:ss.fff");// ölçmek istediğin adımlar için tekrarla
    
    Sistem.Debug(zzaman);// sistemin en sonuna
    kullanan herkesin ilk farkettiğidir muhtemelen okunacak bar sayısı doğrudan hesaplamalara etkisi var . hesaplamaları falan son 200-300 bara kısıtlayabilirsin ama rsi falan hesaplattığında onu ta baştan hesaplayacak müdahale şansın yok.

    arayüz meselesini çok anlamıyorum . denemedim ama arayüze ekrana bilgi yazdırmak muhtemelen uzun zaman alıyodur . Filmlerde falan yapıyolar dramatik etki için mesela şifre kırıyo bilgisayar , ekranda yüzlerce şifre tekrar tekrar görünüyo , yüz karşılaştırma yapıyo teker teker yüzlerce yüz parmakizi falan . gerçekte bunlar arkada işlemcide sessiz sedasız görüntüsüz olan işler . en fazla yüklenince fanlar üflemeye başlıyodur.
    biz insanların zaman ölçüsü ile bilgisayarın zaman ölçüsü arasında dağlar var
    beyin çalışmasında bile ani bir sinyal geldiğinde beyin sen düşün ne yapacağına karar ver demiyo kendi yapıyo , tuhaf bi ses duydun karşıdan araba üzerine doğru geliye bişey patladı , beyin hemen otomatik tepki veriyo , zıplıyosun ellerini koruma pozisyonuna alıyosun vs.
    birde işlemciyi uyutmak yerine zamankontrol kullanmak daha mantıklı gibi
    System.Threading.Thread.Sleep(2000);
    uyuturken uyandırırken geçen ayrıca zamanlar var

  7.  Alıntı Originally Posted by sonli Yazıyı Oku
    Bear_Bull Hocam anlatmış sağ olsun, ama kodun tamamını açıklamalı şekilde incelerseniz daha iyi anlaşılır. Daha önce şurada https://www.hisse.net/topluluk/showt...66#post3516466 paylaştığım kodu tamamen açıklamaya çalıştım. Kitabın açıklamasına göre yazmıştım hatalı olmadıysa.. Yalnız burada sadece satış şartı var, alım şartı olmadığından eski yüksek geçilene kadar takip etmez, dolayısıyla sabit gider.. Sistem değil de son x bar için iz süren stop indikatörü bu haliyle.. Bahsettiğiniz kod parçası ise sadece alttaki kodda stop şartını değiştirmek amacı taşıyor. Alttaki haliyle;
    stop=Son yüksek barın düşüğü - puan
    iken, üstteki kod parçacığını ilgili bölüm ile değiştirirseniz şu hale döner:
    stop = Eski stop + (yeni yüksek- bir önceki yüksek)
    Bu arada değiştirecek olursanız, yukarıdaki kodda b[i] =b[i-1]+( H[i-1]-a[i-1]); sondaki ; eksik kalmış..

    PHP Code:
    //Fiyat bölgesi indikatörü olarak son x bar için iz süren stop 
    //(stop= son x bardaki her yeni en yüksek barın düşüğü -belirlenen puan)..
    var bars 100;//son kaç barı takip edecek
    var puan 0.10f;//stop=düşük-puan..10 kuruş düşürerek takip edecek bu haliyle

    var Sistem.GrafikFiyatSec("Kapanis");
    var 
    Sistem.GrafikFiyatSec("Yuksek");
    var 
    Sistem.GrafikFiyatSec("Dusuk");

    var 
    Sistem.Liste(0);//yüksek listesi
    var Sistem.Liste(0);//stop

    var SonYon "";
    for (
    int i Sistem.BarSayisi-barsSistem.BarSayisii++)


    //Sondan bir önceki barın(i-1) yükseği, son yükseğimizden büyük mü? yani yeni yüksek var mı?
    if (H[i-1]>a[i-1] ) { //yeni yüksek var mı
    //varsa
    a[i] =H[i-1];//sonraki barlarda kıyaslamak için a ya yeni yükseği atıyoruz
    //son stop seviyemiz b, yeni yüksek barımızın (düşüğü-puan) dan düşük mü? düşükse stobu yukarı taşıyacağız, değilse eski stop devam..
     
    if (b[i-1]<(L[i-1]-puan)) b[i] =L[i-1]-puan//eski stop düşük kaldı, yeni stop b=son yükseğin düşüğü-puan
     
    else b[i] =b[i-1] ; //eski stop daha yukarıda, o zaman eskimemiş, aynı stopla devam

    } else { //yeni yüksek yok, o zaman yüksek ve stop listemiz eskilerle devam ediyor 
    a[i] =a[i-1] ; 
    b[i] =b[i-1] ;
    }

    if (
    C[i]<b[i] && SonYon !="S"// Fiyat stop altı, SAT
    {
    SonYon Sistem.Yon[i] = "S";  
    }



    Sistem.Cizgiler[0].Deger a;
    Sistem.Cizgiler[1].Deger b
    çok teşekkür ederim ..saolun

  8.  Alıntı Originally Posted by orionx Yazıyı Oku
    Kontrol etmedim ama mantıken bu şekilde olması lazım

    PHP Code:
                var Sistem.GrafikFiyatSec("Kapanis");
                var 
    Sistem.GrafikFiyatSec("Düsük");
                var 
    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 1Sistem.BarSayisii++)
                {
                    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[1] && H[i] > H[1]) //Yeni yüksek 
                        
    {
                            
    SonStop L[i] - StopPuan//Stop güncellenir
                            
    IzleyenStop[i] = SonStop;
                            continue;
                        }
                        else if (
    C[i] < IzleyenStop[1]) //Stop altında kapatırsa
                        
    {
                            
    Sistem.Yon[i] = "F"// yön flate döner
                            
    SonYon "F";
                            
    IzleyenStop[i] = IzleyenStop[1]; //Burayı sadece sonstop seviyelerini grafikte görebilmeniz için yazdım                      
                        
    }
                    }
                }
                
    Sistem.Cizgiler[0].Deger IzleyenStop
    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..

Sayfa 343/593 İlkİlk ... 243293333341342343344345353393443 ... 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
  •