MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 255

 
Alexey Viktorov :
Geçerli saat 17:08 33'ü gösterir. Yani 01:00 saatindeki çubuğun sayısı 32 olacaktır.
 datetime t= StringToTime ( "01:00" );

Doğru karar değil. Test 00.00'da başlarsa, bu seçenek 0 bar verir ve bir sonraki 01.00'e kadar 46 M30 bar olmalıdır.

 
Nauris Zukas :

Doğru karar değil. Test 00.00'da başlarsa, bu seçenek 0 bar verir ve bir sonraki 01.00'e kadar 46 M30 bar olmalıdır.

Ben yön verdim ama nasıl yapılır 01:00'de en yakın bara 00:59'da verebilmek için bunu kendiniz yapabilmeniz gerekir. Bunda zor bir şey yok.

 
Alexey Viktorov :

Ben yön verdim ama nasıl yapılır 01:00'de en yakın bara 00:59'da verebilmek için bunu kendiniz yapabilmeniz gerekir. Bunda zor bir şey yok.

Herhangi biri için, bir döngü kullanmanız ve belirtilen en yakın zamanı aramanız gerekecek, aksi takdirde herhangi bir seçenek görmüyorum.

 
Alexey Viktorov :
Tek sorun şu ki, bellek hücremi belirtilen süre ile barı dikkate alarak veya 1'den azını dikkate alarak ortaya çıkan değerin ne olacağı gibi gereksiz şeylerle asla doldurmam. Her seferinde sadece kontrol ediyorum.


Çevrimsiz çubuklar için belirtilen en yakın zamanı nasıl bulacağım hakkında hiçbir fikrim yok. Bunda karmaşık bir şey yoksa işlevi gösterebilir misiniz?

 

Sevgili uzmanlar, MT-4'teki test sonuçlarını bir dosyaya nasıl çıkaracağımı söyleyin

burada açıklandığı gibi daha fazla işlem için https://www.mql5.com/en/articles/1467?

Автоматическая оптимизация торгового робота в процессе реальной торговли
Автоматическая оптимизация торгового робота в процессе реальной торговли
  • 2007.04.16
  • Igor Malcev
  • www.mql5.com
В статье описана и представлена библиотека функций, позволяющая проводить оптимизацию входных параметров советника, запуская оптимизацию непосредственно из советника.
 
Nauris Zukas :


Çevrimsiz çubuklar için belirtilen en yakın zamanı nasıl bulacağım hakkında hiçbir fikrim yok. Bunda karmaşık bir şey yoksa işlevi gösterebilir misiniz?

..... sadece kelime yok ....

Zaman, gereken süreden azsa, bu gerekli sürenin bir gün azaltılması gerektiğini tahmin etmek ne kadar zor.

 string st = "1:00" ; // можно и так писать "01:00"
 datetime t = StringToTime (st);

 if ( TimeCurrent () < t)
  {
   MqlDateTime mqlDateTime; 
   TimeToStruct (t, mqlDateTime);
   mqlDateTime.day -= 1 ;
   t = StructToTime (mqlDateTime);
  }
 int b = Bars ( _Symbol , PERIOD_M30 , t, TimeCurrent ());

Çıktı dikkate alınmadan yapılır ve olası çalışma zamanı hatalarını kontrol eder. Başka uygulamalar da mümkün, bu yüzden örnek kodlar yazmamaya çalışıyorum. Bugün yapmaya karar verdim, yarın daha uygun başka bir seçenek düşünebilirim.

 
Alexey Viktorov :

Zaman, gereken süreden azsa, bu gerekli sürenin bir gün azaltılması gerektiğini tahmin etmek ne kadar zor.

Sırf bu yüzden tahmin etmek zor:

Alexey Viktorov :

Çıktı dikkate alınmadan yapılır ve olası çalışma zamanı hatalarını kontrol eder.

Sonunda hatasız istenen sonucu elde etmek için kodu karmaşıklaştırmak ne kadar gerekli?! Hafta sonları ve tatiller de var, pazar başka bir zaman açılıyor. Tavsiye ve örnekler için teşekkürler, yeni bir şey öğrendim, kesinlikle bir yerlerde işe yarayacak, ancak şimdiye kadar seçeneğimin en basit ve en güvenilir olduğunu görüyorum.

 
Nauris Zukas :

Sırf bu yüzden tahmin etmek zor:

Sonunda hatasız istenen sonucu elde etmek için kodu karmaşıklaştırmak ne kadar gerekli?! Hafta sonları ve tatiller de var, pazar başka bir zaman açılıyor. Tavsiye ve örnekler için teşekkürler, yeni bir şey öğrendim, kesinlikle bir yerlerde işe yarayacak, ancak şimdiye kadar seçeneğimin en basit ve en güvenilir olduğunu görüyorum.

Neden? Ve bu seçeneğin yaşam hakkı vardır. Ve hatta beni ilgilendirdi. Bazı düzeltmelerle, belirtilen zaman ve periyottaki çubuk sayısını döndüren bir fonksiyon elde ettik.

 int findBar( string strTime, ENUM_TIMEFRAMES period = PERIOD_CURRENT )
 {
  MqlDateTime mqlTime, mqlFindTime;
  TimeToStruct ( StringToTime (strTime), mqlFindTime);
  datetime arrTime[];
  int copy = PeriodSeconds ( PERIOD_D1 )/ PeriodSeconds (period);
  CopyTime ( _Symbol , period, 0 , copy, arrTime);
  ArraySetAsSeries (arrTime, true );
    for ( int i = 0 ; i < copy; i++)
    {
      TimeToStruct (arrTime[i], mqlTime);
      if (mqlTime.hour == mqlFindTime.hour && mqlTime.min <= mqlFindTime.min)
      return (i);
    }
   return (- 1 );
} /********************************************************************/

.

 
Alexey Viktorov :

Neden? Ve bu seçeneğin yaşam hakkı var. Ve hatta beni ilgilendirdi. Bazı düzeltmelerle, belirtilen zaman ve periyottaki çubuk sayısını döndüren bir fonksiyon elde ettik.

.

Çok teşekkürler!
"Hafıza hücresinden" bahsettiniz, bilgim hala bu konuda sınırlı. Anladığım kadarıyla bu, uzman testlerinin hızını etkiler mi? Bir şekilde ölçülüyor mu yoksa sadece test hızıyla mı belirleniyor?

 
Nauris Zukas :

Çok teşekkürler!
"Hafıza hücresinden" bahsettiniz, bilgim hala bu konuda sınırlı. Anladığım kadarıyla bu, uzman testlerinin hızını etkiler mi? Bir şekilde ölçülüyor mu yoksa sadece test hızıyla mı belirleniyor?

Kendi bellek çipimden bahsediyordum. :)))

Kod yazarken kolayca iki kez kontrol edilebilecek, açıklığa kavuşturulabilecek, olması gerektiği gibi yapılabilecek ve tekrar unutulabilecek önemsiz şeyleri hatırlamıyorum.