Uyarı: Uzmanlar Tarafından Gönderilen MT4 Terminal Kopyalama Emirleri - sayfa 6

 

arada fark var

 bool Buy_Ticket = OrderSend (........)

ve ne yapıyorsun

bool Buy_Ticket = Ordersend > 0 ;   //SIMPLIFIED CODE FOR EASIER READING

ilkinde, bir sipariş başarısız olursa -1 değeri döndürülür, ancak bool bunu DOĞRU olarak yorumlar.

ikincisinde, boolea doğru veya yanlış atamak için (Ordersend>0) koşulunu kullanıyorsunuz.

 
GumRai :


arada fark var

ve ne yapıyorsun

ilkinde, bir sipariş başarısız olursa -1 değeri döndürülür, ancak bool bunu DOĞRU olarak yorumlar.

ikincisinde, boolea doğru veya yanlış atamak için (Ordersend>0) koşulunu kullanıyorsunuz.



Bu doğru mu? Şu anda bir demo hesabında (Canlı işlem) test edemiyorum, ancak uzun bir işlem için geçersiz stoploss = ask (Piyasa fiyatı) ile OrderSend()'i kasıtlı olarak bozan bir geriye dönük testte hızlı doğrulama yaptım. Sonuç, OrderSend() beklendiği gibi bir "-1" döndürür ve benim bool var Buy_Ticket'im de false döndürür.


** DÜZENLE **

OrderSend()'in arkasındaki "> 0" koşullarımı kaçırdınız mı? Orijinal kodum şunu gösteriyor:

 bool Buy_Ticket = OrderSend (........) > 0 ;
 
BigFisherman :



Bu doğru mu? Şu anda bir demo hesabında (Canlı işlem) test edemiyorum, ancak uzun bir işlem için geçersiz stoploss = ask (Piyasa fiyatı) ile OrderSend()'i kasıtlı olarak bozan bir geriye dönük testte hızlı doğrulama yaptım. Sonuç, OrderSend() beklendiği gibi bir "-1" döndürür ve benim bool var Buy_Ticket'im de false döndürür.


** DÜZENLE **

OrderSend()'in arkasındaki "> 0" koşullarımı kaçırdınız mı? Orijinal kodum şunu gösteriyor:


Üzgünüm, evet, >0'ı kaçırdım.

Sanırım bu konuda o kadar garip bir yol ki, fark etmedim.

 

@ BigFisherman aşağıdaki kodu kontrol edin

   bool Buy_Ticket;
   int TicketNo = 123456789 ;
   Buy_Ticket = TicketNo > 0 ;
   Alert (Buy_Ticket);

buraya bakın

Atama operatörü bir ifadede birkaç kez kullanılabilir. Bu durumda ifadenin işlenmesi soldan sağa doğru yapılır:

y=x=3;

Önce x değişkenine 3 değeri, ardından y değişkenine x değeri yani 3 değeri atanacaktır.

 
GumRai :


Üzgünüm, evet, >0'ı kaçırdım.

Sanırım bu konuda o kadar garip bir yol ki, fark etmedim.


Sorun yok.

Bu şekilde kodlamanın iyi bir uygulama olmadığını kabul ediyorum; Bu kısmı MQL öğrenimimin ilk aşamasında kodladım, ancak tüm bu süre boyunca bana doğru göründüğü için, bu mükerrer ticaret sorunu olana kadar olmasına izin verdim. Ama görünüşe göre, şimdi orijinal kodum "gibi görünüyor", ancak kafa karıştırıcı geçerli görünüyor, sonra bu konunun orijinal konusuna geri dönüyor "Yinelenen işlemler.."; bu, mt4'te ciddi ve son derece istenmeyen bir "nadir" hata olabilir, ki bu ne yazık ki nadir görünümünden dolayı (500'den fazla işlemde 1) yeniden üretemiyorum.

Herhangi birinin bilgisi için, EA'mı nasıl kodladığımdan dolayı (pg5'teki 1. mesajıma bakın), SL & TP yalnızca başarılı OrderSend() algıladıktan sonra atandı (IMHO şu ana kadar oldukça kusursuz). Ve önceki mükerrer ticaretime olan şey, bilinmeyen bir nedenden dolayı ASLA SL & TP'yi ayarlamayı başaramamasıydı; OrderSend() dışında "-1" döndürdü, ancak yine de bir ticaret açtı VEYA "o" bir OrderSend() içinde aynı anda 2 işlem açtı ** sadece kendi spekülasyonum **. Neyse ki, bu olduğunda bilgisayarımın tam önündeydim, bu yüzden onu manuel olarak kapatabildim; Bir tatile çıkarsam ne olacağını hayal et.

 
qjol :

@ BigFisherman aşağıdaki kodu kontrol edin

   bool Buy_Ticket;
   int TicketNo = 123456789 ;
   Buy_Ticket = TicketNo > 0 ;
   Alert (Buy_Ticket);


Buy_Ticket beklendiği gibi true değerini döndürür. Ne demeye çalışıyorsun?

 

söylemeye çalışmıyorum, söylüyorum!

eğer böyle kullanırsan

 bool Buy_Ticket = OrderSend (........) > 0 ;

Tabii ki OrderSend() yürütüldüyse gerçek olacaksın

çünkü önce OrderSend sonucunun > 0 olup olmadığı incelenir.

ve sonra geçti

Buy_Ticket

ama yine de doğru şekilde ele almanın yolu değil

 
qjol :

söylemeye çalışmıyorum, söylüyorum!

eğer böyle kullanırsan

Tabii ki OrderSend() yürütüldüyse gerçek olacaksın

çünkü önce OrderSend sonucunun > 0 olup olmadığı incelenir.

ve sonra geçti

ama yine de doğru şekilde ele almanın yolu değil



Şimdi mql4'te kimin gönderisini filtreleyeceğimi biliyorum, yine de girişiniz için teşekkürler.
 
y=x= 3 ;
Bunu yapmaya çalıştım ama ne zaman derlemeye çalışsam MetaEditor beni durduruyor.
 
BigFisherman :


Artık kimin gönderisini mql4'te filtreleyeceğimi biliyorum.

not: mql5'teki kullanıcı adım aynı
Neden: