Kütüphaneler: MultiTester - sayfa 9

 
fxsaber:

Şimdi Test Cihazını otomatikleştirmek için tam özgürlük.

Gerçek uygulama örneklerinden biri (her şey otomatik olarak yapılır)

  1. Tüm semboller alınır ve her sembol için aşağıdaki adımlar gerçekleştirilir.
  2. Optimizasyonu başlatıyorum.
  3. En iyi geçişin sonunda veriler alınır ve bunlardan optimizasyon için çeşitli görevler oluşturulur (giriş parametrelerinin ayar aralıkları).
  4. Madde 3'teki tüm optimizasyonlar gerçekleştirilir.
  5. En iyi geçişler 4. maddedeki tüm optimizasyonlardan alınır ve portföy ticareti için setler olarak kaydedilir.


Çok güçlü bir piyasa tarayıcısı ve TS ayarlayıcısı olduğu ortaya çıktı. Bu tür manipülasyonlar için TC kaynakları gerekli değildir.

 
// Test Cihazına bir Set dosyası yükleme örneği.
#property script_show_inputs

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/tr/code/26132

input string inFileName = "SetFile.set"; // Dosya ayarla

string FileToString( const string FileName )
{
  ushort Buffer[];
  
  return(FileLoad(FileName, Buffer) ? ShortArrayToString(Buffer) : NULL);
}

void OnStart()
{  
  MTTESTER::SetSettings("[TesterInputs]\n" + FileToString(inFileName));
}
Test Cihazının ini dosyalarında da benzer şekilde.
 
Teşekkür ederim.
 
Kütüphane MT5 build2209+ için güncellenmiştir.
 
fxsaber:

Çok güçlü bir piyasa tarayıcısı ve TS ayarlayıcısı olduğu ortaya çıktı.

#property script_show_inputs

#include <fxsaber\MultiTester\MultiTester.mqh> // https://www.mql5.com/tr/code/26132
#include <fxsaber\MultiTester\Task.mqh>

input bool OnlyCustomSymbols = true; // Yalnızca özel karakterler
input bool AllSymbols = false;       // Tüm karakterler veya akım

void Add( const string SymbName )
{
  TesterSettings.Add(NULL, SymbName, 0, 0, 0, TASK::InitBase, TASK::DeinitBase);

  for (int i = 0; i < ::inAmount; i++)
    TesterSettings.Add(NULL, NULL, 0, 0, 0, TASK::InitSub, TASK::DeinitSub);
}

// Bu fonksiyon görev listesinin oluşturulmasından sorumludur.
void SetTesterSettings()
{
  if (AllSymbols)
    // Market Watch'tan tüm sembolleri arayın.
    for (int i = SymbolsTotal(true) - 1; i >= 0; i--)
    {
      const string Name = SymbolName(i, true);

      if (!OnlyCustomSymbols || SymbolInfoInteger(Name, SYMBOL_CUSTOM))
        Add(Name);
    }
  else if (!OnlyCustomSymbols || SymbolInfoInteger(_Symbol, SYMBOL_CUSTOM))
    Add(_Symbol);
}


Uzman Danışman aşağıdakilere sahip olmalıdır

sinput int inMinTrades = 500; // Minimum işlem sayısı (pozisyon).
sinput int inMaxTrades = 90000; // Maksimum işlem (pozisyon) sayısı.

double OnTester()
{
  return(((TesterStatistics(STAT_TRADES) >= inMinTrades) && (TesterStatistics(STAT_TRADES) <= inMaxTrades)) ? TesterStatistics(STAT_PROFIT) : 0);
}
 
Birkaç tuzağı atlattım. Güncellendi.
 

Önceki sürümler hakkında bilgim yok. Ancak en son sürüm aynı enstrüman için bir testi birkaç kez çalıştırabilir.

Günlükte Done görünür, ardından boş görünür (Start görünmez) ve terminal aynı anda yeni bir geçiş başlatmıştır. Öyle görünüyor ki eğer (IsRun = (Init = TesterSettings.Init(Pos)) && TesterSettings.Run(Pos)) false döndürür, çünkü TesterSettings.Run(Pos) false döndürmüştür. Ve bir sonraki zamanlayıcı geçişinde if (MTTESTER::IsReady()) false döndürür, bu da bekleme döngüsüne neden olur. TesterSettings.Run(Pos)) kendisi false döndürür, zaman aşımı nedeniyle önemsiz gibi görünüyor, yani sadece beklemiyor ve çıkıyor.

 

traveller00:

TesterSettings.Run(Pos)) false döndürmesi zaman aşımı nedeniyle önemsiz gibi görünüyor, yani beklemiyor ve çıkıyor.

Eğer öyleyse, bu sayıyı artırmayı deneyin

  static bool ClickStart( const bool Check = true, const int Attempts = 5 )

Başlat düğmesinin basıldıktan sonra uzun süre Durdur düğmesine dönüşmediği bir durumla hiç karşılaşmadım.


Example3'ü yüz karakter için çalıştırdım ve her şey yolunda gitti.

 
Evet, ben de kendim için öyle yaptım, 50'ye çıkardım. Ancak başka birinin benzer bir sorun yaşaması veya genel sürümde değişiklik yapmak istemesi ihtimaline karşı.
 
traveller00:
Evet, ben de kendim için öyle yaptım, 50'ye çıkardım. Ancak başka birinin benzer bir sorun yaşaması veya genel sürümde ince ayar yapmak istemesi ihtimaline karşı.

Düğmenin durumunu değiştirmek için yapılan deneme sayısını günlüğe kaydedin. İlginç sonuçlar.


ZY Belki de bu hata hala etkilidir.