Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 1404

 
MT4'te mevcut bir ticaret robotu var, bir ticaret hesabına bağlı bir kod ekliyorum ama yine de çalışmıyor. Bir hata atar. Bunun gerçekleşmesine yardımcı olacak birine ihtiyacımız var. benim telgrafım   @Starinkov Çok minnettar olacağım)))
 

Umarım çeviri sadıktır, ama belli ki olmayacak..

Bu ve diğer nedenlerden dolayı Global THEADS'e ihtiyacımız YOKTUR...

Aksi takdirde, Bölgesel Forumlarımız olmazdı...

Garip hareket...

:(

 
Merhaba! M1, M2 vb. gibi küçük zaman dilimlerinde optimizasyonu hızlandırmak ve stratejiyi optimize etmek için 24 çekirdekli bir bilgisayar kurdum. Başlıyorum ve sürecin periyodik olarak durduğunu ve uzun bir süre askıda kaldığını görüyorum. Bununla ilgili üç resim ekliyorum. Eski bir bilgisayarda (8 çekirdekli) böyle bir şey olmaz. Üstelik böyle bir frenlemenin sonucunda güçlü bir bilgisayar kullanmanın hiçbir faydası yoktur. Şu anda 8 çekirdeğin 24x'ten daha hızlı sonuç verdiğini görüyorum. Ve süreci 10 kat hızlandırmak istedim. Belki bir yerde bir şeyi yapılandırmanız gerekir? Sorunun ne olabileceğini bilen biri varsa lütfen bana bildirin.
 

Merhaba.

Herhangi bir EA'ya dahil edilebilecek evrensel bir içerme dosyası yapmak istiyorum. Ve böylece mesele, herhangi bir ek olmaksızın sadece bir içerme ile sınırlıdır. kod.

Sorun, dosyanın giriş noktası olarak OnTimer() kullanmasıdır.

Ya EA (dahil etme dosyamın bağlı olduğu) OnTimer()'ı da kullanıyorsa? Bir çözüm var mı?

 

Tünaydın. Moex borsasında işlem yapıyorum. Broker Keşfi. Pozisyonlar birkaç enstrüman için açıksa , robot kısmi kapatma talebi gönderirken onları karıştırır (örneğin, Magnit hisseleri için Sberbank hisselerinin fiyatı ile bir talep gönderebilir. Yani, talepteki enstrüman Magnit ve fiyatlar Sber için belirtilmiştir) veya sadece istek göndermez. Uzun pozisyon için kapanış algoritmasının kodu (Fiyat_Kapat_1_Buy enstrümanının fiyatına ulaşıldığında başlatılır):

 void Price_Close_1_Buy()
  {

   MqlTradeRequest arequest;
   MqlTradeResult aresult;
   ZeroMemory (arequest);
   ZeroMemory (aresult);

   for ( int i= PositionsTotal ()- 1 ; i>= 0 ; i--)
      {
       if ( Symbol ()== PositionGetSymbol (i))
      {
       arequest.action   = TRADE_ACTION_DEAL ;
       arequest.position = PositionGetTicket (i);
       arequest.symbol   = Symbol ();
       arequest.volume   = NormalizeDouble ((Lots_Close_1/ 100 *Lots_current()), 0 );
       arequest.price    = aposition.PriceCurrent();
       arequest.type_filling = ORDER_FILLING_FOK ;
       arequest.type     = ORDER_TYPE_SELL ;
       Price_Close_1_Buy_Request_Send = true ;
      }
       OrderSend (arequest,aresult);
       Print ( "=================================================================================================== " );
       Print (asymbol.Name());
       Print ( "Price_Close_1_Buy_request() " ,arequest.price);
       Print ( "Lots_Close_1_Buy_request() " ,arequest.volume);
       Print ( "Result " , aresult.comment);
       Print ( "Retcode " ,aresult.retcode);
      }
  }
 
leonerd # :

Merhaba.

Herhangi bir EA'ya dahil edilebilecek evrensel bir içerme dosyası yapmak istiyorum. Ve böylece mesele, herhangi bir ek olmaksızın sadece bir içerme ile sınırlıdır. kod.

Sorun, dosyanın giriş noktası olarak OnTimer() kullanmasıdır.

Ya EA (dahil etme dosyamın bağlı olduğu) OnTimer()'ı da kullanıyorsa? Bir çözüm var mı?

Bunu asla yapma.

Sadece tavsiye. ikna etmeyeceğim.

 
Manter84 Pozisyonlar birkaç enstrüman için açıksa , robot kısmi kapatma talebi gönderirken onları karıştırır (örneğin, Magnit hisseleri için Sberbank hisselerinin fiyatı ile bir talep gönderebilir. Yani, talepteki araç Magnit ve fiyatlar Sber için belirtilmiştir) veya sadece istek göndermez. Uzun pozisyon için kapanış algoritmasının kodu (Fiyat_Kapat_1_Buy enstrümanının fiyatına ulaşıldığında başlatılır):
Fiyat konusunda - kazmak
aposition.PriceCurrent()
 
Koldun Zloy # :

Bunu asla yapma.

Sadece tavsiye. ikna etmeyeceğim.

Bunlar projenin gereksinimleridir.

 

Ve varsayılan OrderSend () nasıl geçersiz kılınır?

 #define OrderSend ( MqlTradeRequest , MqlTradeResult )  MyOrderSend( MqlTradeRequest , MqlTradeResult )

Yukarıya bir satır eklendi .

MyOrderSend()'imde bazı hesaplamalar yapıyorum ve tekrar OrderSend()'i çağırıyorum. Onlar. Yerel OrderSend() öğesini çağırmak istiyorum, ancak bunun yerine bir özyineleme alıyorum ve MyOrderSend() yeniden çağrılıyor.

Ve bu çağrı da yardımcı olmuyor ::OrderSend()
 
leonerd bir satır ekledim .

MyOrderSend()'imde bazı hesaplamalar yapıyorum ve tekrar OrderSend()'i çağırıyorum. Yerel OrderSend() işlevini çağırmak istiyorum, ancak bunun yerine bir özyineleme alıyorum ve MyOrderSend() yeniden çağrılıyor.

Bu hiç işe yaramıyor. #define, program kodundaki ilki (çağrıyı) ikincisiyle değiştirir, çünkü OrderSend(..) her seferinde MyOrderSend(..) ile değiştirilir.