Sayfa 139/350 İlkİlk ... 3989129137138139140141149189239 ... SonSon
Arama sonucu : 2798 madde; 1,105 - 1,112 arası.

Konu: Sistem Karşılaştırma 2

  1.  Alıntı Originally Posted by matador38 Yazıyı Oku
    çok teşekkür ederim. elinizde hazırda varsa anlık işlem yapan sistemlerin gelecekteki olacak sinyal seviyelerini (geçmişi görmem sanırım imkansız) grafik üzerine kayıtlı bırakan ve buna göre KZ eğrisi oluşturan bir kod varmı?
    sorunuzu tam anlamadım. geçmiş neden imkansız olsun. Sistem.Seviye bir listedir ve bu listede geçmiş işlem fiyatlarınız tutuluyor zaten. kastettiğiniz daha farklı bir şey var sanırım.
    gelecek dediğiniz de ancak devam eden bar olabilir. devam eden bardada aslında seviyeler zaten algoda bellidir.
    vidya geçen bir örnek paylaşmıştım. o örnekde AS, SS isimli listeler vardı. bu listelerde aslında devam eden bardaki olası işlem seviyeleridir.

    manuel KZ hesaplamalarıyla ilgili daha sonra farklı örnekler paylaşırım sizin için. user.dll dan koparıp sizin işinize yarar formata getirmem lazım bir kaç gün sonra yapabilirim belki. daha önce paylaştığım bir kaç arkadaş olmuştu, kolayda ise onlarda paylaşabilirler belki.

  2. Vade Geçişi İndikatörü: Aktif Viop Sözleşmelerinin Son günlerine ait barlarda 1 döndürür, diğer günlerde 0 döndürür.
    Bunu kullanarak kendi stratejinizi uygulayabilirsiniz. gerçek durumla backtestler arasında fark oluşmaması için vade geçişlerini sistemlere uygulamak daha doğru olacaktır.

    Yalın Hali
    PHP Code:
    //Vade Sonu İndikatörü------------------------------------------------------
    //Aktif Viop Sözleşmelerinin Son günlerine ait barlarda 1 döndürür, diğer günlerde 0 döndürür.  
    var IndVadeSonu Sistem.Liste(0); 
    for (
    int i 2V.Counti++) { 
        
    DateTime BarTarih V[i].DateDateTime AyinSonGunu = new DateTime(BarTarih.AddMonths(1).YearBarTarih.AddMonths(1).Month 1).AddDays(-1); 
        if ((
    BarTarih.Month 2) == 0  && BarTarih >= (AyinSonGunu.DayOfWeek == DayOfWeek.Sunday AyinSonGunu.AddDays(-2) : AyinSonGunu.DayOfWeek == DayOfWeek.Saturday AyinSonGunu.AddDays(-1) : AyinSonGunu)) 
        
    IndVadeSonu[i] = 1; else IndVadeSonu[i] = 0

    //--------------------------------------------------------------------------- 

    Sistem içerisinde kullanım örneği
    PHP Code:
    //Ayarlar
    string VadeSonGunuFlatSaat="17:00";        //Vade Sonu Günü Flat olunacak Zaman
    int IndikatorlerKacBardaToparliyor 60;   //Vade Sonu gününe içinde olan bardan kaç bar sonra devam edilsin.

    //Veriler
    var Sistem.GrafikVerileri;
    var 
    Sistem.GrafikFiyatOku(V"Kapanis");

    //İndikatörler
    var MA1 Sistem.MA(C"Simple"50);
    var 
    MA2 Sistem.MA(C"Simple"220);

    //Vade Geçişi İndikatörü------------------------------------------------------
    //Aktif Viop Sözleşmelerinin Son günlerine ait barlarda 1 döndürür, diğer günlerde 0 döndürür. 
    var IndVadeSonu Sistem.Liste(0);
    for (
    int i 2V.Counti++) {
        
    DateTime BarTarih V[i].DateDateTime AyinSonGunu = new DateTime(BarTarih.AddMonths(1).YearBarTarih.AddMonths(1).Month 1).AddDays(-1);
        if ((
    BarTarih.Month 2) == 0  && BarTarih >= (AyinSonGunu.DayOfWeek == DayOfWeek.Sunday AyinSonGunu.AddDays(-2) : AyinSonGunu.DayOfWeek == DayOfWeek.Saturday AyinSonGunu.AddDays(-1) : AyinSonGunu))
        
    IndVadeSonu[i] = 1; else IndVadeSonu[i] = 0;
    }
    //---------------------------------------------------------------------------

    var VadeSonuHHV Sistem.HHV(IndikatorlerKacBardaToparliyorIndVadeSonu );

    //Çizgiler
    Sistem.Cizgiler[0].Deger IndVadeSonuSistem.Cizgiler[0].Panel=2Sistem.Cizgiler[0].Aciklama="IndVadeSonu"Sistem.Cizgiler[0].Stil=5;

    //Değişkenler
    var SonYon ""
    bool VadeSonuNedeniyleFlat false

    //Yön Kalıbı
    for (int i 300V.Counti++)
    {
    //Yeni Vadenin ilk gününde ise ve İndikatörler topladı ise FLAT dan çıkış için değişkeni false yap.
    if(VadeSonuNedeniyleFlat && IndVadeSonu[i-1]==&& VadeSonuHHV[i-1]==0VadeSonuNedeniyleFlat=false

    //Vade Sonu Stratejisi
       //Vade Son Günü ise ve belirlenen saat geçti ise FLAT
       
    if( IndVadeSonu[i-1]==&& V[i].Date.TimeOfDay >= TimeSpan.Parse(VadeSonGunuFlatSaat) ) {VadeSonuNedeniyleFlat=true; if (SonYon!= "F") {Sistem.Yon[i] = SonYon "F";}}
       
    //İndikatörler Toprlamadı ise İşlem yok
       
    else if(VadeSonuNedeniyleFlat) { }

    //Normal Strateji
       
    else if (  SonYon!= "A" &&  MA1[i] > MA2[i]  )  { Sistem.Yon[i] = SonYon "A"; }  
       else if (  
    SonYon!= "S" &&  MA1[i] < MA2[i]  )  { Sistem.Yon[i] = SonYon "S"; }  

    Yukarıdaki sistemin görüntüsü

  3. Vade Geçişi Maskesi: Sisteminizde hiç bir şey düzenleme yapmadan vade geçişini otomatikleştirmeye yarar.
    Test edilmemiştir.

    PHP Code:
    //Ayarlar
    bool MaskeVar true;    // false ise sizin sistem, true ise Düşen Kar Maskesi Aktif.
    var GrafikSistemAd"A1";  // Sisteminizin adını yazın.

    string VadeSonGunuFlatSaat="17:00";  //Vade Sonu Günü Flat olunacak Zaman
    int IndikatorlerKacBardaToparliyor 60//Vade Sonu gününe içinde olan bardan kaç bar sonra devam edilsin.

    //Veriler
    var Sistem.GrafikVerileri;
    var 
    Sistem.GrafikFiyatOku(V"Kapanis");

    //Sistem Getir
    var GrafikSistem Sistem.SistemGetir(GrafikSistemAdSistem.SembolSistem.Periyot); 
    var 
    Yonler GrafikSistem.Yon;
    var 
    Seviyeler GrafikSistem.Seviye;

    //İndikatörler
    //Vade Sonu İndikatörü------------------------------------------------------
    //Aktif Viop Sözleşmelerinin Son günlerine ait barlarda 1 döndürür, diğer günlerde 0 döndürür. 
    var IndVadeSonu Sistem.Liste(0);
    for (
    int i 2V.Counti++) {
        
    DateTime BarTarih V[i].DateDateTime AyinSonGunu = new DateTime(BarTarih.AddMonths(1).YearBarTarih.AddMonths(1).Month 1).AddDays(-1);
        if ((
    BarTarih.Month 2) == 0  && BarTarih >= (AyinSonGunu.DayOfWeek == DayOfWeek.Sunday AyinSonGunu.AddDays(-2) : AyinSonGunu.DayOfWeek == DayOfWeek.Saturday AyinSonGunu.AddDays(-1) : AyinSonGunu))
        
    IndVadeSonu[i] = 1; else IndVadeSonu[i] = 0;
    }
    //---------------------------------------------------------------------------

    var VadeSonuHHV Sistem.HHV(IndikatorlerKacBardaToparliyorIndVadeSonu );

    //Çizgiler
    Sistem.Cizgiler[0].Deger IndVadeSonuSistem.Cizgiler[0].Panel=2Sistem.Cizgiler[0].Aciklama="IndVadeSonu"Sistem.Cizgiler[0].Stil=5;

    //Değişkenler
    var SonYon ""
    string GercekSonYon="";
    bool VadeSonuNedeniyleFlat false

    //Yön Kalıbı
    for (int i 300V.Counti++)
    {
    //Sistemde Yön var ise GercekSonYon'e ata.
    if( Yonler[i] != ""GercekSonYon=Yonler[i];

    //Yeni Vadenin ilk gününde ise ve İndikatörler topladı ise FLAT dan çıkış için değişkeni false yap.
    if(VadeSonuNedeniyleFlat && IndVadeSonu[i-1]==&& VadeSonuHHV[i-1]==0VadeSonuNedeniyleFlat=false

    //Vade Geçişi Stratejisi
       //Vade Son Günü ise ve belirlenen saat geçti ise FLAT
       
    if( MaskeVar && IndVadeSonu[i-1]==&& V[i].Date.TimeOfDay >= TimeSpan.Parse(VadeSonGunuFlatSaat) ) {VadeSonuNedeniyleFlat=true; if (SonYon!= "F") {Sistem.Yon[i] = SonYon "F";}}
       
    //İndikatörler Toprlamadı ise İşlem yok
       
    else if(MaskeVar && VadeSonuNedeniyleFlat) { }

       
    //Gerçek Sinyal: SonYon ile GercekSonYon aynı değil ise
       
    else if( SonYon != GercekSonYon  )
       {
          
    SonYon GercekSonYon;
          
    Sistem.Yon[i] = GercekSonYon;
          if(
    Seviyeler[i]!=nullSistem.Seviye[i] = Seviyeler[i];
       }


  4. Orhan hocam cepten bakarak doğru anladıysam eğer kodunuz ayın son gününün tatil olmadığını varsayıyor. Geçmişte benzer bir kod yazmaya çalıştım ancak ramazan ve kurban bayramı gibi ne zaman ve ne kadar tatil olacağı belli olmayan günlere ay sonu denk gelirse otomatik kapama çuvallıyor. Bir de yarım günler var ayrı bir problem olarak. O yüzden lib.cs ye elle ekliyorum vadenin son gün ve saatini. Eklediğim değerden de periyota göre belli bir zaman aralığını çıkarıp flat ilan ediyorum. Backtestte de geçerli bir çözüm ayrıca. Daha önce birçok kez paylaştım, inceleyebilirsin.

    Sent from my SM-N910C using Tapatalk

  5.  Alıntı Originally Posted by Caglar Yazıyı Oku
    Orhan hocam cepten bakarak doğru anladıysam eğer kodunuz ayın son gününün tatil olmadığını varsayıyor. Geçmişte benzer bir kod yazmaya çalıştım ancak ramazan ve kurban bayramı gibi ne zaman ve ne kadar tatil olacağı belli olmayan günlere ay sonu denk gelirse otomatik kapama çuvallıyor. Bir de yarım günler var ayrı bir problem olarak. O yüzden lib.cs ye elle ekliyorum vadenin son gün ve saatini. Eklediğim değerden de periyota göre belli bir zaman aralığını çıkarıp flat ilan ediyorum. Backtestte de geçerli bir çözüm ayrıca. Daha önce birçok kez paylaştım, inceleyebilirsin.

    Sent from my SM-N910C using Tapatalk
    evet bu bir eksik. bu örneğe de manuel ilave edilebilir aslında. mevcutta hafta sonu tatillerini ayarlıyor sadece.
    bende user.dll de özel tatilleri okuyarak kullanıyorum.

    Son 4 yılda özel tatile denk gelme hiç olmamış. bir kez yarım gün olmuş.(backtest açısından yazıyorum bunu, gelecekte sorun olmaz anlamında anlaşılmasın.)
    Son 4 yıldaki vade sonu zamanları:

    28.02.2014 17:44
    30.04.2014 17:44
    30.06.2014 17:44
    29.08.2014 17:44
    31.10.2014 17:44
    31.12.2014 17:44
    27.02.2015 17:44
    30.04.2015 17:44
    30.06.2015 17:44
    31.08.2015 17:44
    30.10.2015 17:44
    31.12.2015 17:45
    29.02.2016 17:44
    29.04.2016 17:44
    30.06.2016 17:44
    31.08.2016 17:44
    31.10.2016 17:44
    30.12.2016 18:14
    28.02.2017 18:14
    28.04.2017 18:14
    30.06.2017 18:14
    31.08.2017 12:44
    31.10.2017 18:14
    29.12.2017 18:14
    28.02.2018 18:14
    30.04.2018 18:14
    29.06.2018 18:14
    31.08.2018 18:14
    Son düzenleme : Orhan AKDOĞAN; 01-11-2018 saat: 04:24.

  6. Vade Geçişi Maskesi(Özel Tatil İstisnası Destekli): Sisteminizde hiç bir düzenleme yapmadan vade geçişini otomatikleştirmeye yarar.
    Test edilmemiştir.

    Haftasonu kontrolü zaten vardı, çağlar beyin bahsettiği hem yarım gün hemde farklı tam günlerde istisna olarak tanımlanabilir yapılmıştır.
    istisna örneği 31.08.2017 de 1 dk grafikte 12:00 da flata geçtiği kontrol edilebilir.


    PHP Code:
    //Ayarlar
    bool MaskeVar true;    // false ise sizin sistem, true ise Düşen Kar Maskesi Aktif.
    var GrafikSistemAd"A1";  // Sisteminizin adını yazın.

    string VadeSonGunuFlatSaat="17:00";  //Vade Sonu Günü Flat olunacak Zaman (saat periyotla uyumlu olmasada doğru çalışır.)
    int IndikatorlerKacBardaToparliyor 60//Vade Sonu gününe içinde olan bardan kaç bar sonra devam edilsin.
    var IstisnaFlatTarihSaatleri = new List<string>(new string[]{ "31.08.2017 12:00" });  //Özel Tatillerdeki Flat zamanlarıdır. Araya virgül koyarak dilediğiniz kadar ekleyebilirsiniz. BackTest açısından eski istisnalarda durmalıdır. (saat periyotla uyumlu olmaz ise HATALI çalışır. tarihler dd.MM.yyyy HH:mm formatında eklenmelidir.)

    //Veriler
    var Sistem.GrafikVerileri;
    var 
    Sistem.GrafikFiyatOku(V"Kapanis");

    //Sistem Getir
    var GrafikSistem Sistem.SistemGetir(GrafikSistemAdSistem.SembolSistem.Periyot); 
    var 
    Yonler GrafikSistem.Yon;
    var 
    Seviyeler GrafikSistem.Seviye;

    //İndikatörler
    //Vade Geçişi ndikatörü------------------------------------------------------
    //Aktif Viop Sözleşmelerinin Son günlerine ait barlarda 1 döndürür, diğer günlerde 0 döndürür. 

    var IndVadeSonu Sistem.Liste(0);
    for (
    int i 2V.Counti++) {
        
    DateTime BarTarih V[i].DateDateTime AyinSonGunu = new DateTime(BarTarih.AddMonths(1).YearBarTarih.AddMonths(1).Month 1).AddDays(-1);
        if ((
    BarTarih.Month 2) == 0  && BarTarih >= (AyinSonGunu.DayOfWeek == DayOfWeek.Sunday AyinSonGunu.AddDays(-2) : AyinSonGunu.DayOfWeek == DayOfWeek.Saturday AyinSonGunu.AddDays(-1) : AyinSonGunu))
        
    IndVadeSonu[i] = 1; else IndVadeSonu[i] = 0;
        for (
    int k 0IstisnaFlatTarihSaatleri.Countk++) { if(V[i].Date.ToString("dd.MM.yyyy")==IstisnaFlatTarihSaatleri[k]) IndVadeSonu[i] = 1; }
    }
    //---------------------------------------------------------------------------

    var VadeSonuHHV Sistem.HHV(IndikatorlerKacBardaToparliyorIndVadeSonu );

    //Çizgiler
    Sistem.Cizgiler[0].Deger IndVadeSonuSistem.Cizgiler[0].Panel=2Sistem.Cizgiler[0].Aciklama="IndVadeSonu"Sistem.Cizgiler[0].Stil=5;

    //Değişkenler
    var SonYon ""
    string GercekSonYon="";
    bool VadeSonuNedeniyleFlat false

    //Yön Kalıbı
    for (int i 300V.Counti++)
    {
    //Sistemde Yön var ise GercekSonYon'e ata.
    if( Yonler[i] != ""GercekSonYon=Yonler[i];

    //Yeni Vadenin ilk gününde ise ve İndikatörler topladı ise FLAT dan çıkış için değişkeni false yap.
    if(VadeSonuNedeniyleFlat && IndVadeSonu[i-1]==&& VadeSonuHHV[i-1]==0VadeSonuNedeniyleFlat=false

    bool VadeSonuFlatZaman false;
    if(
    MaskeVar)
    {
     
    VadeSonuFlatZaman V[i].Date.TimeOfDay >= TimeSpan.Parse(VadeSonGunuFlatSaat); //Normal Kontrol  
     
    for (int k 0IstisnaFlatTarihSaatleri.Countk++) {    if(  V[i].Date.ToString("dd.MM.yyyy HH:mm") == IstisnaFlatTarihSaatleri[k] ) VadeSonuFlatZaman true; } //İstisna Kontrol
    }

    //Vade Sonu Stratejisi
       //Vade Son Günü ise ve belirlenen saat geçti ise FLAT
       
    if( MaskeVar && IndVadeSonu[i-1]==&& VadeSonuFlatZaman) {VadeSonuNedeniyleFlat=true; if (SonYon!= "F") {Sistem.Yon[i] = SonYon "F";}}
       
    //İndikatörler Toprlamadı ise İşlem yok
       
    else if(MaskeVar && VadeSonuNedeniyleFlat) { }

       
    //Gerçek Sinyal: SonYon ile GercekSonYon aynı değil ise
       
    else if( SonYon != GercekSonYon  )
       {
          
    SonYon GercekSonYon;
          
    Sistem.Yon[i] = GercekSonYon;
          if(
    Seviyeler[i]!=nullSistem.Seviye[i] = Seviyeler[i];
       }


  7. #1111
    Duhul
    Feb 2017
    İkamet
    afyonkarahisar
    Gönderi
    794
     Alıntı Originally Posted by Orhan AKDOĞAN Yazıyı Oku
    Vade Geçişi Maskesi(Özel Tatil İstisnası Destekli): Sisteminizde hiç bir düzenleme yapmadan vade geçişini otomatikleştirmeye yarar.
    Test edilmemiştir.

    Haftasonu kontrolü zaten vardı, çağlar beyin bahsettiği hem yarım gün hemde farklı tam günlerde istisna olarak tanımlanabilir yapılmıştır.
    istisna örneği 31.08.2017 de 1 dk grafikte 12:00 da flata geçtiği kontrol edilebilir.


    PHP Code:
    //Ayarlar
    bool MaskeVar true;    // false ise sizin sistem, true ise Düşen Kar Maskesi Aktif.
    var GrafikSistemAd"A1";  // Sisteminizin adını yazın.

    string VadeSonGunuFlatSaat="17:00";  //Vade Sonu Günü Flat olunacak Zaman (saat periyotla uyumlu olmasada doğru çalışır.)
    int IndikatorlerKacBardaToparliyor 60//Vade Sonu gününe içinde olan bardan kaç bar sonra devam edilsin.
    var IstisnaFlatTarihSaatleri = new List<string>(new string[]{ "31.08.2017 12:00" });  //Özel Tatillerdeki Flat zamanlarıdır. Araya virgül koyarak dilediğiniz kadar ekleyebilirsiniz. BackTest açısından eski istisnalarda durmalıdır. (saat periyotla uyumlu olmaz ise HATALI çalışır. tarihler dd.MM.yyyy HH:mm formatında eklenmelidir.)

    //Veriler
    var Sistem.GrafikVerileri;
    var 
    Sistem.GrafikFiyatOku(V"Kapanis");

    //Sistem Getir
    var GrafikSistem Sistem.SistemGetir(GrafikSistemAdSistem.SembolSistem.Periyot); 
    var 
    Yonler GrafikSistem.Yon;
    var 
    Seviyeler GrafikSistem.Seviye;

    //İndikatörler
    //Vade Geçişi ndikatörü------------------------------------------------------
    //Aktif Viop Sözleşmelerinin Son günlerine ait barlarda 1 döndürür, diğer günlerde 0 döndürür. 

    var IndVadeSonu Sistem.Liste(0);
    for (
    int i 2V.Counti++) {
        
    DateTime BarTarih V[i].DateDateTime AyinSonGunu = new DateTime(BarTarih.AddMonths(1).YearBarTarih.AddMonths(1).Month 1).AddDays(-1);
        if ((
    BarTarih.Month 2) == 0  && BarTarih >= (AyinSonGunu.DayOfWeek == DayOfWeek.Sunday AyinSonGunu.AddDays(-2) : AyinSonGunu.DayOfWeek == DayOfWeek.Saturday AyinSonGunu.AddDays(-1) : AyinSonGunu))
        
    IndVadeSonu[i] = 1; else IndVadeSonu[i] = 0;
        for (
    int k 0IstisnaFlatTarihSaatleri.Countk++) { if(V[i].Date.ToString("dd.MM.yyyy")==IstisnaFlatTarihSaatleri[k]) IndVadeSonu[i] = 1; }
    }
    //---------------------------------------------------------------------------

    var VadeSonuHHV Sistem.HHV(IndikatorlerKacBardaToparliyorIndVadeSonu );

    //Çizgiler
    Sistem.Cizgiler[0].Deger IndVadeSonuSistem.Cizgiler[0].Panel=2Sistem.Cizgiler[0].Aciklama="IndVadeSonu"Sistem.Cizgiler[0].Stil=5;

    //Değişkenler
    var SonYon ""
    string GercekSonYon="";
    bool VadeSonuNedeniyleFlat false

    //Yön Kalıbı
    for (int i 300V.Counti++)
    {
    //Sistemde Yön var ise GercekSonYon'e ata.
    if( Yonler[i] != ""GercekSonYon=Yonler[i];

    //Yeni Vadenin ilk gününde ise ve İndikatörler topladı ise FLAT dan çıkış için değişkeni false yap.
    if(VadeSonuNedeniyleFlat && IndVadeSonu[i-1]==&& VadeSonuHHV[i-1]==0VadeSonuNedeniyleFlat=false

    bool VadeSonuFlatZaman false;
    if(
    MaskeVar)
    {
     
    VadeSonuFlatZaman V[i].Date.TimeOfDay >= TimeSpan.Parse(VadeSonGunuFlatSaat); //Normal Kontrol  
     
    for (int k 0IstisnaFlatTarihSaatleri.Countk++) {    if(  V[i].Date.ToString("dd.MM.yyyy HH:mm") == IstisnaFlatTarihSaatleri[k] ) VadeSonuFlatZaman true; } //İstisna Kontrol
    }

    //Vade Sonu Stratejisi
       //Vade Son Günü ise ve belirlenen saat geçti ise FLAT
       
    if( MaskeVar && IndVadeSonu[i-1]==&& VadeSonuFlatZaman) {VadeSonuNedeniyleFlat=true; if (SonYon!= "F") {Sistem.Yon[i] = SonYon "F";}}
       
    //İndikatörler Toprlamadı ise İşlem yok
       
    else if(MaskeVar && VadeSonuNedeniyleFlat) { }

       
    //Gerçek Sinyal: SonYon ile GercekSonYon aynı değil ise
       
    else if( SonYon != GercekSonYon  )
       {
          
    SonYon GercekSonYon;
          
    Sistem.Yon[i] = GercekSonYon;
          if(
    Seviyeler[i]!=nullSistem.Seviye[i] = Seviyeler[i];
       }



    orhan bey resimdeki isteklerimizide yapabilmek için de bir kod yazılabilirmi veya bu istekler kod yazılarak yapılabilirmi ?

  8. Dün vade sonu olduğu için pozisyonlarım otomatik olarak kapandı.
    Ama getiri eğrimde vade farkından kaynaklanan okkalı bir zarar görüyorum.

    vahap beyaz, ahmet çakar ....

Sayfa 139/350 İlkİlk ... 3989129137138139140141149189239 ... 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
  •