MetaTrader 4 Build 529 Beta, Yeni Derleyici ile Yayınlandı - sayfa 125

 
stringo :

Giriş değişkenlerini değiştiremezsiniz!

extern yerine input anahtar sözcüğünü kullanın, derleyici bunu yapmanıza izin vermez.

Eski dörtlü işlevselliği korumak için neler yapılabileceğini düşüneceğiz

PS, bunu gündeme getirdiğiniz için çok teşekkürler


Yani onları değiştirmek için bir amaç yoktu!

Sadece daha fazla hesaplama için kullanılırlar. Daha fazla yok!

Prensipte açık, bu sorunu ek bir değişken ekleyerek çözdük.

 extern int TakeProfit_= 10 ;
int TakeProfit;
......  
   int dig = ( int )MarketInfo( Symbol (), MODE_DIGITS);
   if (dig == 5 || dig == 3 )
   {
      TakeProfit  = TakeProfit_* 10 ;
.....
 
Night63 :


Yani onları değiştirmek için bir amaç yoktu!

Sadece daha fazla hesaplama için kullanılırlar. Daha fazla yok!

Prensipte açık, bu sorunu ek bir değişken ekleyerek çözdük.


Yani öyle... AMA, neden her tikte değişmez bir sabiti kontrol etmekle uğraşsın? init() içinde bir kez tanımlamanız yeterlidir.
 
stringo :

Giriş değişkenlerini değiştiremezsiniz!

Dış değişkenlerin değerini (bazı değişkenler için) varsayılan değer olarak kullanıyorum ve aynı parametre için verilerin geri kalanını ini dosyasından okuyorum.

Uzman Danışmanlar, kendi girdi parametreleri olan çeşitli stratejilerle aynı anda çalışır. Misal:

 extern int TF = 15 ;
int gia_TF[ 5 ];
void start()
{
     for ( int li_TF = 0 ; li_TF < ArraySize (gia_TF); li_TF++)
    {
        TF = gia_TF[li_TF];
    }
}

Evet - sorunu ek değişkenler ekleyerek çözüyoruz, AMA neden?! Belirtin, yeni MT bu tür işlevlerden mahrum kalacak mı?

 
TarasBY :
Dış değişkenlerin değerini (bazı değişkenler için) varsayılan değer olarak kullanıyorum ve aynı parametre için verilerin geri kalanını ini dosyasından okuyorum.

Uzman Danışmanlar, kendi girdi parametreleri olan çeşitli stratejilerle aynı anda çalışır. Misal:

Evet - sorunu ek değişkenler ekleyerek çözüyoruz, AMA neden?! Belirtin, yeni MT bu tür işlevlerden mahrum kalacak mı?

Benim söylediğim de bu... :-)

Gereksiz. Bu, harici değişkenler olarak harici değişkenler içeren bir içermenin gerekli olmadığı anlamına gelir. extern'i kaldırabilirsiniz. Farkı bile fark etmeyeceksin. Her neyse, INI dosyasından başlatıyorsunuz.

 
TarasBY :
Dış değişkenlerin değerini (bazı değişkenler için) varsayılan değer olarak kullanıyorum ve aynı parametre için verilerin geri kalanını ini dosyasından okuyorum.

Uzman Danışmanlar, kendi girdi parametreleri olan çeşitli stratejilerle aynı anda çalışır. Misal:

Evet - sorunu ek değişkenler ekleyerek çözüyoruz, AMA neden?! Belirtin, yeni MT bu tür işlevlerden mahrum kalacak mı?


Hayır, mahrum bırakılmayacak.

Her şey eski dörtlü gibi olacak. Uzun zaman önce yazılmış (hatta yeni bir derleyici ile yeniden derlenmiş) kodlar eskisi gibi çalışacaktır.

 
Zhunko :

Benim söylediğim de bu... :-)

Gereksiz. Bu, harici değişkenler olarak harici değişkenler içeren bir içermenin gerekli olmadığı anlamına gelir. harici kaldırabilirsiniz. Farkı bile fark etmeyeceksin. Her neyse, INI dosyasından başlatıyorsunuz.

Vadim! Evrensellik ve çok değişkenlik için savaşçımız kim?! :)
 
stringo :

Hayır, mahrum bırakılmayacak.

Her şey eski dörtlü gibi olacak. Uzun zaman önce yazılmış (hatta yeni bir derleyici ile yeniden derlenmiş) kodlar eskisi gibi çalışacaktır.

Teşekkür ederim. TAMAM.
 
avtomat :

Yani öyle... AMA, neden her tikte değişmez bir sabiti kontrol etmekle uğraşsın? init() içinde bir kez tanımlamanız yeterlidir.


Haklısın, başlangıçta öyleydi, daha sorunu çözme aşamasında, her şeyi denediler.

Şimdi init'e döndü, kusuru belirttiğiniz için teşekkürler!

 
stringo :

Kodunuzun fiziksel anlamını açıklayabilir misiniz?

Bu Expert Advisor'ın üzerinde çalıştığı grafiği açıksa sembol zaten seçilidir.

Halihazırda seçilmiş bir karakteri yeniden seçemezsiniz. Grafiği açık olan bir sembolü gizleyemezsiniz.


fiziksel anlamı, danışmanın giriş parametrelerinde adı dize olarak girilen sembolün ticaret için uygun olup olmadığını kontrol etmektir. MT5'teki aynı kod çalışır.

Verdiğim kod sadece bir örnek. Biraz farklılık var ama anlam değişmiyor.

PS Test cihazındaki hata 138 ne durumda?

kod:

 void OnTick ()
  {
   if ( OrdersTotal ()== 0 )
     {
       string SYMBOL= Symbol ();
       int digits=( int ) SymbolInfoInteger (SYMBOL, SYMBOL_DIGITS );
       MqlTick lasttick={ 0 };
       if (! SymbolInfoTick (SYMBOL,lasttick))
         return ;
       double ask=lasttick.ask;
       double bid=lasttick.bid;

       OrderSend (SYMBOL,OP_BUY, 0.1 , NormalizeDouble (ask,digits), 1000 , 0 , 0 , "Test" , 0 , 0 ,CLR_NONE);
     }
  }

Sonuç:

 
Grafik nesneleri olan bazı küçük şeyler.

Bu sefer OBJ_EDIT .

1) veri girmek mümkün değil, OBJ_EDIT içinde fare ile tıklandığında hiçbir şey olmuyor, alandaki veriler seçilmiyor (önceden "ENTER" tuşuna basmak dışında alandan çıkmak imkansızdı, şimdi imkansız giriş);

2) OBJPROP_ANCHOR çalışmıyor;

3) OBJ_EDIT seçildiğinde, nesneyi hareket ettirme noktası sol üst köşede görünür, ancak koordinatların sayıldığı tablonun hangi köşesinden (OBJPROP_CORNER) bağlı olarak, bazıları çok küçük olsa da, ofset ile görünür.

Çizim ve hareketli grafiklerle ilgili diğer problemler. nesneler artık görünmez. Düzeltmeler için teşekkürler.