Mql4 dilinin özellikleri, incelikleri ve çalışma yöntemleri - sayfa 18

 
Dmitry Rannev :

Sorun yukarıda fxsaber tarafından açıklanmıştır. Nedenini bulmaya çalışıyoruz.

Bu şekilde düzgün çalışacak

 NormalizeDouble (Price1 - Price2, _Digits ) != 0.0 ;
 
Alexey Viktorov :

Bu şekilde düzgün çalışacak

Çiftleri karşılaştırma problemini çözme girişimi yoktur. Görev farklı.

 
Dmitry Rannev :

Sorun yukarıda fxsaber tarafından açıklanmıştır. Nedenini bulmaya çalışıyoruz.

O zaman fxsaber doğru cevap verdi - Yazdır kullanma, printf kullanma ve çıktı numaralarının istenen kesinliğini belirtirdim { printf("Aç: %.6f, Kapat: %.6f", OrderOpenPrice(), OrderClosePrice() ); }

 
Ilya Malev :

O zaman fxsaber doğru cevap verdi - Yazdır kullanma, printf kullanma ve çıktı numaralarının istenen kesinliğini belirtirdim { printf("Aç: %.6f, Kapat: %.6f", OrderOpenPrice(), OrderClosePrice() ); }

Sorunun tam olarak ne olduğunu anlamak istiyorsanız, fxsaber'a normal olarak danışman yazmasını neyin engellediğini sorun. Aracılar için yazılım geliştirici adına, daha az sorun olduğundan emin olmaya çalışıyoruz. Expert Advisors yazarken değil, fxsaber'ın Expert Advisors yazmasını engelleyen sunucunun ticaret kaydındaki verileri kaydetmede sorun arıyoruz.

 
fxsaber'ın Expert Advisors'ın normal yazımına müdahale ettiğini duymadım ama neyse hadi gidelim :) Yorumum konu dışıysa kusura bakmayın.
 
Dmitry Rannev :

...fakat fxsaber'ın Uzman Danışmanlar yazmasını engelleyen sunucunun ticaret kaydındaki verileri kaydetmede.

Oh, işte orada... Ama onu neyin durdurduğunu anlayamıyoruz.
 
Alexey Navoykov :
Oh, işte orada… Ama onu neyin durdurduğunu anlayamıyoruz.

İşte başladı. Ve buna dönüştü

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MT4'te normalleştirilmemiş fiyatlar

fxsaber , 2019.02.20 23:03

Ancak durum çok daha kötü ve aynı zamanda MQ-Demo'da
 // 15326434
// wmefo5sa
// MetaQuotes-Demo
void OnStart ()
{
   const double Price1 = HistoryOrderSelect ( 356138100 ) ? HistoryOrderGetDouble ( HistoryOrderGetTicket ( 0 ), ORDER_PRICE_CURRENT ) : 0 ;
   const double Price2 = PositionSelectByTicket ( 356138100 ) ? PositionGetDouble ( POSITION_PRICE_OPEN ) : 0 ;  
  
   Print (Price1 - Price2); // -2.220446049250313e-16
}


Mevcut pozisyonun açılış fiyatı, emirlerinin/işlemlerinin fiyatına eşit değil.

 
fxsaber :
Çok boyutlu diziler için ArrayResize'ın özellikleri

çünkü ArrayRange() aracılığıyla gerekli boyuttaki öğelerin sayısını almanız gerekir ve yine de yalnızca 1. boyutu yeniden boyutlandırabilirsiniz, bu nedenle mql5'te daha mantıklıdır

 

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Andrey Khatimlianskii , 2019.03.12 22:57

İlginç bir şekilde, TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (AutoTrade düğmesi) ne kadar süredir test edilmiş Uzman Danışmanları (MT4) etkiliyor?

1170'de etkiler, test cihazındaki ticareti doğrudan düğmeyle kontrol edebilirsiniz. Şok oldum.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

Hatalar, hatalar, sorular

Vladimir Pastushak , 2019.03.13 19:12

Kod gibi bir şey içeriyorsa

 if (! TerminalInfoInteger ( TERMINAL_TRADE_ALLOWED ))
return ;

O düğme çalışıyor.

Bu komut olmadan danışman düğmeye yanıt vermez.

strateji test cihazında düğme kontrollerini devre dışı bıraktım.





 

Grafikte çalışan göstergelerin arabellek değerlerini almanın mümkün olduğu ortaya çıktı (bir kerelik WinAPI kullanımı).

DLL yoksa - neredeyse otomatik olarak.