Hatalar, hatalar, sorular - sayfa 720

 

Herkese selam!

Böyle bir hatayla karşılaştım (veya belki bir şeyi yanlış anladım)

Bir aylık geçmişi görüntülerken, yeterli veri görüntülenir, yani. 740 kazanıldı, takas -250

Aynı zamanda tüm döneme baktığımda 500 kazandım, takas hemen hemen aynı

Tüm dönem için kazanılan bir ayda kazanılandan daha az olduğunda bunun nasıl olabileceğini anlamıyorum

Gerekirse, tarihle ilgili raporlar ekleyebilirim

 
tol64 :

Bu nedenle, 3 lot açık pozisyonlu 5. bekleyen Buy Stop emri ve her biri 3 lotluk 4 Buy Stop emri (15 lot limitli) vermek işe yaramamalıdır.

Genel olarak, evet - yardımda açıklananlar açısından.

Ama mantıken böyle olmak zorunda değil. Döviz piyasalarında, sadece gözlüklerde limit emirleri vardır ve stop emirleri aracının sunucusunda saklanır ve iki parametreye sahiptir - aktivasyon fiyatı (MT'de "Fiyat") ve verilen limit emrinin fiyatı (en kötü fiyat) hangi bir anlaşma yapmaya hazırlar). MT5'teki BuyStopLimit ve SellStopLimit gibi bir şey, sadece Limit stop fiyatına eşit olabilir veya daha yüksek (BuyStopLimit için) veya daha düşük (SellStopLimit için) olabilir. Döviz piyasalarında Limit'in (satın almalar için) yukarısına ayarlanmasında en iyi talep bir anlaşmaya yol açar, ancak MT'de bu yapılamaz. Bu nedenle, döviz piyasalarında, özellikle az gelişmiş olanlarda (örneğin, Ukrayna Borsası), nispeten sık (ve özellikle 16:30-16:35 aralığında üç aylık endeks vadeli işlemlerinin sona erdiği gün) durma zamanı yoktur. çalışmak ve emir defteri limit emirleri ile doldurulur, ki bu normal şartlar altında derhal uygulanacaktır.

Yani - Bardakta limit - alım/satım için kesin bir taahhüt (aniden az para varsa, komisyoncu emri geri çekebilir, ancak yürütme kuyruğundan ERKEN gelir) ve DUR, komisyoncunun sadece bir kaydıdır. sunucu, böylece fiyat aktivasyonuna ulaşıldığı anda, komisyoncu ücretsiz fonları değerlendirebilir ve bir limit limiti belirleyip belirlememeye karar verebilir. Bu yüzden limitler için sayı kısıtlamalarına uyulması gerektiğini, ancak duraklar için teorik olarak gerekli olmadığını söylüyorum.

 
Yedelkin :

DoubleToString'e mi ihtiyacınız var? :)

Ah, NormalizeDouble'a bir bakın:

Print() ile Journal'a yazdırıldığında normalleştirilmiş bir sayının beklediğinizden daha fazla ondalık basamak içerebileceğini unutmayın.

   double pi= M_PI ;
   Print ( "pi=" , DoubleToString (pi, 16 ));
      
   double pi_3= NormalizeDouble ( M_PI , 3 );
   Print ( "NormalizeDouble(pi,3) = " , DoubleToString (pi_3, 16 ))
   ;
   double pi_8= NormalizeDouble ( M_PI , 8 );
   Print ( "NormalizeDouble(pi,8) = " , DoubleToString (pi_8, 16 ));
   
   double pi_0= NormalizeDouble ( M_PI , 0 );
   Print ( "NormalizeDouble(pi,0) = " , DoubleToString (pi_0, 16 ));
/*
   Результат:
   pi= 3.1415926535897931
   NormalizeDouble(pi,3)= 3.1419999999999999                          <-----------
   NormalizeDouble(pi,8)= 3.141592649999999 8                          <-----------
   NormalizeDouble(pi,0)= 3.0000000000000000
*/

Seni rahatsız etmiyor mu?

 
victorg :

Ah, NormalizeDouble'a bir bakın:

Seni rahatsız etmiyor mu?

Hayır, endişelenecek bir şey yok. senin örneğinde

 void OnStart ()
  {
   double a= 2000000.0 / 3.0 ;
   Print ( DoubleToString (a, 30 ));
  }
NormalizeDouble() işlevinin kullanımı ve normalleştirilmiş sayılar hakkında hiç konuşma yapılmadı. Buna göre, DoubleToString() işlevinin açıklamasından bir alıntı, "DoubleToString'e Ulaşmak ? :) " sözüme utanç gölgesi olmadan eşlik etti. Şimdiye kadar, hiç kimse bu alıntının alaka düzeyini inkar etmedi.
 
Yedelkin :

Hayır, endişelenecek bir şey yok. senin örneğinde

NormalizeDouble() işlevinin kullanımı ve normalleştirilmiş sayılar hakkında hiç konuşma yapılmadı. Buna göre, DoubleToString() işlevinin açıklamasından bir alıntı, "DoubleToString'e Ulaşmak ? :) " sözüme utanç gölgesi olmadan eşlik etti. Bu alıntının alaka düzeyi henüz reddedilmedi.

Aslında, yorumunuzdan değil, NormalizeDouble() üzerindeki dock'tan bahsediyorum.

 
notused :

Genel olarak, evet - yardımda açıklananlar açısından.

Ama mantıken böyle olmak zorunda değil. Döviz piyasalarında, sadece gözlüklerde limit emirleri vardır ve stop emirleri aracının sunucusunda saklanır ve iki parametreye sahiptir - aktivasyon fiyatı (MT'de "Fiyat") ve verilen limit emrinin fiyatı (en kötü fiyat) hangi bir anlaşma yapmaya hazırlar). MT5'teki BuyStopLimit ve SellStopLimit gibi bir şey, sadece Limit stop fiyatına eşit olabilir veya daha yüksek (BuyStopLimit için) veya daha düşük (SellStopLimit için) olabilir. Döviz piyasalarında Limit'in (satın almalar için) yukarısına ayarlanmasında en iyi talep bir anlaşmaya yol açar, ancak MT'de bu yapılamaz. Bu nedenle, döviz piyasalarında, özellikle az gelişmiş olanlarda (örneğin, Ukrayna Borsası), nispeten sık (ve özellikle 16:30-16:35 aralığında üç aylık endeks vadeli işlemlerinin sona erdiği gün) durma zamanı yoktur. çalışmak ve emir defteri limit emirleri ile doldurulur, ki bu normal şartlar altında derhal uygulanacaktır.

Yani - Bardakta limit - satın alma / satma için kesin bir taahhüt (aniden yeterli para yoksa, komisyoncu emri geri çekebilir , ancak yürütme kuyruğundan ERKEN gelir) ve DUR sadece bir kayıttır komisyoncu sunucusu, bu nedenle fiyat aktivasyonuna ulaşıldığı anda, komisyoncu ücretsiz fonları değerlendirebilir ve bir limit limiti belirleyip belirlememeye karar verebilir. Bu yüzden limitler için sayı kısıtlamalarına uyulması gerektiğini, ancak duraklar için teorik olarak gerekli olmadığını söylüyorum.

Detaylı açıklama için teşekkürler.

Valery, MT5 sipariş defterine bir otomatik strateji uygulamaya çalıştınız mı? Yaklaşık bir ay önce denedim ve bir şey benim için işe yaramadı, ancak forumda kimse cevap vermedi. Sonunda, bunun bir hata mı yoksa benim açımdan bir yanlış anlama mı olduğunu hala anlamadım. Işık tutmak. :)

 

Tünaydın!

Söyleyin bana, programın olağan gövdesinde iCustom göstergesi var, normal çalışıyor, tanıtıcı anlıyor, her şey çalışıyor.

Ancak bunu EX5 kitaplığına koyarsam, handle= -1 alıyorum ve ana program, göstergeyi çağırırken hata veriyor:

"DZMACD EURGBP,M15 yüklemesi başarısız oldu"
"özel gösterge 'DZMACD' [4002] yüklenemiyor"

Aynı zamanda, örneğin iMA veya iMACD gibi standart göstergeler aynı ex5 kitaplığında normal şekilde çalışır, bir tanıtıcı alırlar.

Neyi yanlış yaptığımı anlayamıyorum, yoksa bu bir hata mı?

Документация по MQL5: Технические индикаторы / iCustom
Документация по MQL5: Технические индикаторы / iCustom
  • www.mql5.com
Технические индикаторы / iCustom - Документация по MQL5
 
MqlDateTime yapısında

int   gün ; // gün

Ayın gününü mi kastediyorsun?
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
 
victorg :

Aslında, yorumunuzdan değil, NormalizeDouble() üzerindeki dock'tan bahsediyorum.

Aslında mesaj şu şekildeydi :

zafer :

Yedelkin :

DoubleToString'e mi ihtiyacınız var? :)

Ah, NormalizeDouble'a bir bakın:

Seni rahatsız etmiyor mu?

Onlar. "Orada başka bir şey görmek için" önerisi ve "utanç verici mi?" Sorusu ile tam olarak "benim yorumum" un doğrudan bir alıntısı vardı.

Sadece yeni araştırma sonuçlarını "...doküman hakkında NormalizeDouble()" şeklinde belirtmek istiyoruz - gereksiz bilgileri belirtmeden bu şekilde yazardık. Muhtemelen :/

Mesajınızda nominal bir bağlantı kullanıldığı ve bu benim yorumum olduğu için, NormalizeDouble () işlevinin ne benim yorumumla ne de orijinal mesajınızla hiçbir ilgisi olmadığını açıklamak zorunda kaldım ve yorum yapmama izin verdim.

 
Fia :

Tünaydın!

Söyleyin bana, programın olağan gövdesinde iCustom göstergesi var, normal çalışıyor, tanıtıcı anlıyor, her şey çalışıyor.

Ancak bunu EX5 kitaplığına koyarsam, handle= -1 alıyorum ve ana program, göstergeyi çağırırken hata veriyor:

"DZMACD EURGBP,M15 yüklemesi başarısız oldu"
"özel gösterge 'DZMACD' [4002] yüklenemiyor"

Aynı zamanda, örneğin iMA veya iMACD gibi standart göstergeler aynı ex5 kitaplığında normal şekilde çalışır, bir tanıtıcı alırlar.

Neyi yanlış yaptığımı anlayamıyorum, yoksa bu bir hata mı?

Kitaplıktaki özel gösterge parametreleriyle ilgili her şey yolunda mı?

ERR_WRONG_INTERNAL_PARAMETER

4002

İstemci terminal işlevinin dahili çağrısı sırasında yanlış parametre

Neden: