OrderSend ile MT5'te nasıl düzgün çalışılır - sayfa 6

 
Alexey Viktorov :

İlk EA, OrderSend'den sonra geçmişin henüz senkronize edilmediğini anlar. Sadece bir senkronizasyon olayı için bekler.

Ancak ikinci danışman, tarihin zaten senkronize olduğunu veya henüz senkronize edilmediğini nasıl anlayabilir?

 
fxsaber :

İlk EA, OrderSend'den sonra geçmişin henüz senkronize edilmediğini anlar. Sadece bir senkronizasyon olayı için bekler.

Ancak ikinci danışman, tarihin zaten senkronize olduğunu veya henüz senkronize edilmediğini nasıl anlayabilir?

Tarihi unut. OnTradeTransaction() işlevinin davranışını incelemeye çalışın

İlk EA bir pozisyon yerleştirdi, bu olay OnTradeTransaction'da işlenir ve "arkadaş olmayanlar" orada filtrelenir, sipariş OnTradeTransaction'da etkinleştirilir ve bu olay işlenir.

İkinci danışman ayrıca "onun değil" emirlerini, pozisyonlarını ve anlaşmalarını filtreler.

Gerçek forex hesaplarında bu şekilde çalışan 2 danışmanım var. Bunlardan birinde, takılması gereken pozisyonun bileti, pozisyon sihirbazı olarak atanır. Ve siz kendiniz bunların iki farklı sihirbaz olmadığını anlıyorsunuz ...

Sanırım adın Victor? Hata ayıklamada, farklı büyülerle iki konum oluşturmaya başlayın ve OnTradeTransaction'da yapılarını izleyin.

 
Alexey Viktorov :

Tarihi unut. OnTradeTransaction() işlevinin davranışını incelemeye çalışın

İlk EA bir pozisyon yerleştirdi, bu olay OnTradeTransaction'da işlenir ve "arkadaş olmayanlar" orada filtrelenir, sipariş OnTradeTransaction'da etkinleştirilir ve bu olay işlenir.

İkinci danışman ayrıca "onun değil" emirlerini, pozisyonlarını ve anlaşmalarını filtreler.

Gerçek forex hesaplarında bu şekilde çalışan 2 danışmanım var. Bunlardan birinde, takılması gereken pozisyonun bileti, pozisyon sihirbazı olarak atanır. Ve siz kendiniz bunların iki farklı sihirbaz olmadığını anlıyorsunuz ...

Adın Victor gibi mi görünüyor? Hata ayıklamada, farklı büyülerle iki konum oluşturmaya başlayın ve OnTradeTransaction'da yapılarını izleyin.

Günlüklerime dikkatlice bakarsanız, onlardan görebilirsiniz,

OnTradeTransaction'dan daha hızlı bir bilet aldığımız için

bir sipariş bileti yeterli olacaktır.

Tabii ki, (bu durumda) bir sihirbazla güvenli oynamak daha iyidir.

Ve (şimdilik) OrderSendAsync kullanmak daha da iyi - ne FOREX'te ne de FORTS'ta hata yok

 
prostotrader :

Günlüklerime dikkatlice bakarsanız, onlardan görebilirsiniz,

OnTradeTransaction'dan daha hızlı bir bilet aldığımız için

bir sipariş bileti yeterli olacaktır.

Tabii ki, (bu durumda) bir sihirbazla güvenli oynamak daha iyidir.

Ve (şimdilik) OrderSendAsync kullanmak daha da iyi - ne FOREX'te ne de FORTS'ta hata yok

Belki bu yüzden. Ancak erteleme etkinleştirilirse? geçmişi analiz et? Yine ortamın senkronizasyon hızı sorunu mu?

Genel olarak, bir amatör için. Ana şey, çalışması, biraz yavaşlaması ve onsuz yapmasıdır ...

 
Alexey Viktorov :

Tarihi unut. OnTradeTransaction() işlevinin davranışını incelemeye çalışın

İkincisi, senkronize edilmemiş bir geçmiş sırasında nasıl çalışabilir?

Bu sorun sadece MT5'i değil, dördü de ilgilendiriyor.

 
fxsaber :

İkincisi, senkronize edilmemiş bir geçmiş sırasında nasıl çalışabilir?

Bu sorun sadece MT5'i değil, dördü de ilgilendiriyor.

Adının Victor olduğundan daha da eminim. Son takma adınızı kimseye söylemeyeceğim.

Kısa sürede ortalamanın üzerinde bir seviyede programlamada ustalaştınız, bence ortalamanın bile çok üzerinde. Ancak sizi hatalı konumunuzdan uzaklaştırmak çok zordur. Ve şimdi, senin programlama bilgi seviyen benimkinden yüksek olduğunda, denemeyeceğim bile.

Geçmişi unutun , OnTradeTransaction işlevinin yapılarına bakın.

Hata ayıklayıcının etkinleştirildiğini mql5'te nasıl belirlediğinizi kelimelerle anlatmaya çalışın?

 
Alexey Viktorov :

Adının Victor olduğundan daha da eminim. Son takma adınızı kimseye söylemeyeceğim.

Kısa sürede programlamaya hakim oldunuz...

Aslında, bu hrenfx'in başka bir reenkarnasyonudur. Yenisine gitmeye karar verdi.
 
prostotrader :

Günlüklerime dikkatlice bakarsanız, onlardan görebilirsiniz,

OnTradeTransaction'dan daha hızlı bir bilet aldığımız için

bir sipariş bileti yeterli olacaktır.

Tabii ki, (bu durumda) bir sihirbazla güvenli oynamak daha iyidir.

Ve (şimdilik) OrderSendAsync kullanmak daha da iyi - ne FOREX'te ne de FORTS'ta hata yok

Ve OrderSendAsync() 'in avantajı nedir? Sonuçlarda cevabı beklemiyor. Yani daha sonra yakalanması gerekir. Avantajın ne olduğu belli değil.
 
prostotrader :

OrderSend() kesinlikle eşzamanlı bir işlevdir - bir bilet alırsanız her şey yerine getirilir.

Aşağıda bir örnek

Eklendi ve işte günlükler

https://www.mql5.com/en/forum/38456/page85#comment_2888263

Teşekkür ederim!
 

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

Enstrümanda pozisyon açmadan komisyonun boyutunu nasıl öğrenebilirim?

fxsaber , 2016.11.08 20:30

#include <MT4Orders.mqh>

void OnStart ()
{
   const int Ticket = OrderSend ( _Symbol , OP_BUY , 1 , SymbolInfoDouble ( _Symbol , SYMBOL_ASK ), 0 , 0 , 0 );
  
   OrderClose (Ticket, 0.3 , SymbolInfoDouble ( _Symbol , SYMBOL_BID ), 0 , clrNONE );

   Sleep ( 1000 ); // ждем обновления истории
  
   if ( OrderSelect (Ticket, SELECT_BY_TICKET ))
     Alert ( OrderCommission ());
}

Belki de böyle bir örnek gösterge niteliğindedir.

Uyku yapmazsanız, genellikle OrderClose ve OrderClose yapılmamış gibi OrderCommission bir değer döndürdükten sonra geçmişin güncellenecek zamanı olmadığı bir durum ortaya çıkar.

Bunun bir komut dosyası olduğunu ve herhangi bir Etkinlik olamayacağını unutmayın. Tek çıkış yolu aptal uyku.

Bu betiği SB kullanarak yeniden yazarsanız hiçbir şey değişmez.