Alexey Kozitsyn : Hangi GUI'den bahsettiğinizi bilmiyorum ama test penceresinin seçenekler sekmesinde başlangıç ve bitiş alanlarını ayarlayabilirsiniz . Ve test cihazı, parametre değerlerinin sayısını doğru bir şekilde belirler.
// Возвращает true только в случае, если выбран (в тестере) режим по реальным тикам// Перед использованием должен быть хотя бы один OnTick вызван тестеромbool IsRealTicks( void )
{
MqlTick Tick;
return ( SymbolInfoTick ( _Symbol , Tick) && (Tick.volume || !(Tick.flags & TICK_FLAG_LAST )));
}
kullanım örneği
// Советник будет тестироваться только в режиме по реальным тикамvoidOnTick ()
{
staticbool IsRemove = true ;
if (IsRemove)
{
IsRemove = MQLInfoInteger ( MQL_TESTER ) && !IsRealTicks();
if (IsRemove)
{
Print ( "Real ticks mode is needed!" );
ExpertRemove ();
return ;
}
}
//........
}
OnInit'te nasıl yapılır (OnTick olmadan) - Bilmiyorum.
Yazdırma seçeneklerinde (veya yorumlarda) ifadeler kullanmayın. Virgülle ayrılmış parametreleri belirtin. O zaman tam olarak tüm dize dönüşümleri kapsanacak
Bu iki satırın Optimizasyon modunda nasıl farklılaştığını bir örnekle açıklar mısınız?
Print (( string )i + ( string )d);
Print (i, d);
Destek Ekibi2017.11.24 08:44
İlk durumda optimize ederken, yazdırmadan önce bir dize ifadesi hesaplanacaktır. Baskının kendisi çağrılacak, ancak çalışmayacak
İkinci durumda, baskı çağrılacak, ancak çalışmayacak. Ve i + d dizgisine dönüştürme çalışmayacak
Basit test ile birinci ve ikinci çağrıların sonuçları zaman ve çıktı açısından aynı olacaktır.
Onlar. Optimizasyon modları için Print'i virgülle kullanmak, onun için bir dize olarak bir giriş parametresi oluşturmaktan çok daha ucuzdur.
Öte yandan, Print'in içinde her şeyi tek bir satır olarak oluşturursanız, Optimizasyon modunda oluşumunu kesmek kolaydır.
#define Print (A)
ancak virgül kullanılırsa bu yapı çalışmayacaktır. Üstelik böyle bir yapı Optimizasyon modunda da bunu kapatacaktır.
Print (SendOrder()); // SendOrder будет проигнорирован при #define Print(A)
Bu nedenle (ve başka nedenlerle) Print içinde gerçekten önemli işlevleri çağırmamak daha iyidir. Sonuç olarak, Optimizasyon modunda performansa önem veriyorsanız, yine de böyle bir şey yapmanız gerekir.
Onlar. Optimizasyon modları için Print'i virgülle kullanmak, onun için bir dize olarak bir giriş parametresi oluşturmaktan çok daha ucuzdur.
Öte yandan, Print'in içinde her şeyi tek bir satır olarak oluşturursanız, Optimizasyon modunda oluşumunu şu şekilde kesmek kolaydır:
ancak virgül kullanılırsa bu yapı çalışmayacaktır. Üstelik böyle bir yapı Optimizasyon modunda da bunu kapatacaktır.
Bu nedenle (ve başka nedenlerle) Print içinde gerçekten önemli işlevleri çağırmamak daha iyidir. Sonuç olarak, Optimizasyon modunda performansa önem veriyorsanız, yine de böyle bir şey yapmanız gerekir.
Üzgünüm, belki anlamıyorum? Neden baskıda önemli işlevleri çağıralım?
Artık geçmişte 1000'den fazla işlem olduğunda ve örneğin geçmiş işleme işlevini çağırırken bir sorunla karşılaştım, örneğin geçmiş karını hesaplayın. + cari işlemlerin karını ekleyin - grafikteki bilgiler yavaşlamaya başlar ve terminal donar. Onlar. alıntılar gecikmeli olarak gelir.
Hangi GUI'den bahsettiğinizi bilmiyorum ama test penceresinin seçenekler sekmesinde başlangıç ve bitiş alanlarını ayarlayabilirsiniz . Ve test cihazı, parametre değerlerinin sayısını doğru bir şekilde belirler.
Saha adımı.
Saha adımı.
Saha adımı.
Bunun nedeni muhtemelen, numaralandırma alanlarına herhangi bir adımın katı olmayan kendi değerlerinin verilebilmesidir.
Bunun nedeni muhtemelen, numaralandırma alanlarına herhangi bir adımın katı olmayan kendi değerlerinin verilebiliyor olmasıdır.
Evet, bu bir bug değil, bu yüzden bu başlıkta başladı. Ve Optimizasyon adımı, gerçekten gerekliyse, enum için MQL aracılığıyla ayarlanır.
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Kitaplıklar: TesterBenchmark
fxsaber , 2017.11.22 16:54
MT5 seçeneklerinin her birine yalnızca bir satır ekliyoruz
Tam teşekküllü hızlandırılmış %67, el sanatları - %108!
Ama mesele bu değil. Danışmanları hızlandırmak için bir satır çıktı! Ve bu, Yorumun herhangi bir rol oynamadığı Optimize Edici'dedir.
kullanım örneği
OnInit'te nasıl yapılır (OnTick olmadan) - Bilmiyorum.Bahsedilen konuyla ilgili bir diyalog
Bu iki satırın Optimizasyon modunda nasıl farklılaştığını bir örnekle açıklar mısınız?
İlk durumda optimize ederken, yazdırmadan önce bir dize ifadesi hesaplanacaktır. Baskının kendisi çağrılacak, ancak çalışmayacak
İkinci durumda, baskı çağrılacak, ancak çalışmayacak. Ve i + d dizgisine dönüştürme çalışmayacak
Basit test ile birinci ve ikinci çağrıların sonuçları zaman ve çıktı açısından aynı olacaktır.
Onlar. Optimizasyon modları için Print'i virgülle kullanmak, onun için bir dize olarak bir giriş parametresi oluşturmaktan çok daha ucuzdur.
Öte yandan, Print'in içinde her şeyi tek bir satır olarak oluşturursanız, Optimizasyon modunda oluşumunu kesmek kolaydır.
ancak virgül kullanılırsa bu yapı çalışmayacaktır. Üstelik böyle bir yapı Optimizasyon modunda da bunu kapatacaktır.
Bu nedenle (ve başka nedenlerle) Print içinde gerçekten önemli işlevleri çağırmamak daha iyidir. Sonuç olarak, Optimizasyon modunda performansa önem veriyorsanız, yine de böyle bir şey yapmanız gerekir.
Bahsedilen konuyla ilgili bir diyalog
Onlar. Optimizasyon modları için Print'i virgülle kullanmak, onun için bir dize olarak bir giriş parametresi oluşturmaktan çok daha ucuzdur.
Öte yandan, Print'in içinde her şeyi tek bir satır olarak oluşturursanız, Optimizasyon modunda oluşumunu şu şekilde kesmek kolaydır:
ancak virgül kullanılırsa bu yapı çalışmayacaktır. Üstelik böyle bir yapı Optimizasyon modunda da bunu kapatacaktır.
Bu nedenle (ve başka nedenlerle) Print içinde gerçekten önemli işlevleri çağırmamak daha iyidir. Sonuç olarak, Optimizasyon modunda performansa önem veriyorsanız, yine de böyle bir şey yapmanız gerekir.
Üzgünüm, belki anlamıyorum? Neden baskıda önemli işlevler çağrılır?
Yasak değildir.
Yasak değildir.
Kabul ediyorum.
sadece amacın ne olduğunu bilmek istedim
Artık geçmişte 1000'den fazla işlem olduğunda ve örneğin geçmiş işleme işlevini çağırırken bir sorunla karşılaştım, örneğin geçmiş karını hesaplayın. + cari işlemlerin karını ekleyin - grafikteki bilgiler yavaşlamaya başlar ve terminal donar. Onlar. alıntılar gecikmeli olarak gelir.