FinEngineer : 2012.12.22 11:40:32Pair_delta_RSI (EURGBP,M1)dizi 'Pair_delta_RSI.mq5' içinde aralık dışında (92,37)
böyle bir hatanın da ortaya çıktığı ortaya çıktı ... yani. iki hata...
Ek olarak, iki hatadan endişe ediyorsunuz: "yetersiz hesaplanmış veri" ve "aralık dışı dizi )". Ama nedense ikinci hata hakkında hiçbir şey yazmamışsınız (92 satır numaralı kod örneği vermemişsiniz), varlığına birkaç kez odaklanmışsınız.
Evet, orada sizin için iyi çalıştı, bu "veri eksikliğinden sorumlu olan kod parçası". Ve ilk kene geldiğinde, RSI verilerinin henüz terminal tarafından hesaplanmadığını doğru bir şekilde bildirdi. Hata mesajları almaktan hoşlanmıyorsanız, yukarıda belirtildiği gibi yapmayı deneyin, yani: sadece OnCalculate()'de değil, aynı zamanda OnInit()'te de hesaplanmış verilerin varlığını kontrol edin. Başka bir deyişle, seçtiğiniz teknik göstergeler için verilerin hesaplanması için OnInit() içinde beklemeye çalışın (son döngü boyunca bekleyin) ve ardından göstergeler için veriler olduğunda OnCalculate() içindeki onay işaretlerinin işlenmesine devam edin. hesaplanacağını garanti eder.
Ek. Sonunda, doğrulama kodunun bir kısmının kaldırılması, hesaplanan gösterge verilerinin miktarını artırmaya hiç katkıda bulunmaz :)
Bu kontrolü OnInit işlevine ekledim, ancak bu işlevde "rates_total"ın ne olduğunu bilmiyoruz... bir hata oluşuyor... 'rates_total' - bildirilmemiş tanımlayıcı... ne yapmalı?
Yedelkin : Ek olarak, iki hatadan endişe ediyorsunuz: "yetersiz hesaplanmış veri" ve "aralık dışı dizi )". Ama nedense ikinci hata hakkında hiçbir şey yazmamışsınız (92 satır numaralı kod örneği vermemişsiniz), varlığına birkaç kez odaklanmışsınız.
int limit;
if (prev_calculated== 0 )
limit= 0 ;
else limit=prev_calculated- 1 ;
//считаем индикатор дельта рсиfor ( int i=limit;i<rates_total; i++)
DeltaRSI_Buffer[i]=RSI1_Buffer[i]-RSI2_Buffer[i];
return (rates_total);
bu alanda bir yerde 92. satır ... işte bir kod parçası ... bir yerlerde bir hata var ... ortaya çıkıyor)
FinEngineer : Bu kontrolü OnInit işlevine ekledim, ancak bu işlevde "rates_total"ın ne olduğunu bilmiyoruz... bir hata oluşuyor... 'rates_total' - bildirilmemiş tanımlayıcı... ne yapmalı?
Daha önce önerildiği gibi BarsCalculated() işlevinin açıklamasındaki örneği anladınız mı? Rate_total yok
Herkese merhaba ... herhangi biri bana aşağıdaki kodun mql5'te nasıl görüneceğini söyleyebilir mi: için (int i=3; i<Barlar; i++) { Yukarı=iFractals(NULL, 0, MODE_UPPER, i); (Yukarı>0) kırılırsa; }
i999i : Herkese merhaba ... herhangi biri bana aşağıdaki kodun mql5'te nasıl görüneceğini söyleyebilir mi: için (int i=3; i<Barlar; i++) { Yukarı=iFractals(NULL, 0, MODE_UPPER, i); (Yukarı>0) kırılırsa; }
Strateji test cihazı hakkında soru: Maksimum karlı işlem yüzdesine sahip bir dizi parametre seçmeniz gerekiyor - nasıl yapılır? "Denge + min DD" optimizasyon kriteri aşağı yukarı uygun gibi görünüyor, ancak çarpan olarak kâr diğer her şeyi tıkar..
f2011 : Strateji test cihazı hakkında soru: Maksimum karlı işlem yüzdesine sahip bir dizi parametre seçmeniz gerekiyor - nasıl yapılır? "Denge + min DD" optimizasyon kriteri aşağı yukarı uygun gibi görünüyor, ancak çarpan olarak kâr diğer her şeyi tıkar..
Ve işte prib işlemlerinin bakiyesi ve yüzdesi?
Google'da "Bir site için optimizasyon kriterinizi nasıl oluşturabilirsiniz:mql5.com ticaret robotu" başlıklı bir makale vardı.
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.
Kodu doğru yapıştırın .
Evet, orada sizin için iyi çalıştı, bu "veri eksikliğinden sorumlu olan kod parçası". Ve ilk kene geldiğinde, RSI verilerinin henüz terminal tarafından hesaplanmadığını doğru bir şekilde bildirdi. Hata mesajları almaktan hoşlanmıyorsanız, yukarıda belirtildiği gibi yapmayı deneyin, yani: sadece OnCalculate()'de değil, aynı zamanda OnInit()'te de hesaplanmış verilerin varlığını kontrol edin. Başka bir deyişle, seçtiğiniz teknik göstergeler için verilerin hesaplanması için OnInit() içinde beklemeye çalışın (son döngü boyunca bekleyin) ve ardından göstergeler için veriler olduğunda OnCalculate() içindeki onay işaretlerinin işlenmesine devam edin. hesaplanacağını garanti eder.
Ek. Sonunda, doğrulama kodunun bir kısmının kaldırılması, hesaplanan gösterge verilerinin miktarını artırmaya hiç katkıda bulunmaz :)
Ek olarak, iki hatadan endişe ediyorsunuz: "yetersiz hesaplanmış veri" ve "aralık dışı dizi )". Ama nedense ikinci hata hakkında hiçbir şey yazmamışsınız (92 satır numaralı kod örneği vermemişsiniz), varlığına birkaç kez odaklanmışsınız.
Açık. Çizgide
dizinin ötesine geçer. Ve çıktı RSI1_Buffer[i] içindedir. ...Cevap vermekte zorlansam da, diziden çıkmanın bir yolu olmamalı.için (int i=3; i<Barlar; i++)
{
Yukarı=iFractals(NULL, 0, MODE_UPPER, i); (Yukarı>0) kırılırsa;
}
Herkese merhaba ... herhangi biri bana aşağıdaki kodun mql5'te nasıl görüneceğini söyleyebilir mi:
için (int i=3; i<Barlar; i++)
{
Yukarı=iFractals(NULL, 0, MODE_UPPER, i); (Yukarı>0) kırılırsa;
}
Makale yardımcı olur.
Çift iFractals'ı (dize sembolü, int zaman çerçevesi, int modu, int shift) dörtlü olarak değiştirin
Strateji test cihazı hakkında soru: Maksimum karlı işlem yüzdesine sahip bir dizi parametre seçmeniz gerekiyor - nasıl yapılır? "Denge + min DD" optimizasyon kriteri aşağı yukarı uygun gibi görünüyor, ancak çarpan olarak kâr diğer her şeyi tıkar..
Ve işte prib işlemlerinin bakiyesi ve yüzdesi?
Google'da "Bir site için optimizasyon kriterinizi nasıl oluşturabilirsiniz:mql5.com ticaret robotu" başlıklı bir makale vardı.
Ve işte prib işlemlerinin bakiyesi ve yüzdesi?
Google'da "Bir site için optimizasyon kriterinizi nasıl oluşturabilirsiniz:mql5.com ticaret robotu" başlıklı bir makale vardı.
buldum, teşekkürler
https://www.mql5.com/ru/articles/286