Sonsuza kadar harika ve korkunç MT4 (veya bir geçiş stratejisinin nasıl doğru bir şekilde geliştirileceği) - sayfa 27

 

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

MQL5'te OrderModify()?

Edward Munroe , 2021.05.27 00:51

Basit bir soru sorun, basit bir cevap alın!?! Neden mql5'teki neredeyse her şey bu kadar dağınık olmak zorunda?

İyi soru.

 

Geleneksel olarak, hafta sonundan önce basit bir görev.

Pozisyon 1 lot için açıktır . Scripti çalıştırdıktan sonra pozisyonun 0,9 lot olduğundan emin olmanız gerekir.

Komut dosyasının herhangi bir zamanda çalıştırılabileceği açıktır. Bu nedenle, birçok durumla karşılaşabilirsiniz.


Her zamanki gibi, sorunu klasik olarak çözmeye çalıştım.

 // Частичное закрытие позиции.

#include <Trade\Trade.mqh>

void OnStart ()
{
  CTrade Trade;
  
   if (Trade.Buy( 1 )) // Пытаемся открыть позицию на 1 лот.
  {
     const ulong Ticket = Trade.ResultOrder();
    
     // Ждем, пока не появится.
     while (! IsStopped () && ! PositionSelectByTicket (Ticket))
       Sleep ( 0 );
      
     // А теперь просто закрываем 0.1 лота в случае, если объем позиции равен 1.
     // Цикл - для эмуляции запуска скрипта в любой момент.
     while (! IsStopped () && PositionSelectByTicket (Ticket) && ( PositionGetDouble ( POSITION_VOLUME ) == 1 ))
      Trade.PositionClosePartial(Ticket, 0.1 );
  }
}


Bu betiği çalıştırmak 0,8 lotluk bir konum verir. 0.9'a ihtiyacımız var.

 
fxsaber :

Bu betiği çalıştırmak 0,8 lotluk bir konum verir. 0.9'a ihtiyacımız var.

2 sunucuda birkaç kez kontrol ettim, sadece 0.9'um var


testlerin mantığı anlaşılabilir - bir kene üzerinde yürütme uyumsuzluğundan kurtulmaya çalışıyoruz, bu sürecin genel şemasını bilmek istiyorum (tek kene ile nasıl senkronize edilir)

 
fxsaber :

Geleneksel olarak, hafta sonundan önce basit bir görev.


Eşkin kedisi! Ve 0.8'im var (MQDemo -0.9'da). Evet, bu tırmıklardan kaç tane olacak?

 
 
fxsaber :
Karar verdim.

Belki de şu anda bu başlıktaki kolayca formüle edilmiş tüm görevlerin en zor görevi budur.

MQL5 ticaret bölümünün mülkiyetinin çok güçlü bir şekilde doğrulanması.

 

sıfır SL ve TP ile bir satın alma emri açın, ardından SL ve TP 30 pp yerleştirin

MT4 için bu kod çalışır:

 void OnStart ()
{
   int ticket;
   if ((ticket = OrderSend ( _Symbol , OP_BUY, 0.1 , Ask, 30 , 0.0 , 0.0 )) < 0 ||
         ! OrderSelect (ticket, SELECT_BY_TICKET) ||
         !OrderModify(ticket, OrderOpenPrice(), NormalizeDouble (OrderOpenPrice() - 300 * _Point , _Digits ), NormalizeDouble (OrderOpenPrice() + 300 * _Point , _Digits ), OrderExpiration()))
   {
       Print ( "Error Open order # " , GetLastError ());
   }
}
 
Igor Makanu :

sıfır SL ve TP ile bir satın alma emri açın, ardından SL ve TP 30 pp yerleştirin

MT4 için bu kod çalışır:

Yaklaşık iki veya üç yıl önce, terminal düzeyinde performans tipi tanıma tanıtıldı. Şimdi, Market Execution ile bile, SL ve TP'yi ayarlayabilirsiniz ve terminalin kendisi emri iki ticaret emrine böler.

 
Igor Makanu :

sıfır SL ve TP ile bir satın alma emri açın, ardından SL ve TP 30 pp yerleştirin

Ortak görev.

Neden: