Terminal Global Problemi

 

hey millet

MT programlamaya veda etmeme neden olacak bir şeyler oluyor. Sorun, terminal globallerini ayarlamaya çalışmaktır. Yaptığım şey şöyle bir şey:

BuyEntrySignalGiven = Symbol () + "BuyEntrySignalGiven" ;
GlobalVariableSet (BuyEntrySignalGiven, ( double ) 1.0 );

Set bana sürekli 4051 hatası veriyor. İlk parametre bir dize, ikincisi olması gerektiği gibi bir double. Neden bir parametre türünün geçersiz olduğunu iddia etmeye devam ediyor, beni aşıyor. Her iki parametre de doğru tiptedir. Parametreler doğruyken neden sigorta atıyor anlamıyorum. Ticari olarak özel bir yazılım geliştiricisiyim ve tekliflerime MT uygulamaları eklemeyi amaçlıyorum. Platform güvenilir değilse, ona dokunmayacağım. Sinsice olan bir şey beni sadece kötü gösterir ve işimi sabote eder. Herhangi birinin sunabileceği içgörüleri varsa, çok minnettar olurum.

Çok teşekkürler,

Prof.

 
GlobalVariableSet (BuyEntrySignalGiven, ( double ) 1.0 );

Çift bildirimi kaldırın . GV zaten iki katı, bu yüzden tekrar beyan etmeye gerek yok.



BuyEntrySignalGiven = Symbol () + "BuyEntrySignalGiven" ;

O kod da sorunlu. Zamanı varsa, başka biri size işaret edecektir.

 
ProfessorMetal :

hey millet

MT programlamaya veda etmeme neden olacak bir şeyler oluyor. Sorun, terminal globallerini ayarlamaya çalışmaktır. Yaptığım şey şöyle bir şey:

Set bana sürekli 4051 hatası veriyor. İlk parametre bir dize, ikincisi olması gerektiği gibi bir double. Neden bir parametre türünün geçersiz olduğunu iddia etmeye devam ediyor, beni aşıyor. Her iki parametre de doğru tiptedir. Parametreler doğruyken neden sigorta attığını anlamıyorum. Ticari olarak özel bir yazılım geliştiricisiyim ve tekliflerime MT uygulamaları eklemeyi amaçlıyorum. Platform güvenilir değilse, ona dokunmayacağım. Sinsice olan bir şey beni sadece kötü gösterir ve işimi sabote eder. Herhangi birinin sunabileceği içgörüleri varsa, çok minnettar olurum.

Çok teşekkürler,

Prof.

Bu kodla ilgili bir sorunum yok:

 string BuyEntrySignalGiven = Symbol () + "BuyEntrySignalGiven" ;
GlobalVariableSet (BuyEntrySignalGiven, ( double ) 1.0 );     
Hangi yapıyı kullanıyorsunuz? Sorununuzu nasıl yeniden oluşturabilirsiniz?
 
Daha eski bir yapı olduğunu düşünüyorum.
 

Çift oyuncu kadrosu başlangıçta orada değildi. Hatadan dolayı ekledim. İkinci parametrenin bir çift olması gerekiyordu. Arka planım C++/C# ve argümanı 1.0 olarak koymanın yeterli olacağını umuyordum. Çağrı başarısız olduğu ve MQL4'ün kendine has bir özelliği olup olmadığından emin olmadığım için oyuncu kadrosunu ekledim. MQL4'ün her zaman beklenen kurallara göre oynamadığını zaten gördüm. Dize ataması söz konusu olduğunda, yazdığım, aynı formatı izleyen ve mükemmel çalışan başka bir göstergem var. Orada sorunlu bir şey göremiyorum. Symbol() bir dizge döndürür, birleştirme bir dizge ile yapılır, bu kesinlikle kabul edilebilirdir ve ifadenin atandığı değişken de bir dizgedir. Sorun olabileceğini görebildiğim tek şey, çift sembolünü GV adıyla aynı olan bir dizeyle birleştirmek. Bunun önemli olmaması gerekir çünkü "tamamlanmış" dize GV adıyla aynı değildir. Belki de sorun budur. Eğer öyleyse, neden sadece söylemiyorsun?

Neyse, cevap için teşekkürler

Prof.

 

Aslında MetaQuotes, MQL4/5'te C++/C# kodlama stili ve kuralları bekleyemeyeceğinizi söyledi.


Bu arada moderatörün sorusuna cevap vermemişsin.

 

İlginç, çocuklar. Build 646'yı çalıştırıyorum. Sorunun bu olduğunu düşünmüyorum. Uh - Sanırım şimdi anladım. Yorgun ve aptal olan benim. GV adları, OnStart()'tan çağırmak istediğim ve yapmadığım bir yöntemle ayarlandı. DUH! Aptal Amerikalıyı tokatla ve daha fazla kodlamaya çalışmadan önce ona yatıp biraz uyumasını söyle. Yaklaşık 36 saattir ayaktayım. Geri çekilip ne yaptığımı tekrar gözden geçirmem için bana ilham vererek kesinlikle bana yardımcı oldunuz. Çok teşekkürler ve İyi Geceler, İyi Günler - nerede olursanız olun. :-)

Prof.

 
Cevap verdim, deysmacro. Cevap verme zamanımı göstermedin. Dediğim gibi, temelde bir sorun değil. Sorun, benim açımdan yorgunluktan kaynaklanan bir çaylak hatasıydı. BTW, MQL4/5'teki her şeyin C++/C# ile aynı şekilde çalışmadığını biliyorum. Bununla birlikte, MQL4/5'teki değişikliklerin amacının bir kısmının onu daha çok C++ gibi yapmak olduğuna dair bir ifade gördüğümü hatırlıyorum. Belgeler biraz daha iyi organize edilmiş ve daha kapsamlı olabilirdi. Adil olmak gerekirse, aynı şey Microsoft için de söylenebilir.
 
Aslında oldukça basit. Size öğretirlerse veya kapsamlı bir belge koyarlarsa, bir noktada, ... ... ...
 

MetaQuotes için adil olmak gerekirse, yaptıkları şey önemsiz değil. Kendi kendine öğretmenin her zaman norm olacağından şüpheleniyorum. Dürüst olmak gerekirse, bu profesyonel bir geliştirici için kurs için eşit. Bölge ile birlikte gelir. Belgeleme ve diğer geliştiricilerle etkileşim, tipik olarak alacağınız tek "öğretme"dir. Çok güzel. :-)

Hâlâ MQL4'ün yeni hata ayıklamasını nasıl çalıştıracağımı bulmaya çalışıyorum. Belgelerin yapmamı söylediğini düşündüğüm şeyi takip ettim. Hata ayıklayıcıyı başlatmaya çalıştığımda, hata ayıklamaya çalıştığım gösterge için bir H1 penceresi ve özellikler iletişim kutusu açıldı. İletişim kutusundan çıktığımda hata ayıklayıcı kapandı ve pencere kayboldu. Oh iyi. Bu başka bir başlığın konusu, sanırım.

 
ProfessorMetal :

MetaQuotes için adil olmak gerekirse, yaptıkları şey önemsiz değil. Kendi kendine öğretmenin her zaman norm olacağından şüpheleniyorum. Dürüst olmak gerekirse, bu profesyonel bir geliştirici için kurs için eşit. Bölge ile birlikte gelir. Belgeleme ve diğer geliştiricilerle etkileşim, genellikle alacağınız tek "öğretme"dir. Çok güzel. :-)

Hâlâ MQL4'ün yeni hata ayıklamasını nasıl çalıştıracağımı bulmaya çalışıyorum. Belgelerin yapmamı söylediğini düşündüğüm şeyi takip ettim. Hata ayıklayıcıyı başlatmaya çalıştığımda, hata ayıklamaya çalıştığım gösterge için bir H1 penceresi ve özellikler iletişim kutusu açıldı. İletişim kutusundan çıktığımda hata ayıklayıcı kapandı ve pencere kayboldu. Oh iyi. Bu başka bir başlığın konusu, sanırım.


Giriş diyalogunun giriş girişlerinden başka bir bölmesini seçtiğinizde önlenebilecek uzun süreli bir hataydı. Sonra bir sonraki çalıştırma başarılı oldu. 646 ile sabit görünüyor. Ne yazık ki bu sitede bu tür bilgiler pek yok. Genellikle çoğu sorun, herhangi bir ek iz bırakmadan " hizmet masasına rapor et " ile sonuçlanır.