Belirli Bir Gösterge için Benzersiz Kimlik Oluşturucu - sayfa 4

 
gchrmt4 :
Hangi MT4 sürümünü kullandığınızı bilmiyorum, ancak bilgisayarımdaki v616'da WindowFind(), OnInit() sırasında -1 döndürür. Belgeler her zaman "Init() işlevi çalıştığında özel gösterge kendini ararsa, WindowsFind() -1 döndürür" dedi.


Benim versiyonum 610.

aman tanrım.. her güncelleme daha kötü ve daha kötü görünüyor.. iyiye gitmiyor.

FFcalendar göstergem vardı.

604 sürümüyle tamir etmiştim ve iyi çalışıyordu.

610'a güncelleyip tekrar derlediğimde tekrar hata verdi..

bu yüzden pes ettim.. ve 509 sürümüyle tekrar derledim... hahaha (çünkü 604 sürümüm gitti)


ayy özür dilerim.. WindowsFind retun -1 konusunda haklısınız.

sadece o indi'yi taktıktan sonra gösteriyor.. o zaman TF'yi değiştiriyorum .. ama sonuç hala benzersiz

etiket

 
Bu konu ile ilgisi olmayan yorumlar " Fib seviyeleri " bölümüne taşınmıştır.
 

Bu gönderinin ÇOK eski olduğunu biliyorum, ancak benzersiz örnek adı sorununu şu şekilde gerçekleştiriyorum. Genel terminal değişken depolaması ile birlikte GetTickCount() kombinasyonunu kullanıyorum. Bu aynı zamanda örnek yüklerinde de çalışır.

 const string _uniqueSeedVarName = "MyVar" ;
string GetUniqueInstanceName( const string baseName)
{
   uint seed = 1 ;

   // See if our last stored unique seed value exists
   if ( GlobalVariableCheck (_uniqueSeedVarName))
   {
       // It does, so get it
      seed = ( uint ) GlobalVariableGet (_uniqueSeedVarName);

       // Do some boundary checking and ensure the user didn't muck with the value
       // If we're okay, increment the seed by one      
       if (seed > 0 && seed < UINT_MAX )
         seed = seed + 1 ;
       else
         // The seed has been corrupted by the user or is too large; reset to current tick count
         seed = GetTickCount ();   
   }
   else
       // First time in; initialize the seed to the current tick count
      seed = GetTickCount ();

   // Store the value in global terminal variables
   // The user DOES have access to this value, so the handling above should account for any changes the user might make
   GlobalVariableSet (_uniqueSeedVarName, seed);

   // Initialize the random generator
   MathSrand (seed);
  
   // Create a unique instance name in the format of "[BaseName][Random1][Random2]"
   return StringFormat ( "%s%s%s" , baseName, IntegerToString ( MathRand ()), IntegerToString ( MathRand ()));
}


Ve sonra onu OnInit() içinde aşağıdaki gibi çağırın:

   Print ( StringFormat ( "Indicator Id: %s" , GetUniqueInstanceName( "Sandbox" )));


Şimdiye kadar, düzgün çalışıyor gibi görünüyor.

 

Çok teşekkür ederim. Bu işlev benim için gerçekten büyük bir sorunu çözdü.


cdxadmin :

Bu gönderinin ÇOK eski olduğunu biliyorum, ancak benzersiz örnek adı sorununu şu şekilde gerçekleştiriyorum. Genel terminal değişken depolaması ile birlikte GetTickCount() kombinasyonunu kullanıyorum. Bu aynı zamanda örnek yüklerinde de çalışır.


Ve sonra onu OnInit() içinde aşağıdaki gibi çağırın:


Şimdiye kadar, düzgün çalışıyor gibi görünüyor.