Sayfa 73/593 İlkİlk ... 2363717273747583123173573 ... SonSon
Arama sonucu : 4738 madde; 577 - 584 arası.

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

  1. hocam 3 aylık ev ödevi verdin çıktın
    idealin kendi emir metodunda karşıdan cevabı bekliyor , genelde 30 ms gibi bir kayıp demek . birden fazla taraflı emirlerde sıkıntı oluyor bu yüzden. sırf bu sebepten bile uğraşılır. piyasa yapıcılığa bile soyunulur

  2. idealde şöyle basit bi sistem yazabilirmiyiz hisseler için.

    yıllıklandırılmış net kar + yıllıklandırılmış efk / piyasa değeri

    çıkan sonucu indikator yapabilirmiyiz.

    yıllıklandırılmış demek şöyle hesaplanıyor.

    bu çeyrek gelen bılanco karını bir önceki yılın aynı çeyreğiyle topluyor

    yani 2017/2ç 1000 TL
    2106/2ç 1000 Tl diyelim.

    yıllıklandırılmış 2017/2ç = 2000 TL gibi. yanlıs hatırlamıyorsam
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  3.  Alıntı Originally Posted by erhanacikgoz1 Yazıyı Oku
    idealde şöyle basit bi sistem yazabilirmiyiz hisseler için.

    yıllıklandırılmış net kar + yıllıklandırılmış efk / piyasa değeri

    çıkan sonucu indikator yapabilirmiyiz.

    yıllıklandırılmış demek şöyle hesaplanıyor.

    bu çeyrek gelen bılanco karını bir önceki yılın aynı çeyreğiyle topluyor

    yani 2017/2ç 1000 TL
    2106/2ç 1000 Tl diyelim.

    yıllıklandırılmış 2017/2ç = 2000 TL gibi. yanlıs hatırlamıyorsam
    daha once hesaplamışım pardon şöyleymiş formul

    http://www.hisse.net/forum/showthrea...0#post10784410

    üstteki alıntıyı yapabılırmıyız kızlar :D
    Senin almaya cesaret edemediğin riskleri alanlar, senin yaşamak istediğin hayatı yaşarlar..
    Sokrates twit @erhanacikgoz1

  4. İyi geceler...İdeal Sorgu için Zirve veya dibe göre değişimi 100 günlük lük veya herhangi bir periyotta verebilecek formül lazım.Teşekkürler...

  5.  Alıntı Originally Posted by Aslan49 Yazıyı Oku
    İyi geceler...İdeal Sorgu için Zirve veya dibe göre değişimi 100 günlük lük veya herhangi bir periyotta verebilecek formül lazım.Teşekkürler...

    örnek sorguda Herhangi bir periyotta son 500 barda dip ve zirvesine %10 yaklaşan hisseleri sorgulayabirsin.

    bar sayısını ve yüzdesel yaklaşımı kod içersinde degiştirebilirsin

    Kod:
    Sistem.SorguBaslik[0] = "Kapanış";
    Sistem.SorguBaslik[1] = "Zirve";
    Sistem.SorguBaslik[2] = "Dip";
    
    var tara = 500; //Sistem.BarSayisi-1; //Parametreler[0];
    var Veriler = Sistem.GrafikFiyatSec("Kapanis");
    var HHV = Sistem.HHV(tara,"Yuksek");
    var LLV = Sistem.LLV(tara,"Dusuk");
    
    var Son = Veriler[Sistem.BarSayisi-1];
    var Zirve = HHV[Sistem.BarSayisi-1];
    var Dip = LLV[Sistem.BarSayisi-1];
    var FarkZirve = Zirve * 0.90;
    var FarkDip = Dip * 1.10;
    
    
    // filtrele
    if (Son < FarkDip || Son > FarkZirve )
    {
       Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
       Sistem.SorguDeger[1] = Zirve;
       Sistem.SorguDeger[2] = Dip;
       
       if (Son < FarkDip )
          Sistem.SorguAciklama = tara+" barda Dibe Geldi/yakın";
       else if (Son > FarkZirve)
          Sistem.SorguAciklama = tara+" barda Zirveye Geldi/yakın";
    
    
    }
       else
          {
          Sistem.SorguAciklama = "Dip/tepe %10 marj dışında";
             Sistem.SorguDeger[0] = Sistem.GrafikVerileri[Sistem.BarSayisi-1].Close;
       Sistem.SorguDeger[1] = Zirve;
       Sistem.SorguDeger[2] = Dip;
          }
    
    Sistem.SorguEkle();

  6.  Alıntı Originally Posted by Keçi Yazıyı Oku
    Metastock için tüm sembollere ait belli sayıda barın bilgilerini text dosyaya aktarmak istiyoruz.
    Daha önce yapmadım , yapalım, siz deneyin, oluyor mu bakalım.


    Bir defaya mahsus yapacaklarımız;
    a-Dosya Formatının Belirlenmesi
    b-Sorgu ekranından tetiklenecek olan, seçtiğimiz periyot ve hisse senetleri(tümü,100,30 vb.) için belli bir "gün" deki verileri dosyaya yazan bir Sistem Yazılması.


    Bunları sağlarsak eğer metastock import dosyasını oluşturmak için sadece sorgumuzu açıp "Hesapla" butonuna basmak yeterli olacaktır.


    a-MetaStock Import File Formatını bulalım önce;
    Metastock forumlarında aşağıdaki gibi bir format buldum.

    <NAME>,<PER>,<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CL OSE>,<VOL>,<OPENINT>
    INTC,15,20040518,14:30:00,27.30000,27.31000,27.240 00,27.28000,1900111,0

    Bizim dışarıya ASCII Text csv dosyası çıkartmamız gerekiyor.
    Bu örnek satırı üretmeye çalışalım biz öyleyse.
    Farklı formatlarda gördüm versiyona göre değişiyormu bilmiyorum ama değişiyorsa bile uygulayacağımız yöntemi dilediğiniz hale getirip sonuç alabilirsiniz.

    b-Dosyaya çıkartmak için bir sistem yazalım. Bu sistemi "SORGU" ekranı için yazalım.
    Adıda "Sorgu_MetaStockImport7" olsun.
    Neden 7?
    Çünkü Sorgu ekranında periyot seçimi var yani dinamik olacak,
    Sembol gruplarıda var (tümü,100,30 vb.) dinamik olacak,
    fakat bar adedi seçimi yok. Bu 7 bar olmasın ama her periyot için 7 Gün olsun. Periyot sorgu penceresinde Gün seçildi ise 7 Bar 60 seçildi ise 7*8 bar vb. olsun.
    Bilelimki her tıklamada 1 haftaya ait veriyi çıkartıyor.
    Bu nedenle yazacağımız sistemde statik olarak belli bir bar adedini export edeceğiz dosyaya.
    İhtiyacınıza göre siz değiştirirsiniz bu 7 yi.

    Sorguya dair gördüğüm önemli bir bilgi, ne kadar döngü kurarsanız kurun, Sorgu penceresinde her hisse için sadece tek satır çıktı verebilirsiniz!
    Sistem.SorguEkle() komutunu döngü içerisine alarak bu durumu değiştiremssiniz.
    Bu nedenle bizim amacımız ekranda import verilerini görmek değildir.Ekranda sadece hangi hisselerin verilerinin import edildiğini göreceğiz.
    Bu yüzden Sorgu kolonlarıda şunlardan ibaret olsun; No, Sembol ve Açıklama default geliyor zaten. Biz açıklamaya "Aktarımı Yapılmıştır" yazalım oldu bitti.
    Sistemimiz aşağıdaki gibidir;
    Küçük periyotlu dosyaların oluşması uzun sürebilir, sorgu pencresinde sağ üstte devam eden hisseyi görürsünüz.
    Önemli Not: Her Hesapla denildiğinde dosya içeriğine ekleme olur.
    İdeal sorgu yapısından dolayı bunu tam yönetemedik.
    Prensib olarak aynı günde yapacağınız her hesapla işlemi öncesi çıktı dosyanızı silin. dosya isminde günün tarihi var çünkü.
    Mükerrer olmamasına dikkat edin. yaparsanızda metastock sembol ve datetime a göre overwrite yapacağından sorun olmayacaktır bu durum.


    Sorun olursa linki: http://csharppad.com/gist/7c8bc1a8d8...0f83d10ee6a764

    PHP Code:

    //Ayarlar -------------------------------------------
      
    bool BaslikSatiriOlsumutrue;
      
    string Ayrac=";";
      
    int KacGun 7;
      
    string DosyaAdi = @"d:\Metastock_" 
                        
    DateTime.Now.ToString("dd.MM.yyyy")
                        +
    ".csv";

    //Desenler -------------------------------------------
      
    string Headers =    "NAME"+Ayrac+
                  
    "PER"+Ayrac+
                  
    "DATE"+Ayrac+
                  
    "TIME"+Ayrac+
                  
    "OPEN"+Ayrac+
                  
    "HIGH"+Ayrac+
                  
    "LOW"+Ayrac+
                  
    "CLOSE"+Ayrac+
                  
    "VOL"+Ayrac+
                  
    "OPENINT"
                                       
        
      
    string Values "{0}"+Ayrac+"{1}"+Ayrac+"{2}"+Ayrac+"{3}"+Ayrac+"{4}"+Ayrac+"{5}"+Ayrac+"{6}"+Ayrac+"{7}"+Ayrac+"{8}"+Ayrac+"{9}";

    //Dosya Yoksa ilk oluştuğunda Header yaz ---------------------------------------
    if (!File.Exists(DosyaAdi))   
    {  
            if(
    BaslikSatiriOlsumu) {
                                      
    using (FileStream fs = new FileStream(DosyaAdi ,FileMode.AppendFileAccess.Write))
                                      
    using (StreamWriter sw = new StreamWriter(fs))
                                      {
                                         
    sw.WriteLine(Headers );
                                      }
                                   } 



    //Hisseye ait Toplam Barı Bul (Burasını iyi kontrol etmedim, bar sayıları sorunlu olabilir, her periyot olmayabilir, ayarlayın işte:)
    int ToplamBar0;

    if(
    Sistem.Periyot=="G"ToplamBar KacGun;
    else if(
    Sistem.Periyot=="240"ToplamBar KacGun 2;
    else if(
    Sistem.Periyot=="120"ToplamBar KacGun 4;
    else if(
    Sistem.Periyot=="60"ToplamBar KacGun 8;
    else if(
    Sistem.Periyot=="30"ToplamBar KacGun 2;
    else if(
    Sistem.Periyot=="15"ToplamBar KacGun 2;
    else if(
    Sistem.Periyot=="5")  ToplamBar KacGun 3;
    else if(
    Sistem.Periyot=="1")  ToplamBar KacGun 5;

    //Sembol için Bar Döngüsüne gir------------------------------------------------
    for (int i Sistem.BarSayisi ToplamBar  Sistem.BarSayisii++)
    {
         
    // Bar'a ait Satırı Oluştur------------------------------------------------------

         
    string barlinestring.Format(
                            
    Values
                            
    ,Sistem.Sembol.Replace("IMKBH","").Replace("'","")
                            ,
    Sistem.Periyot.ToString()
                            ,
    Sistem.GrafikVerileri[i].Date.ToString("yyyyMMdd")
                            ,
    Sistem.GrafikVerileri[i].Date.ToString("HH:mm")
                            ,
    Sistem.GrafikVerileri[i].Open.ToString().Replace(",",".")
                            ,
    Sistem.GrafikVerileri[i].High.ToString().Replace(",",".")
                            ,
    Sistem.GrafikVerileri[i].Low.ToString().Replace(",",".")
                            ,
    Sistem.GrafikVerileri[i].Close.ToString().Replace(",",".")
                            ,
    Sistem.GrafikVerileri[i].Vol.ToString().Replace(",",".")
                            
    //,Sistem.LotGun(Sistem.Sembol).ToString().Replace(",",".")  //Hacim lot olacaksa bunu açıp üsttekini kapatın
                            
    ,Sistem.GrafikVerileri[i-1].Close.ToString().Replace(",",".")
                     );

          
    // Bar'a ait Satırı Dosyay Yaz---------------------------------------
          
    using (FileStream fs = new FileStream(DosyaAdi ,FileMode.AppendFileAccess.Write))
          
    using (StreamWriter sw = new StreamWriter(fs))
          {
            
    sw.WriteLine(barline);
          }


    // For'a ait


    //Sorgu Ekranına Ekleme -----------------------------------------------
    Sistem.SorguAciklama "Aktarımı Yapılmıştır";
    Sistem.SorguEkle();
    //---------------------------------------------------------------------------- 


    Sayin Keci;
    Yukarida yazmis oldugunuz sorgu modulu mantigi ile her bir hisseye ait datayi istedigimiz zaman araliginda ve zaman grafiginde ayri ayri nasil kaydedebiliriz ? Yardimci olabilir misiniz ? Tesekkurler

  7.  Alıntı Originally Posted by vVvendetta Yazıyı Oku
    Sayin Keci;
    Yukarida yazmis oldugunuz sorgu modulu mantigi ile her bir hisseye ait datayi istedigimiz zaman araliginda ve zaman grafiginde ayri ayri nasil kaydedebiliriz ? Yardimci olabilir misiniz ? Tesekkurler
    yanlış anlamadı isem şu şekilde olacak.
    1-Periyotları tutan bir dizi tanımlanır. Bu diziyi kullanan bir for döngüsü daha olur.
    2-DosyaAdi tanımını alttaki for döngüsünün altına taşırsınız. içeriğinde periyot ve sembol adına yer verirsiniz.

    Böylece istediğiniz kadar süredeki veriyi, Metastock_Sembol_Periyot.txt isimlendirmesi ve gruplandırması ile bir klasörde toplamış olabilirsiniz. kod düzenlemesi için yakın zamanda vakit ayırmam zor.
    Keçiyi yardan uçuran bir tutam ottur..

  8. geri donusunuz icin tesekkurler sayin Keci.

Sayfa 73/593 İlkİlk ... 2363717273747583123173573 ... 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
  •