Ticarette makine öğrenimi: teori, pratik, ticaret ve daha fazlası - sayfa 1849

 
Michael Marchukajtes :
Standart olarak, hictom aracılığıyla... sadece her bir işaretin kaydedildiği dosyadan verileri okur ve gösterge yeni bir çubuk göründüğünde okur ve biraz yanlış bir değer aldığı ortaya çıkar. hatırladı...

Her kenenin yazılı olmadığı gerçeğiyle başlayalım

   if ((interest!=inter))
  {

   MqlTick last_tick;
   if ( SymbolInfoTick (Name_instrFS,last_tick)) 
    StartDate=last_tick.time;
     else StartDate= TimeCurrent ();
     for ( int i= 0 ;i< 100 && ! IsStopped ();i++)
    { 
      h= FileOpen ( "OpenI\\" +Name_instr+ "_OI.csv" , FILE_WRITE | FILE_READ | FILE_ANSI | FILE_CSV | FILE_COMMON | FILE_SHARE_READ , "," );
       if (h!= INVALID_HANDLE )                                                         
       {  
         
         FileSeek (h, 0 , SEEK_END );
         FileWrite (h,StartDate, DoubleToString (interest, 0 )); 
         FileClose (h); 
         Sleep ( 100 );
         break ; 
       }
    }   
    inter=interest;
   // byOR=byORD;
   // sellOR=sellORD;
  }

OI, yalnızca değiştiyse ve 10 saniyeden (her yazmadan sonra 0,1 saniye bekleme süresiyle çarpılan aynı satırların 100 yazma döngüsü) saniyeden fazla değiştiyse yazılır. Aslında, birçok işaret atlanır, bu nedenle oynatma sırasında hassas senkronizasyon artık mümkün değildir. Kenelerle çalışmama rağmen - test cihazındaki tüm onay işaretlerini mi yoksa yalnızca enstrümanın (varlığın) satın alındığı/satıldığı işaretleri mi kontrol edin?

Kapalı bir dakikanın sonucuna göre OI yazmak daha iyidir - daha az gereksiz veri vardır, göstergede senkronizasyon daha uygundur.


Göstergeye göre - orada tarihe bir şey çizildi - doğru söyleyelim.

Ve sonra sıfır barda böyle bir maydanoz gider

  BufOI[ 0 ]= SymbolInfoDouble ( Symbol (), SYMBOL_SESSION_INTEREST );
 LastUPdate= FileGetInteger ( "OpenI\\" +FileName1, FILE_MODIFY_DATE , true );
   if ((LastUPdate!=UPdate))
     {
       int h= FileOpen ( "OpenI\\" +FileName1, FILE_READ | FILE_ANSI | FILE_CSV | FILE_COMMON , "," );
       string str= FileReadString (h);                             // читаем очередную строку из файла

    BufOI[ 1 ]= StringToDouble (str);
       FileClose (h);
   BufOI[ 0 ]=BufOI[ 1 ];

 UPdate=LastUPdate;   

Sunucudan tıklama verilerini alıyoruz, bunlar test cihazında değil - ve kullanılmıyorlar.

Ardından, canlı olarak her 15 dakikada bir güncellenen ancak test cihazında olmayan yeni bir dosya değiştirme tarihi görünürse, verileri dosyadan okuruz (son satır) FileName1=_Symbol+FileNames+"_TMP.csv"; ve alınan verinin değerini ilk çubuğa atayın, dosyayı kapatın ve değeri sıfır çubuğuna da atayın. Eh, test cihazında böyle bir seçeneğin hiçbir şekilde çalışmadığı açıktır.

İki gösterge moduna ihtiyacınız var - tarih üzerinde çalışmak ve gerçek zamanlı olarak çalışmak için, sanırım öyle.


Tarihteki verilerin doğruluğunu kontrol ettik - aksi takdirde dosyadaki veriler garip bir şekilde okunur ...

         while (! FileIsEnding (h))
           {
             ArrayResize (oi,ct+ 2 , 1000 );
             string str= FileReadString (h);                             // читаем очередную строку из файла
             if (cnt== 0 ) oi[ct].time= StringToTime (str);                 //если запись первая, т.е. дата, то конвертируем из стринга в дататайм
             else if (cnt== 2 ) oi[ct].oi= StringToDouble (str);   //если запсиь вторая, т.е. ОИ, то конвертируем в инт и 

            cnt++; // увеличиваем счетчик прочитанных строк
             if ( FileIsLineEnding (h)) {cnt= 0 ; ct++;}
           }

Verilerin dikkate alındığı ortaya çıktı

 
Alexey Vyazmikin :

Her kenenin yazılı olmadığı gerçeğiyle başlayalım

OI, yalnızca değiştiyse ve 10 saniyeden (her yazmadan sonra 0,1 saniye bekleme süresiyle çarpılan aynı satırların 100 yazma döngüsü) saniyeden fazla değiştiyse yazılır. Aslında, birçok işaret atlanır, bu nedenle oynatma sırasında hassas senkronizasyon artık mümkün değildir. Kenelerle çalışmama rağmen - test cihazındaki tüm onay işaretlerini mi yoksa yalnızca enstrümanın (varlığın) satın alındığı/satıldığı işaretleri mi kontrol edin?

Kapalı bir dakikanın sonucuna göre OI yazmak daha iyidir - daha az gereksiz veri vardır, göstergede senkronizasyon daha uygundur.


Göstergeye göre - orada tarihe bir şey çizildi - doğru söyleyelim.

Ve sonra sıfır barda böyle bir maydanoz gider

Sunucudan tıklama verilerini alıyoruz, bunlar test cihazında değil - ve kullanılmıyorlar.

Ardından, canlı olarak her 15 dakikada bir güncellenen ancak test cihazında olmayan yeni bir dosya değiştirme tarihi görünürse, verileri dosyadan okuruz (son satır) FileName1=_Symbol+FileNames+"_TMP.csv"; ve alınan verinin değerini ilk çubuğa atayın, dosyayı kapatın ve değeri sıfır çubuğuna da atayın. Eh, test cihazında böyle bir seçeneğin hiçbir şekilde çalışmadığı açıktır.

İki gösterge moduna ihtiyacınız var - tarih üzerinde çalışmak ve gerçek zamanlı olarak çalışmak için, sanırım öyle.


Tarihteki verilerin doğruluğunu kontrol ettik - aksi takdirde dosyadaki veriler garip bir şekilde okunur ...

Verilerin dikkate alındığı ortaya çıktı

Burada sana kesinlikle katılıyorum. Ve verileri dakika içinde birkaç değer yazıyor, bu her tik değil, yine de. Ardından bu verilerden herhangi bir TF oluşturur

TMP dosyası hakkında, bu zaten benim yazımdı. Yeni bir mum geldiğinde hindi güncellensin diye yaptım ve orada çıktı, öyle görünüyor ki, gerçek hayatta doğru. Ancak bir noktada, ya önceki mumun son değerini ya da zaten açık olan bir mumun ilk değerini yakalayacaktır. Yazardan dakikalarca tekrar etmesini istedim ama sonuç bir türlü gelmedi.

Sonuç olarak, Millet Meclisi girişinde fiili sonuçların alınabilmesi için, göstergenin doğru bir şekilde başlatılması ve doğru sonuçları vermesi için her sinyalde Uzman Danışmanı yeniden derlemek gerektiğini hatırladım. Bundan, mevcut sinyal değişebilir. Bu gerçekten stresliydi...

Основы тестирования в MetaTrader 5
Основы тестирования в MetaTrader 5
  • www.mql5.com
Идея автоматической торговли привлекательна тем, что торговый робот может без устали работать 24 часа в сутки и семь дней в неделю. Робот не знает усталости, сомнений и страха,  ему не ведомы психологические проблемы. Достаточно четко формализовать торговые правила и реализовать их в виде алгоритмов, и робот готов неустанно трудиться. Но прежде...
 
Michael Marchukajtes :

Burada sana kesinlikle katılıyorum. Ve verileri dakika içinde birkaç değer yazıyor, bu her tik değil, yine de. Ardından bu verilerden herhangi bir TF oluşturur

Öyleyse, OI'yi bir dakika içinde birkaç kez yazmanın ne anlamı var, göstergeden veri alırsanız, daha az TF olmayacaktır. Ve evet, yanılıyorum, başarılı bir şekilde kaydedildiyse döngüden bir çıkış var, ancak yine de minimum 0,1 saniye aralık. Keneler üzerine bir model mi oluşturuyorsunuz?

Michael Marchukajtes :

TMP dosyası hakkında, bu zaten benim yazımdı. Yeni bir mum geldiğinde hindi güncellensin diye yaptım ve orada çıktı, öyle görünüyor ki, gerçek hayatta doğru. Ancak bir noktada, ya önceki mumun son değerini ya da zaten açık olan bir mumun ilk değerini yakalayacaktır. Yazardan dakikalarca tekrar etmesini istedim ama sonuç bir türlü gelmedi.

Gerçekte, bu satırın göstergesinde oldukça basittir - piyasadan alabiliyorsanız neden bir dosyadan veri okuyasınız?

BufOI[ rates_total-1 ]= SymbolInfoDouble ( Symbol (), SYMBOL_SESSION_INTEREST );

Test cihazında, geçmiş görselleştiricide doğru bir şekilde çizilmiştir. Kontrol ettiniz mi?

 
Michael Marchukajtes :

Sonuç olarak, Millet Meclisi girişinde fiili sonuçların alınabilmesi için, göstergenin doğru bir şekilde başlatılması ve doğru sonuçları vermesi için her sinyalde Uzman Danışmanı yeniden derlemek gerektiğini hatırladım. Bundan, mevcut sinyal değişebilir. Bu gerçekten stresliydi...

Garip. Ancak, danışman için göstergeyi tamamen terk edebilir ve dosyadan yapıya hemen okuyabilir ve dizi yapısında zaten bulunan değeri arayabilir mi?

Si için OI arşivini birkaç gün içinde sıfırlayın - böyle bir mantık yürütmek soyut olarak zordur.
 
elibrarius :

Benim de benzer bir fikrim vardı ama şu ana kadar başka biriyle meşguldüm. Umarım yakında bunu deneyeceğim.
Ayrıca bir dezavantajı var - modelin 10 daha küçük veri alanından öğreneceği gerçeği. Bana öyle geliyor ki bu durumda genelleme yeteneği azalacak.

Başka bir şekilde de mümkündür - 9/10 üzerinde çalışmak ve numunenin kalan 1/10'unu kesmek.

 
Alexey Vyazmikin :

Başka bir şekilde de mümkündür - 9/10 üzerinde çalışmak ve numunenin kalan 1/10'unu kesmek.

Alexey Vyazmikin :

Öyleyse, OI'yi bir dakika içinde birkaç kez yazmanın ne anlamı var, göstergeden veri alırsanız, daha az TF olmayacaktır. Ve evet, yanılıyorum, başarılı bir şekilde kaydedildiyse döngüden bir çıkış var, ancak yine de minimum 0,1 saniye aralık. Keneler üzerine bir model mi oluşturuyorsunuz?

Gerçekte, bu satırın göstergesinde oldukça basittir - piyasadan alabiliyorsanız neden bir dosyadan veri okuyasınız?

Test cihazında, geçmiş görselleştiricide doğru bir şekilde çizilmiştir. Kontrol ettiniz mi?

Evet, ancak bağlantı koparsa bir delik olacaktır. Tarihin eksiksizliği için bir kontrol yoktur. Ve dakikalar açısından tamamen katılıyorum.

olimpiyat arşivi

http://fayloobmennik.cloud/7399404

 
Michael Marchukajtes :

Evet, ancak bağlantı koparsa bir delik olacaktır. Tarihin eksiksizliği için bir kontrol yoktur. Ve şimdilik, tamamen katılıyorum.

olimpiyat arşivi

http://fayloobmennik.cloud/7399404

Peki bağlantı koptuğunda veriler dosyaya nasıl yazılacak?

 
Roma :

Temel veriler, dijital değerler veren birçok göstergeye sahiptir.
Hatta burada sitede, haber takvimi olaylarla ilgili istatistikler sağlar.
Evet katılıyorum, konuşma ifadelerinde sayısal değer yoktur.
Bu nedenle, bu tür veriler muhtemelen 0 1 olarak sınıflandırılmalıdır.
Ana şey, olumlu konuşma ile olumsuz arasında ayrım yapmayı öğrenmek))
Ama şimdi, bu da düşünülmesi gereken bir fikir! ))

temeli kullanmak için bazı sayılar eksik

hatırladığım kadarıyla, herhangi bir parasal toplam bulamadım, birkaç tane var

bu nedenle, bazıları yaklaşık 2010'dan beri kamuya açık hale getirilmedi.

 
Michael Marchukajtes :

Evet, ancak bağlantı koparsa bir delik olacaktır. Tarihin eksiksizliği için bir kontrol yoktur. Ve dakikalar açısından tamamen katılıyorum.

olimpiyat arşivi

http://fayloobmennik.cloud/7399404

Dakika çubuğunun açılması sırasında, HA önceki giriş olarak alınması gerektiğine katılıyor musunuz? Örneğin saat 10:00'daki açılışı 23:49:55 olarak alıyoruz.

Anladığım kadarıyla, göstergeyi M1'de kullanmak ve gerekli tüm bilgileri sıfır çubuğundan almak ve EA'da istenen kayma ile gösterge tamponundan bilgi talebini dikkate alarak farklı karşılaştırmalar yapmak daha iyidir.

Dosyadaki üçüncü değer için neye sahipsiniz - ilk tarih, ikinci HAK ve üçüncü? Delta sanmıştım ama olmuyor.

Genel olarak, göstergeyi yeniden düzenledim, yukarıda yazdığım gibi, tam olarak OI'yi okur ve gösterir, çalışma hızı önemli ölçüde arttı - test edin.

Evet ve bir dosyadan okuma çalışması gerekir, bir kırılma ve dosyada veri bulunması durumunda, ancak piyasa kapalıdır ve kontrol edilmemiştir.

Dosyalar:
OI_Test.mq5  16 kb
 
Alexey Vyazmikin :

Peki bağlantı koptuğunda veriler dosyaya nasıl yazılacak?

Ara, komisyoncu adına global olarak meydana gelirse, o zaman hiçbiri, yapılacak hiçbir şey yoktur. Veri kaydetme danışmanı VPS sunucusundadır ve verilerin kayıpsız yazıldığını söyleyeceğim.
Neden: