MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1815

 
Alexander Avksentyev # :

Düzeltildi, şimdi çalışıyor. Kesinlikle doğru değil, ama işe yarıyor.

Pozlamalar yanlış durur, üstesinden nasıl gelinir?

OrderOpenPrice()* Point 
OrderStopLoss()* Point

1.12500*Puan=0.0000112500

 
Tretyakov Rostyslav # :

1.12500*Puan=0.0000112500

 Print ( /*((*/ NormalizeDouble ((Bid - OrderOpenPrice()* Point ), Digits ) 

2021.12.15 00:26:55.086 2021.01.04 00:00:00 test1 EURUSD,M1: 1.22373


Ama ayrı ayrı sayarsan
 Print (/*(( NormalizeDouble ((Bid - */OrderOpenPrice()* Point /*), Digits )/*

2021.12.15 00:30:09.557 2021.01.04 00:00:00 test1 EURUSD,M1: 1.2238e-05

 Print (/*(( NormalizeDouble ((*/Bid - OrderOpenPrice()* Point /*
2021.12.15 00:34:05.979 2021.01.04 00:00:00 test1 EURUSD,M1: 1.223727762

 
secret , ticaret sunucusu tarafından sipariş işlemenin sonucunu hemen döndürdü.
Böyle bir işlevi mql5'te kendim yazmam gerekir mi?

OnTicaretİşlem

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
OnTradeTransaction - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexander Avksentyev # :

2021.12.15 00:26:55.086 2021.01.04 00:00:00 test1 EURUSD,M1: 1.22373


Ama ayrı ayrı sayarsan

2021.12.15 00:30:09.557 2021.01.04 00:00:00 test1 EURUSD,M1: 1.2238 e-05

2021.12.15 00:34:05.979 2021.01.04 00:00:00 test1 EURUSD,M1: 1.223727762

3-4 gönderi oku

Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам
  • 2021.12.14
  • www.mql5.com
В этой ветке я хочу начать свою помощь тем, кто действительно хочет разобраться и научиться программированию на новом MQL4 и желает легко перейти н...
 
Vitaly Muzichenko # :

OnTicaretİşlem

Teşekkür ederim. Sadece cehennem) MT5'teki algoritmik tüccarlar için ne kadar üzgünüm.
 
secret # :
Teşekkür ederim. Sadece cehennem) MT5'teki algoritmik tüccarlar için ne kadar üzülüyorum.

Buna değer, MT5'te siparişler birçok kez daha hızlı işlenir. Evet ve test etmek daha mantıklı, neredeyse hiç test cihazı yok.

 
Vitaly Muzichenko # :

3-4 gönderi oku

Evet yaptım. Şimdi anladım.

Teşekkürler, bunun bir hata olduğunu düşündüm, ama norm olduğu ortaya çıktı.
 
Tretyakov Rostyslav # :

1.12500*Puan=0.0000112500

Her şey düzeltildi, sonuç değişmedi.

Mantık meselesi olabilir mi?

Eh, bir şekilde TSL'yi açıyor, ama nasıl dur

 
Alexander Avksentyev # :

Her şey düzeltildi, sonuç değişmedi.

Mantık meselesi olabilir mi?

Eh, bir şekilde TSL'yi açıyor, ama nasıl dur

İşleviniz şöyle görünür:

 NormalizeDouble ((Bid - OrderOpenPrice()* Point ), Digits )

NormalizeDouble ((1.12700 - 1.12500/100000) ),5)

"Nokta" nın ne yaptığını anlamalısın

baskı yap

 Print ( DoubleToString ( NormalizeDouble ( Point , Digits ), Digits ));
 
Tretyakov Rostyslav # :

İşleviniz şöyle görünür:

NormalizeDouble ((1.12700 - 1.12500/100000) ),5)

"Nokta" nın ne yaptığını anlamalısın

baskı yap

önceki

 void TrailSL()
{
 if (iTrailStart <= 0.0 ) return ; 
 double tp,sl_lev;
 for ( int i= OrdersTotal ()- 1 ; i>= 0 ; i--)
    {
     if ( OrderSelect (i, SELECT_BY_POS,MODE_TRADES))
       {
         if (OrderSymbol() == Symbol () && OrderMagicNumber() == Magic)
          {
           if (OrderType() == OP_BUY) 
             {
               if (iTrailTakeProfit > 0.0 )
                {
                tp=OrderTakeProfit() + NormalizeDouble (iTrailTakeProfit * Point (), _Digits );
                 if ( NormalizeDouble (((tp - OrderTakeProfit())) < 0.0 , Digits )) return ;
                tp = OrderTakeProfit();
                } else tp = 0.0 ;
                 if ( NormalizeDouble (Bid - OrderOpenPrice(), Digits ) <= iTrailStart * MarketInfo( Symbol (),MODE_POINT) ); //true
                   {
                     if (OrderStopLoss() < OrderOpenPrice() || OrderStopLoss() == 0 && NormalizeDouble (Bid - OrderStopLoss(), Digits ) <= iTrailDist * MarketInfo( Symbol (),MODE_POINT)); //true
                      {
                       if (iTrailStep > 0.0 && OrderStopLoss() != 0.0 && NormalizeDouble ((Bid - OrderStopLoss()) - iTrailDist * MarketInfo( Symbol (),MODE_POINT), Digits ) < iTrailStep * MarketInfo( Symbol (),MODE_POINT)); //true
                        {
                         sl_lev = Bid - iTrailDist * MarketInfo( Symbol (),MODE_POINT);
                         if ( NormalizeDouble (Bid - sl_lev, Digits ) < MarketInfo( Symbol (),MODE_STOPLEVEL)); //false
                           {
                             if (!OrderModify(Forder,OrderOpenPrice(),sl_lev,tp, 0 ,Red)) return ;
                             Print ( "Не удалось модифицировать стоплосс ордера №" ,OrderTicket(), ". Ошибка: " , GetLastError ());
                           }
                        }
                      }
                   }
                }
             }

sonrasında

 void TrailSL()
{
   if (iTrailStart <= 0.0 || iTrailStep <= 0.0 )
       return ; 
      
   double sl_lev;
         
   for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
   {
       if (! OrderSelect (i, SELECT_BY_POS,MODE_TRADES))
         continue ;
      
       if (OrderSymbol() != Symbol () || OrderMagicNumber() != Magic)
         continue ;  
         
       if (OrderType() == OP_BUY) 
      {
         if ( NormalizeDouble (Bid - OrderOpenPrice(), Digits ) < iTrailStart * MarketInfo( Symbol (),MODE_POINT) )
             continue ;

         if (OrderStopLoss() >= OrderOpenPrice() || NormalizeDouble (Bid - OrderStopLoss(), Digits ()) < iTrailDist * MarketInfo( Symbol (),MODE_POINT))
             continue ;

         if (OrderStopLoss() == 0.0 || NormalizeDouble ((Bid - OrderStopLoss()) - iTrailDist * MarketInfo( Symbol (),MODE_POINT), Digits ) < iTrailStep * MarketInfo( Symbol (),MODE_POINT))
             continue ;

         sl_lev = Bid - iTrailDist * MarketInfo( Symbol (),MODE_POINT);
         if ( NormalizeDouble (Bid - sl_lev, Digits ) < MarketInfo( Symbol (),MODE_STOPLEVEL))
             continue ;
            
         if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl_lev, OrderTakeProfit(), 0 , clrRed ))
             Print ( "Не удалось модифицировать стоплосс ордера №" ,OrderTicket(), ". Ошибка: " , GetLastError ());
      }}}

Ama şimdi hiç açmak istemiyor.

Ne derleyicide ne de terminalde hata yok, sadece açılmıyor.

Bu sihirli sorun nedir?

Söyle bana ha?

Müdahale için özür dilerim.