MetaEditör. Sorunlar ve çözümler. - sayfa 6

 
1
Lirik86 2011.02.27 14:15 2011.02.27 14:15:10

Tünaydın! MQL5'i kurduktan sonra, düzenleme yaparken program metinlerinin görüntülenmesinde kusurlarla karşılaştım. Seçildiğinde metnin konumu değişir. Klavyeden yazarken yeni karakterler imlecin bulunduğu yerde görünmez. Yazılımı yeniden yüklemek yardımcı olmuyor. Bu sorun nasıl çözülebilir?



 
Söyle bana, ticarette (bir danışmanla) bir bardak emir kullanmak mümkün mü?
 
Liric86 :

1
Lirik86 2011.02.27 14:15 2011.02.27 14:15:10

Tünaydın! MQL5'i kurduktan sonra, düzenleme yaparken program metinlerinin görüntülenmesinde kusurlarla karşılaştım. Seçildiğinde metnin konumu değişir. Klavyeden yazarken yeni karakterler imlecin bulunduğu yerde görünmez. Yazılımı yeniden yüklemek yardımcı olmuyor. Bu sorun nasıl çözülebilir?

Tek aralıklı olmayan bir yazı tipi seçtiniz.

Ayarlarda Courier New yazı tipini 10 punto olarak ayarlayın lütfen.

 
todem :
Söyle bana, ticarette (bir danışmanla) bir bardak emir kullanmak mümkün mü?

Mümkün, ancak ticaret stratejisi test cihazında değil.

Şu anda, birkaç kişi (Alpari'de test modunda var) Forex'te sipariş defterleri sunuyor.

 
Hata ayıklayıcıda adım sayacı eksik. Ve belirli bir adımda ilk kesintiyi yapmak için önceden ayarlanmış bir parametre.
 
Urain :
Hata ayıklayıcıda adım sayacı eksik. Ve belirli bir adımda ilk kesintiyi yapmak için önceden ayarlanmış bir parametre.

Molalar şu anda koşulsuzdur, ancak bu sınırlamayı DebugBreak() kullanarak çözebilirsiniz.
Документация по MQL5: Общие функции / DebugBreak
Документация по MQL5: Общие функции / DebugBreak
  • www.mql5.com
Общие функции / DebugBreak - Документация по MQL5
 
mql5 :
Molalar şu anda koşulsuzdur, ancak bu sınırlamayı DebugBreak() kullanarak çözebilirsiniz.

Her şey böyle, ancak koda dahil edilen dosyada açıklanan bir evrensel sınıfa çok sayıda çağrının olduğu bir durumla karşılaştım. Ve farklı koşullar altında, bu sınıfın dizisinin var olmayan hücrelerine çağrılar var. Programın kendisinde binlerce algoritma adımı vardır, bu nedenle DebugBreak() + F11 kullanarak bir hatanın hangi adımda oluştuğunu izlemek çok zordur.

Tabii ki, eski yöntemlerle (baskılar ve mantıksal tahminler) durumdan çıktım. Ancak bunun maliyeti, birçok çalışma saati. Asıl sorun, hangi fonksiyonun hata vermesi değil, hangi fonksiyonun değeri doğru şekilde hesaplamaması ve bunun da başka bir fonksiyonda hataya yol açmasıydı. Yani, ihtiyaç duyulan şey, hata noktasının kendisi değil, ondan hemen önce olanların bilgisiydi.

Normal bir adım izleyici bunun içindir ve yeni bir başlatmadan hemen sonra belirtilen adıma gitme yeteneği (öncekilerin tümü arasında gezinerek).

 
Bu tasarımı kastetmiştim:

 if (step== 123124 ) DebugBreak ();
 
mql5 :

Bu tasarımı kastetmiştim:

 if (step== 123124 ) DebugBreak ();


Evet, ben de ondan bahsediyorum. Beş bin kodun her satırına koymak bir sorundur. Ve ara lokalizasyon sonuç vermedi, çünkü temyiz sürekli olarak kapanımlar arasında atlıyor, bu yüzden ilk başta kabaca tahmin edildi, böylece daha sonra daha doğru bir şekilde lokalize etmek mümkün olmadı.

Dosyanın başında böyle bir aşırı yüklemeyi tanımladım:

 ulong cntDebugBreak= 0 ;
void DebugBreak ( ulong step)
  {
   if (step>=cntDebugBreak){cntDebugBreak++; DebugBreak ();}
   else cntDebugBreak++;
  }

ancak çağrısı görünmez olsaydı (normalde hata ayıklayıcıda), her ifadeden önce çok havalı olurdu.

PS kodu düzeltti.

 

MetaEditor 4, araç penceresinde yardımın konumu için dahiyane bir çözüme sahipti, metin düzenleme penceresinde yardım her zaman elinizin altındaydı. Meta düzenleyici 5'e bir yardım kutusu koymak da mümkün mü?

Neden: