Hatanın nerede olduğunu söyle, tam değerleri alıyorum ama “Obem_Pozic” değerini 1.00 gibi gösteremiyorum ki maruziyet lotunu hesaplayayım, değerleri normalleştirmek istemiyorum, 4 ondalık veriyor yerler ve bu kadar.
MQL4'te yazıyorum.
MQL4 hakkında ilgili forumda soruyorlar, işte beş
Sorunuzda - 4 ondalık basamak Uyarısı verir. DoubleToStr() işlevini kullanmalısınız. daha doğru ekran çıktısı için
Büyük olasılıkla, bu çift terminal tarafından sağlanır, sadece bağlamanız gerekir. Elle ise, Piyasa İzleme'de. Ve yetişkin bir şekilde ise, programlı olarak SymbolSelect () aracılığıyla.
Bir hata göründüğünde, geri kalanı takip eder. İlk hatalar sırayla alttaki terminaldedir. Yani ilk hataları ortadan kaldırmaya çalışmalıyız, sonra göreceğiz :)
Teşekkürler!! Çok net ve iyi yazılmış. SymbolSelect(), Uzman Danışmanım Gerçekten de. Görmeniz gerekiyorsa, 53. sayfadaki kodla gönderdim. Yardımı kontrol ettim - her şey doğru !! O zaman Büyük olasılıkla, bu çift terminal tarafından sağlanıyorsa - ne düşünmeliyim?
Ayrıca, ilk sıradaki hatalar aşağıdan terminalde ise. Neden hata mesajları ve terminal mesajları sırayla yazdırılmıyor - hayır, bunlar birlikte gruplandırılmış mı?
Belki terminal bu fonksiyondan olmayan bir hata bildirir?
Ve görünüşe göre evet, bundan değil !! Ya da bundan, ama böyle değil. İlk olarak, program mesajları (baskılar) ve tirminal mesajlar gerçekten değişiyor ve sonra aniden, patlama ve 10-12 kez, 4002 hatası aniden bir kalabalığa tırmanıyor !!
/////////////////////////////////////////////////////////////////////
int Distance_from_MA(string symbb)
{
double MAMA = iMAf( symbb, periodd(TFMA), periodMA, ma_shift, ma_method, applied_price, 0);
int spread = (int) MathRound(SymbolInfoInteger(symbb,SYMBOL_SPREAD));
double point = SymbolInfoDouble(symbb,SYMBOL_POINT);
if(SymbolInfoInteger(symbb,SYMBOL_DIGITS) == 3 || SymbolInfoInteger(symbb,SYMBOL_DIGITS) == 5)
{spread = (int) MathRound(SymbolInfoInteger(symbb,SYMBOL_SPREAD)/10);
point = SymbolInfoDouble(symbb,SYMBOL_POINT)*10;}
if(iClose(symb,TF_Price,0)+(spread*point)+(Min_Distance_from_MA*point)<=MAMA) return(-1);
if(iClose(symb,TF_Price,0)-(Min_Distance_from_MA*point)>=MAMA) return (1);
return(0);
}
////////////////////////////////////////////////////////////////////
Çağrı hattında bir fonksiyon daha kullandığımı lütfen unutmayın. Zaman çerçevesi dönüşümü için kullanılır. Danışman dördünden esinlendiği için oldu. İçinde vaka destekçisini kullandım. Daha sonra, her ihtimale karşı, beşin zaman dilimlerini dördünün zaman dilimlerine, daha sonra kullanılması için fona ekledim ve çalışmasında, genel olarak orada yanılacak bir şey olmadığından eminim.
Dimka-novitsek :çerçevesi değişkeninin baskısının nasıl görünmesi gerektiğini söyler misiniz, dijital olabilir mi? Birini görüyorum, bir numaranın görüntülendiği anlamda.
Sorunun nerede olabileceğini anlıyor gibi görünüyor. şimdi yazacağım.
Şekil, Expert Advisor'ın М1, timeframe==1, period==140 tarihinde başlatıldığını göstermektedir. Doğru şekilde?
timeframe==1 değeri, büyük olasılıkla, timeframe==M1 olduğunu söylüyor. Bu durumda, periodd(dönem) kaydı periodd( 140 ) anlamına gelir. Koda göre, periodd( 140 ) işlevi PERIOD_CURRENT değerini döndürmelidir. Yani periodd( 140 )==M1 çıkıyor. Bu, iMA çağrısının şöyle göründüğü anlamına gelir: iMA(sembol, M1 , M1 ...). İkinci argümanın değeri için üçüncü argümanın değeriyle eşleşmesi için iMA'yı hesaplarken kabul edilebilir olup olmadığını bilmiyorum (yani, periyodun değerinin ortalama periyodla eşleşmesi için), ancak bir şey bana bunun olduğunu söylüyor. yanlış.
MQL5.com web sitesine giriş yapmak için çerezlerin kullanımına izin vermelisiniz.
Lütfen tarayıcınızda gerekli ayarı etkinleştirin, aksi takdirde giriş yapamazsınız.
Hesabınıza giriş yaptınız. İki faktörlü kimlik doğrulama devre dışı bırakıldı. Yeniden kurup yeni bir QR kodu tarayın veya iki faktörlü kimlik doğrulama devre dışıyken devam edin.
Hatanın nerede olduğunu söyle, tam değerleri alıyorum ama “Obem_Pozic” değerini 1.00 gibi gösteremiyorum ki maruziyet lotunu hesaplayayım, değerleri normalleştirmek istemiyorum, 4 ondalık veriyor yerler ve bu kadar.
MQL4'te yazıyorum.
MQL4 hakkında ilgili forumda soruyorlar, işte beş
Sorunuzda - 4 ondalık basamak Uyarısı verir. DoubleToStr() işlevini kullanmalısınız. daha doğru ekran çıktısı için
Büyük olasılıkla, bu çift terminal tarafından sağlanır, sadece bağlamanız gerekir. Elle ise, Piyasa İzleme'de. Ve yetişkin bir şekilde ise, programlı olarak SymbolSelect () aracılığıyla.
Bir hata göründüğünde, geri kalanı takip eder. İlk hatalar sırayla alttaki terminaldedir. Yani ilk hataları ortadan kaldırmaya çalışmalıyız, sonra göreceğiz :)
Teşekkürler!! Çok net ve iyi yazılmış. SymbolSelect(), Uzman Danışmanım Gerçekten de. Görmeniz gerekiyorsa, 53. sayfadaki kodla gönderdim. Yardımı kontrol ettim - her şey doğru !! O zaman Büyük olasılıkla, bu çift terminal tarafından sağlanıyorsa - ne düşünmeliyim?
Ayrıca, ilk sıradaki hatalar aşağıdan terminalde ise. Neden hata mesajları ve terminal mesajları sırayla yazdırılmıyor - hayır, bunlar birlikte gruplandırılmış mı?
Belki terminal bu fonksiyondan olmayan bir hata bildirir?
Evet görüyorum. Şöyle deneyelim:
Teşekkürler!! !!
Lütfen söyleyin, zaman çerçevesi değişkeninin baskısı nasıl olmalı, dijital olabilir mi? Birini görüyorum, bir numaranın görüntülendiği anlamda.
neden diye soruyorum. Bu bir fonksiyondur, baskılı bir çizgisi vardır. Sırasıyla üstten ikinci.
İştefonksiyon çağrısı .
///////////////////////////////////////////////////////////////////// int Distance_from_MA(string symbb) { double MAMA = iMAf( symbb, periodd(TFMA), periodMA, ma_shift, ma_method, applied_price, 0); int spread = (int) MathRound(SymbolInfoInteger(symbb,SYMBOL_SPREAD)); double point = SymbolInfoDouble(symbb,SYMBOL_POINT); if(SymbolInfoInteger(symbb,SYMBOL_DIGITS) == 3 || SymbolInfoInteger(symbb,SYMBOL_DIGITS) == 5) {spread = (int) MathRound(SymbolInfoInteger(symbb,SYMBOL_SPREAD)/10); point = SymbolInfoDouble(symbb,SYMBOL_POINT)*10;} if(iClose(symb,TF_Price,0)+(spread*point)+(Min_Distance_from_MA*point)<=MAMA) return(-1); if(iClose(symb,TF_Price,0)-(Min_Distance_from_MA*point)>=MAMA) return (1); return(0); } ////////////////////////////////////////////////////////////////////Çağrı hattında bir fonksiyon daha kullandığımı lütfen unutmayın. Zaman çerçevesi dönüşümü için kullanılır. Danışman dördünden esinlendiği için oldu. İçinde vaka destekçisini kullandım. Daha sonra, her ihtimale karşı, beşin zaman dilimlerini dördünün zaman dilimlerine, daha sonra kullanılması için fona ekledim ve çalışmasında, genel olarak orada yanılacak bir şey olmadığından eminim.
Ve gördüğüm şey bu
Eh, bu kodda biraz daha düşük, sonuçta kullanır
EnumToString (timeframe),Sorunun nerede olabileceğini anlıyor gibi görünüyor. şimdi yazacağım.
Şekil, Expert Advisor'ın М1, timeframe==1, period==140 tarihinde başlatıldığını göstermektedir. Doğru şekilde?
timeframe==1 değeri, büyük olasılıkla, timeframe==M1 olduğunu söylüyor. Bu durumda, periodd(dönem) kaydı periodd( 140 ) anlamına gelir. Koda göre, periodd( 140 ) işlevi PERIOD_CURRENT değerini döndürmelidir. Yani periodd( 140 )==M1 çıkıyor.
Bu, iMA çağrısının şöyle göründüğü anlamına gelir: iMA(sembol, M1 , M1 ...). İkinci argümanın değeri için üçüncü argümanın değeriyle eşleşmesi için iMA'yı hesaplarken kabul edilebilir olup olmadığını bilmiyorum (yani, periyodun değerinin ortalama periyodla eşleşmesi için), ancak bir şey bana bunun olduğunu söylüyor. yanlış.