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

 
Alexey Vyazmikin :

Dakika çubuğunun açılması sırasında HAK'nın önceki kayıt 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.

Aslında, hiç önemli değil. Kaydedilen verilerin göstergeye her zaman doğru şekilde yüklenmesi önemlidir. Gerçek şu ki, eğitim dosyasını kaydetmeden önce bu tür hatalara izin verilir. Ve eğer böyle bir kural belirlersek, öyle olsun, asıl mesele, gerçek hayatta göstergenin bu kuralı ironik bir şekilde takip etmesidir.

Alexey, sağlanan gösterge için teşekkürler, ancak tasarruf EA hakkında bir sorum var. Bir dakika içinde OI'deki her değişiklikle değil de her dakika aynı şeyi yazmasını sağlayabilir miyim?

Genelde işimde sıfır çubuğunu kullanmıyorum. Ayrıca tüm hesaplamaları ilk çubukta sinyal göründükten 30 saniye sonra yapıyorum. Bu nedenle, genel olarak sinyal arasında herhangi bir hesaplama yapılmaz. Ancak, ilk çubukta bir sinyal ile, 30 saniye sonra, gösterge modelindeki tüm katılımcılar çağrılır ve teorik olarak, bu göstergeler, son çağrıdan (sinyal) mevcut olana kadar tüm geçmişi hesaplamalıdır, çizelgelerde. Bu aslında türkiye'nin mevcut değeri yeterince alabilmesi için dosyadan okuması gereken delik.

Gerçek şu ki, tarihteki boşluklara ve boşluklara duyarlı olan alıntıya bağlı verileri (onlara kendim böyle adlandırdım :-)) kullanıyorum.

Lütfen kullandığım göstergeleri kodlamama yardım edin, size eğitim setlerini hazırlarken birkaç önemli fikirle teşekkür edeceğim. + Hizmet için 37 dolarım var, onları sana sorunsuz vereceğim. Ancak, yalnızca gerçek çalışma sırasında Uzman Danışmana veri alımının tam güvenilirliğinin sağlanması şartıyla.

Sahip olduğum temel sorun, bir yapay zeka danışmanını bir çizelgeye atıp yeni bir sinyal aldığımda, onu yeniden derlemem gerekiyor ve ardından göstergelerden yeterli veri talep edecek. Ama sorun hindilerin kendisinde. Bunları grafiğe atıyorum, tarihi doğru çiziyor, gerçeğin üzerinde duruyor ve veri yazmaya devam ediyor. Bir süre sonra yeniden derleme yapıyorum ve gerçek hayatta yazılan kuyruk değerlerini değiştiriyor.

Çubuklara göre doğru bir şekilde hesaplanan kümülatif delta göstergesi de vardır. Bununla birlikte, bu göstergenin uzun bir geçmişi ile ve bu M5'te 3 aydır, bir döngü için hesaplamak için zamanı yoktur, çünkü kopyadan veri alır, burada anladığı gibi bir unep olduğu ortaya çıkar. ..çok sayıda döngü.

En son güncelleme ile, istek 3-6 aylık bir geçmiş için 14 enstrüman için gittiğinden, bir eğitim dosyası oluştururken hafıza sertleşti. Sonuç olarak, 8 gig RAM yeterli değil. Ve bu hindi gerçek hayatta ihtiyacım olmayan sıfır bar yazıyor. Sıfır çubuğu göründüğünde yalnızca ilkini yüklemem yeterli.

Genel olarak, biraz yardım etmekle ilgileniyorsanız, oraya kişisel olarak yazın, daha spesifik olarak anlaşacağız. Sayesinde!!!!

Dosyalar:
CumDelta.mq5  55 kb
 
Michael Marchukajtes :

Aslında, hiç önemli değil. Kaydedilen verilerin göstergeye her zaman doğru şekilde yüklenmesi önemlidir. Gerçek şu ki, eğitim dosyasını kaydetmeden önce bu tür hatalara izin verilir. Ve eğer böyle bir kural belirlersek, öyle olsun, asıl mesele, gerçek hayatta göstergenin bu kuralı ironik bir şekilde takip etmesidir.

Alexey, sağlanan gösterge için teşekkürler, ancak tasarruf EA hakkında bir sorum var. Bir dakika içinde OI'deki her değişiklikle değil de her dakika aynı şeyi yazmasını sağlayabilir miyim?

Genelde işimde sıfır çubuğunu kullanmıyorum. Ayrıca tüm hesaplamaları ilk çubukta sinyal göründükten 30 saniye sonra yapıyorum. Bu nedenle, sinyal arasında genel olarak herhangi bir hesaplama yoktur. Ancak, ilk çubukta bir sinyal ile, 30 saniye sonra, gösterge modelindeki tüm katılımcılar çağrılır ve teorik olarak, bu göstergeler, son çağrıdan (sinyal) mevcut olana kadar tüm geçmişi hesaplamalıdır, çizelgelerde. Bu aslında türkiye'nin mevcut değeri yeterince alabilmesi için dosyadan okuması gereken delik.

İşin aslı, özellikle hızlı bir pazarda eğitim ve uygulama mükemmel bir şekilde yeniden üretilemez. Şimdi, yeni verilere göre gecikmenin 10 saniyeye kadar olduğu ortaya çıktı (eğer tarih hakkında konuşuyorsak) ve yalnızca çubuğun açılışında yazarsanız, gecikme zaten 60 saniye veya daha fazla olacaktır. Çubuğun açılışında elde edilen verilerle çalışırsanız (vardiya yapmayın), hata göstergede olacaktır, yani. geleceğe bir bakış olabilir. Genel olarak, burada ideoloji hakkında tekrar düşünmemiz gerekiyor, şimdi veriler daha yeni, ancak bunların hepsi teori. Yeni bir çubuk göründüğünde kaydedilen verileri almak ve onlardan öğrenmek yeterli olabilir.

Bir dakika içinde gereksiz satırları kaldıran bir komut dosyası oluşturabilirsiniz ve dosya boyutu 10 kat daha küçük olacaktır.

Michael Marchukajtes :

Sahip olduğum temel sorun, bir yapay zeka danışmanını bir çizelgeye atıp yeni bir sinyal aldığımda, onu yeniden derlemem gerekiyor ve ardından göstergelerden yeterli veri talep edecek. Ama sorun hindilerin kendisinde. Bunları grafiğe atıyorum, tarihi doğru çiziyor, gerçeğin üzerinde duruyor ve veri yazmaya devam ediyor. Bir süre sonra yeniden derleme yapıyorum ve gerçek hayatta yazılan kuyruk değerlerini değiştiriyor.

Verdiğim göstergenin sürümünü deneyin. Sorun ortadan kalkmazsa, muhtemelen danışmandadır ve göstergelerde değildir. Göstergeden veri almak için kodu gösterin.

 
Michael Marchukajtes :
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.

Şimdi, geçmişi kaydetmek için EA'nın, göstergenin ve ticaret danışmanının çalışmasına paralel olarak verileri kaydetmesi bekleniyor, bu nedenle, bağlantı koptuğunda veya terminal kapatıldığında, dosyadan yeni geçmiş veriler alınacak, bu acilen çalışmaya devam etmenize ve ardından dosyayı VPS ile değiştirmenize ve danışmanları yeniden başlatmanıza izin verecektir.

 
Michael Marchukajtes :

\Aleksey, sağlanan gösterge için teşekkürler, ancak tasarruf EA hakkında bir sorum var. Bir dakika içinde OI'deki her değişiklikle değil de her dakika aynı şeyi yazmasını sağlayabilir miyim?

Özellikle rahatsız etmiyorsa, bu seçeneği işaretleyin

   MqlTick last_tick;
   if ( SymbolInfoTick (Name_instrFS,last_tick))
      StartDate=last_tick.time;
   else StartDate= TimeCurrent ();
   if (isNewBar(Name_instrFS, 0 , PERIOD_M1 ))
   {
       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;
   }
 
Alexey Vyazmikin :

Özellikle rahatsız etmiyorsa, bu seçeneği işaretleyin

Alexey çok minnettar. Kesinlikle her şeyi kontrol edeceğim ve sonucu size bildireceğim. Geleceğe bakmaya gelince, bu kesinlikle önemli değil ve danışman göstergeyi okuyacağı gibi yazarsa bu olmayacak. Aralarında bir fark yoksa, önemli değil. Bir seçenek olarak, yeni bir çubuk göründüğünde, ROI'deki ilk değişikliği bekler ve bu yeni değeri ilk, önceki çubuk için yazarız. Hatta yeni bir değer değil, ilk çubuk için son olan eski bir değer bile yazabiliriz. Yani aslında barın kapanışında bir rekor olacak.

Önemli olan dakika çubuğuna ne kadar ROI atadığımız değil, indikatörün dosyadan nasıl okunacağıdır.

 
Michael Marchukajtes :

Alexey çok minnettar. Kesinlikle her şeyi kontrol edeceğim ve sonucu size bildireceğim. Geleceğe bakmaya gelince, bu kesinlikle önemli değil ve danışman göstergeyi okuyacağı gibi yazarsa bu olmayacak. Aralarında bir fark yoksa, önemli değil. Bir seçenek olarak, yeni bir çubuk göründüğünde, ROI'deki ilk değişikliği bekler ve bu yeni değeri ilk, önceki çubuk için yazarız. Hatta yeni bir değer değil, ilk çubuk için son olan eski bir değer bile yazabiliriz. Yani aslında barın kapanışında bir rekor olacak.

Önemli olan dakika çubuğuna ne kadar ROI atadığımız değil, indikatörün dosyadan nasıl okunacağıdır.

Bak lütfen tam kodu ve asıl soruyu veriyorum

interest= SymbolInfoDouble (Name_instrFS, SYMBOL_SESSION_INTEREST ); 


   if ((interest!=inter))
  {

   MqlTick last_tick;
   /*if(SymbolInfoTick(Name_instrFS,last_tick)) 
    StartDate=last_tick.time;
    else StartDate=TimeCurrent();*/
    StartDate= iTime (Name_instrFS, PERIOD_M1 , 1 );
   if (isNewBar(Name_instrFS, 0 , PERIOD_M1 ))
   {  
     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 (inter, 0 )); 
         FileClose (h); 
         Sleep ( 100 );
         break ; 
       }
    }   
    inter=interest;
   // byOR=byORD;
   // sellOR=sellORD;
  }
}


Yeni bir çubuk açılırsa ve 5 tik içinde ROI'de herhangi bir değişiklik olmazsa, yeni bir çubuk durumuna girer mi?

Fikre göre, olması gerektiğini düşünüyorum, çünkü bu yeni bar işlevine yapılan ilk çağrı olacak ve ancak ondan sonra sonuç false olarak mı değişecek? Niye ya?

 
Kodun çalışmasını kafamda simüle ettikten sonra bir darboğaz buldum. Dünün oturumunun son çubuğu, bugünkü oturumun dakika çubuğunun açılışındaki ilk değişiklikte kaydedilecek, EA yeniden etkisiz hale getirilirse, ROI değeri sıfıra uçacak ve bu da oturumda hoş olmayan bir sıfır girişine yol açacaktır. dünkü seansın son çubuğu. Sanırım hala ilk çubuktaki önceki ROI değerini değil, mevcut ROI'yi yani yeni çubukta ilk olacak ROI'yi kaydetmeye karar verildi. Tamam, onları mükemmel bir şekilde senkronize etmek istedim, ama bence tam da bunu yapacak ... Yani ... düşünceleri yüksek sesle ...
 
Alexey Vyazmikin :

İşin aslı, özellikle hızlı bir pazarda eğitim ve uygulama mükemmel bir şekilde yeniden üretilemez. Şimdi, yeni verilere göre gecikmenin 10 saniyeye kadar olduğu ortaya çıktı (eğer tarih hakkında konuşuyorsak) ve yalnızca çubuğun açılışında yazarsanız, gecikme zaten 60 saniye veya daha fazla olacaktır. Çubuğun açılışında elde edilen verilerle çalışırsanız (vardiya yapmayın), hata göstergede olacaktır, yani. geleceğe bir bakış olabilir. Genel olarak, burada ideoloji hakkında tekrar düşünmemiz gerekiyor, şimdi veriler daha yeni, ancak bunların hepsi teori. Yeni bir çubuk göründüğünde kaydedilen verileri almak ve onlardan öğrenmek yeterli olabilir.

Bir dakika içinde gereksiz satırları kaldıran bir komut dosyası oluşturabilirsiniz ve dosya boyutu 10 kat daha küçük olacaktır.

Verdiğim göstergenin sürümünü deneyin. Sorun ortadan kalkmazsa, muhtemelen danışmandadır ve göstergelerde değildir. Göstergeden veri almak için kodu gösterin.

Yüzünde bir hata olduğu geçmişindeki göstergeyi kontrol ettim. Gerçek şu ki, ilk dakika mumunun tırnak penceresinde saat 10:00'dır, ancak bu mumun değeri önceki mumdan alınmıştır. Yani saat 10:00'da mum açtık 10:00:59'da kapattık, yazmanız gereken değer bu değil mi? gösterge, çizildiğinde, bu çubuğun değerini 23:59:59'dan alır.
 
Michael Marchukajtes :
Yüzünde bir hata olduğu geçmişindeki göstergeyi kontrol ettim. Gerçek şu ki, ilk dakika mumunun tırnak penceresinde saat 10:00'dır, ancak bu mumun değeri önceki mumdan alınmıştır. Yani saat 10:00'da mum açtık 10:00:59'da kapattık, yazmanız gereken değer bu değil mi? gösterge, çizildiğinde, bu çubuğun değerini 23:59:59'dan alır.
Yaşasın işe yaradı. Artık dosyanın dakikaya göre mi yoksa tik ile mi yazıldığı önemli değil, mum için doğru değerleri yazıyor. Yani bir mumun açılış saati varsa bu mumun kapanışındaki değeri ona yazarız...
 
Michael Marchukajtes :
Yüzünde bir hata olduğu geçmişindeki göstergeyi kontrol ettim. Gerçek şu ki, ilk dakika mumunun tırnak penceresinde saat 10:00'dır, ancak bu mumun değeri önceki mumdan alınmıştır. Yani saat 10:00'da mum açtık 10:00:59'da kapattık, yazmanız gereken değer bu değil mi? gösterge, çizildiğinde, bu çubuğun değerini 23:59:59'dan alır.

Danışman gecikmeli de olsa çubuğun açılması üzerinde çalışıyorsa, mumun kapanması hakkında veri sunması doğru mu, yani. geleceğe bak? Bu nedenle, bu mumdan önceki en son kaydedilen veriler, yani. hafif bir gecikme, bir ilerleme değil.


Michael Marchukajtes :

Bak lütfen tam kodu ve asıl soruyu veriyorum


Yeni bir çubuk açılırsa ve 5 tik içinde ROI'de herhangi bir değişiklik olmazsa, yeni bir çubuk durumuna girer mi?

Fikre göre, olması gerektiğini düşünüyorum, çünkü bu yeni bar işlevine yapılan ilk çağrı olacak ve ancak ondan sonra sonuç false olarak mı değişecek? Niye ya?

Buradaki 5 tik sayısı nerede? Tüm dakika boyunca hiçbir işlem olmadığında, çubuğu atlıyorsunuz, bu yüzden OI hacmindeki değişiklik için karşılaştırmayı kaldırdım, böylece veriler yeni bir mum açıldığında hemen yazılacaktı. Belki hesaba katmamışımdır, verileri test etmem gerekiyor ama dün yoktu ama bugün iş günü :(