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

 
prostotrader :

Zevk almak.

Neden sunucuya boş bir istek gönderiyorsun? Bu anlamsız görünüyor.
Peki TRADE_RETCODE_TIMEOUT veya TRADE_RETCODE_FROZEN diyorsanız "//neden sonuç.retcode'a bakın" da ne yapacaksınız?
 
RickD :
Neden sunucuya boş bir istek gönderiyorsun? Bu anlamsız görünüyor.
Peki TRADE_RETCODE_TIMEOUT veya TRADE_RETCODE_FROZEN diyorsanız "//neden sonuç.retcode'a bakın" da ne yapacaksınız?
kendimi asarım :)
 
Andrey Khatimlianskii :

İki elimle destekliyorum. MQ, sipariş gönderme ve yanıt alma gibi hazır işlevin sorumluluğunu almak istemiyor gibi görünüyor.

Benim versiyonum da koltuk değnekleriyle:

Neden benzer bir şey yapmıyorsunuz (her durumda değil, en azından en basiti için!) ve Güvenlik Konseyi'ne koymuyorsunuz?

gerçekten, EA'da beklemek zorunda kalırsak, OrderSend'in (...) "hızlı" yürütülmesinin kullanımı nedir?

ortam güncellemeleri, bu durumda geçmiş güncellemeleri... ve bu beklenti için farklı algoritmalar ortaya çıkıyor...

sonuçta tarih güncellenene kadar daha ileri gitmeyeceğiz... yani bu hızdan bir fayda gelmez...

 
Denis Sartakov :

Aslında, biz EA'da beklemek zorunda kalırsak, OrderSend(...)'in "hızlı" yürütülmesinin kullanımı nedir?

ortam güncellemeleri, bu durumda geçmiş güncellemeleri... ve bu beklenti için farklı algoritmalar ortaya çıkıyor...

sonuçta tarih güncellenene kadar daha ileri gitmeyeceğiz... yani bu hızdan bir fayda gelmez...

Muhtemelen bu, OrderSend ve OrderSendAsync'in terminalde paralel olarak yürütülebileceği ve OrderSend'den sonra geçmişin zorunlu senkronizasyonunun OrderSendAsync, OnTrade, OnTradeTransaction 'ı etkileyerek onları yavaşlatacağı beklentisiyle uygulanır.
 
Andrey Khatimlianskii :
Bu yerleşik dil işlevleriyle ilgili değil, standart kitaplıkla ilgili.
OrderSend'in içindeki işlem geçmişinin güncellenmesini bekleyebileceği, ancak beklemediği yerleşik dil işlevlerinden bahsediyorum. :)
Koltuk değneğiniz var diyorsunuz ama nedir, güvenilmez. İyi bir güvenilir koltuk değneği örneği verin.
Ben diyorum ki - koltuk değneği olmadan da yapabilirsiniz. Geliştiriciler OrderSend'in davranışını değiştirmeye tenezzül ederse. MT4'teki gibi yapın.
Peki - ya da yine de alternatif bir varyant. OrderSendMT4Style işlevi ekleyin. :)
 

OrderSend'in çok basit bir aşırı yüklemesi kendi başına yazılır: OnTrade bir yanıt döndürene kadar, sonraki tüm OrderSend'ler false döndürür. Yanıt alındığında - zorunlu yanlış iptal edilir.

Güvenlik Konseyi'ne eklenmesi gereken bu karardır. Ve kendin kullan.

Aynı prensibe göre bool CTrade::IsHistoryLoad ( const string Symb = NULL ) öğesini SB'ye ekleyin.

Ve o zaman koltuk değneği yok! Her iki işlevi de kendiniz yazmak kolaydır.

ZY Tamamen dolu olmak istiyorsanız (SB için değil), uygun senkronizasyon geldiğinde OnTrade'de OnTick ve OnTimer'ı kendiniz arayın.

 

Ne tür koltuk değneği yazılmıştır... void OnTradeTransaction() işlevinin davranışını inceleyin

 /*********************TradeTransaction function*********************/
void OnTradeTransaction ( const MqlTradeTransaction & trans,
                         const MqlTradeRequest & request,
                         const MqlTradeResult & result)
{
       if (trans.type == TRADE_TRANSACTION_DEAL_ADD )
       {
         if (! PositionSelectByTicket (trans.position))
         {
           //Print("********* закрылась позиция ", trans.position);
           closedPosition(trans);
         }
         if ( PositionSelectByTicket (trans.position))
         {
           //Print("********* отккрылась позиция ", ", ", EnumToString(trans.deal_type), ", ", trans.position);
           openedPosition(trans);
         }
       }
       
} /*******************************************************************/

Ayrıca pozisyon ve sipariş açma hatalarını da işleyin.

 
Alexey Viktorov :

Ne tür koltuk değneği yazılmıştır... void OnTradeTransaction() işlevinin davranışını inceleyin

Ayrıca pozisyon ve sipariş açma hatalarını da işleyin.

Konuyu çapraz olarak okudunuz.
 
fxsaber :
Konuyu çapraz olarak okudunuz.

Hayır, sadece dikey olarak. Her satırın sadece ilk harfi.

 
Andrey Khatimlianskii :

Bu basit aşırı yükleme ile tek bir cihazdaki 2 Uzman Danışman nasıl çalışacak?

Ne yazık ki, yalnızca bir koltuk değneği aracılığıyla - terminalin global bir değişkeni .
Neden: