Hatalar, hatalar, sorular - sayfa 367

 
Yedelkin :
Sorun büyük ihtimalle başka bir şeydir. OnInit() içinde tam olarak aynı dizi bildirimine sahibim ve iyi çalıştı ve çalışıyor. ArrSybols dizisinin adındaki Latince m harfini kaçırdınız. Belki de bu programcının sorunudur?

Eksik olabilir, ancak buna bağlı bir şey var mı?

Ve ana dilimde yazarsam (ki bu yasak değil, anladığım kadarıyla), tüm terminal düşmeli mi?

Kod tam olarak böyle bir dizi bildirimi olmadan çalışır, sadece boyutu belirtseniz bile her şey çalışır.

 //Вот так работает
string ArrSybols[ 10 ];

Orijinal dizi bildirimi

 //List of symbols for trade on the Championship 2010
string ArrSymbolsChampionship2010[ 10 ] = { "EURUSD" , "GBPUSD" , "USDJPY" , "USDCHF" , "USDCAD" ,
                                        "AUDUSD" , "EURJPY" , "EURCHF" , "GBPJPY" , "GBPCHF" };
 

Soru hala geçerli.

OBJ_CHART'a ayrı bir pencerede bir gösterge eklemeyi başardım, ancak gösterge penceresi yeniden boyutlandırıldığında pek güzel olmuyor çünkü OBJ_CHART'ın yüksekliği 500 ise, gösterge penceresinin yüksekliği maksimum 493'e ayarlanmıştır. Sonuç olarak, çirkin bir üst kalır. Ondan nasıl kurtulurum?

kod:

   if ( ObjectFind ( 0 , "MW_chart" )!= 0 )
     {
       ObjectCreate ( 0 , "MW_chart" , OBJ_CHART , 0 ,time[ 0 ],close[ 0 ]);
       ObjectSetString ( 0 , "MW_chart" , OBJPROP_SYMBOL , _Symbol );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_PERIOD , _Period );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_CORNER , CORNER_LEFT_UPPER );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_XSIZE , 1000 );

       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_DATE_SCALE , false );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_PRICE_SCALE , false );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_SELECTABLE , 1 );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_CHART_SCALE , 2 );
       ObjectSetInteger ( 0 , "MW_chart" , OBJPROP_YSIZE , 500 );
     }
   int h= iCCI ( Symbol (), Period (), 14 , PRICE_TYPICAL );
   long id= ObjectGetInteger ( 0 , "MW_chart" , OBJPROP_CHART_ID );
   ChartIndicatorAdd (id, 1 ,h);
   ChartSetInteger (id, CHART_HEIGHT_IN_PIXELS , 1 , 493 );
 
Interesting :

Eksik olabilir, ancak buna bağlı bir şey var mı?

Tabii ki bağlıdır. Size açıklama yapmak bana düşmez :) Bir dizi tek isimle bildirilmişse ve bu dizinin elemanlarına erişim farklı bir dizi adıyla gidiyorsa... :)

Her şey dizinin ilk manuel başlatılması olmadan çalışıyorsa, anladığınız gibi koda bakmanız gerekir. Sonuçta, bir dize dizisinin açık bir şekilde başlatılmasının olmaması, istemci terminalinin bu diziyi kendi başına başlatmasını engellemez.

Tekrar ediyorum: Böyle bir çizgi üzerinde çalıştım ve onun "tamamen" üzerinde çalıştım.

 
Yedelkin :

Tabii ki bağlıdır. Size açıklama yapmak bana düşmez :) Bir dizi tek isimle bildirilmişse ve bu dizinin elemanlarına erişim farklı bir dizi adıyla gidiyorsa... :)

Her şey dizinin ilk manuel başlatılması olmadan çalışıyorsa, anladığınız gibi koda bakmanız gerekir. Sonuçta, bir dize dizisinin açık bir şekilde başlatılmasının olmaması, istemci terminalinin bu diziyi kendi başına başlatmasını engellemez.

Tekrar ediyorum: Böyle bir çizgi üzerinde çalıştım ve onun "tamamen" üzerinde çalıştım.

Hayır, hayır, sorun adında değil, dizinin bildirildiğinde bir numaralandırma ile doldurulması gerçeğinde.

Bu, dizeler dışında normal olarak tüm türlerle çalışır. Dizelerle, herhangi bir programı gerçekten bozar (uzman veya komut dosyası önemli değil).

Bu açık bir hatadır , servis masasına yazın .

Bu nasıl çalışır:

 // string a[2]={"a","b"};
long    b[ 2 ]={ 2 , 3 };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   Print ( "Работает" );   
  }
//+------------------------------------------------------------------+

ancak dizi dizesi bildirimini kaldırırsanız, çalışmaz.

Общайтесь с разработчиками через Сервисдеск!
Общайтесь с разработчиками через Сервисдеск!
  • www.mql5.com
Ваше сообщение сразу станет доступно нашим отделам тестирования, технической поддержки и разработчикам торговой платформы.
 
Renat :
Ayarlarda penceredeki maksimum çubuk sayısını kontrol edin
100000'den 1000000'e değiştirildi. Yardımcı oldu, ancak yalnızca terminali yeniden başlattıktan sonra (yardım, Tamam'ı tıklattıktan sonra değişikliklerin etkisi hakkında bilgi verir).
 

Renat, yine çılgın şekerleme, bir hata bulduğuna emin misin?


 
Trafikle ilgili sorun çözüldü, ancak gerçek şu ki, sunucu bileşenlerini henüz liveupdate'de yayınlamadık. Şimdilik, istemci terminal güncellemeleri yayınlandı ve sunucular bir sonraki güncellemede olacak. Henüz test edilmediler.
 
Renat :
Trafikle ilgili sorun çözüldü, ancak gerçek şu ki, sunucu bileşenlerini henüz liveupdate'de yayınlamadık. Şimdilik, istemci terminal güncellemeleri yayınlandı ve sunucular bir sonraki güncellemede olacak. Henüz test edilmediler.
Açık. Cevap için teşekkürler. Ben de kendi adıma sizi bilgilendirmeye devam edeceğim.
 

Son yapı (430), bir İleri dönem ve Özel Maks ile test yaparken kilitleniyor (ileri teste geçiş anında görünüyor). İlk başta Uzman Danışmanıma karşı günah işledim, ardından aşağıdaki kodu kontrol ettim:

 input int a1;
input int a2;
input int a3;
int OnInit (){ return ( 0 );}
void OnDeinit ( const int reason){}
void OnTick (){}
double OnTester() {
   return ( rand ());
}

1'den 1000'e kadar optimizasyon için parametreleri ayarlayın, tüm işaretler, USDCAD, 01/01/2011'den bugüne (herhangi bir ileri dönem) M4. asılı. Devre dışı bırakılan uzak aracılar - yeniden başlatıldı - terminal de askıda kaldı. İleri dönem kaldırıldı - işe yarıyor. Custom Max'in suçlu olup olmadığı - kontrol edilmedi. Bu yapıdan önce - her şey çalıştı.

 

Bu giriş ne anlama geliyor?

2011.04.17 15:21:22 Test aracı test aracı başarısız oldu