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

 
Maksim Burov Yorum eklersem görsel test cihazının neden yavaşladığını söyleyebilir misiniz?
Bunu düzeltmek için hangi seçenekler var?
Optimizasyon hızını etkiler mi?

Kanvas kullanmak zorunda değilsiniz.

Yorumun görselleştirme ile test edeni yavaşlatmaması için, yorumun 30 milisaniyeden daha sık çağrılmaması gerekir.

Örneğin bunun gibi:

   static uint lastCalc= 0 ;
   uint cur= GetTickCount();
   if (cur-lastCalc> 30 ) {
      Comment("blablabla");
      lastCalc=cur; 
   }
Veya değerleri atlamamak önemliyse Comment yerine Print kullanın.

Herhangi bir değerin çıktısının daha iyi görselleştirilmesi önemliyse, kanvas daha iyidir.

https://www.mql5.com/ru/forum/277867/page8#comment_19186284
 
Maksim Burov Yorum optimizasyon hızını etkilemez.
 
Maksim Burov #:

Bilgiler periyodik olarak değişiyor.
Örneğin en düşük açılış fiyatına sahip pozisyonu görmek istiyorum. Ya da son kapanan pozisyonun tick'ini bilmek.
Her şeyi print'e yazabilirsiniz ama bakmaya elverişli değil, kaçırabilirsiniz. Ve böylece nerede hata yaptığımı hemen görebiliyorum.

Bilgiler her tikte değişmiyor mu? Nikolay ayrıca çıktıyı bir zaman aşımından sonra yapabileceğinizi ve böylece bu çıktının sıklığını azaltabileceğinizi önerdi.
 

Yardımlarınız için çok teşekkür ederim.
Şimdi başka bir görevim var.

Belirli bir işaretten sonra kapatılan tüm emirlerin karını sayan bir işlev var.
Kontrol için emir (pozisyon) kapanış zamanı eklendi.
Her şey MQL4'te yazıldığından ve şimdi MQL5'te yeniden yazıldığından, bu kontrolün nasıl doğru ve yetkin bir şekilde oynanacağı sorusu ortaya çıktı.

Basitçe söylemek gerekirse, kod MQL5'te nasıl yeniden yazılır)

double CalculateProfitHistory() 
{
   double profit = 0;
   int  i, ototal = OrdersHistoryTotal();

   for(i = ototal-1; i >=0; i--)
   {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
      {
         if(OrderSymbol() == Symbol() && OrderCloseTime() > 0)
         {
            if(OrderType() == OP_BUY || OrderType() == OP_SELL)
            {
               if(OrderMagicNumber() == Magic )
               {
                  if (LockTicket !=0)
                  {
                     if (OrderTicket() >= LockTicket)
                     {
                        profit += OrderProfit()+OrderCommission()+OrderSwap();
                     }                  
                  }
               }
            }
         }
      }
   }
   return(profit);
}
 
Maksim Burov #:

Yardımlarınız için hepinize çok teşekkür ederim.
Şimdi başka bir meydan okuma.

Belirli bir işaretten sonra kapanan tüm emirlerin karını sayan bir işlev vardır.
Kontrol için emir (pozisyon) kapanış zamanı eklendi.
Her şey MQL4'te yazıldığından ve şimdi MQL5'te yeniden yazıldığından, bu kontrolün nasıl doğru ve yetkin bir şekilde oynanacağı sorusu ortaya çıktı.

Basitçe söylemek gerekirse, MQL5'te kodun nasıl yeniden yazılacağı)

// сначала выбираем нужный интервал
HistorySelect(TimeStart,TimeCurrent()+10);

// перебираем ордера в интервале
for(i=HistoryOrdersTotal()-1;i>=0;i--)
         {
          ord=HistoryOrderGetTicket(i);

         // далее получаем (или сразу сравниваем) любые свойства ордера, типа
          o_sym=HistoryOrderGetString(ord, ORDER_SYMBOL);
          o_magic=HistoryOrderGetInteger(ord, ORDER_MAGIC);
          ...
         }

Bunun gibi bir şey.

 
Maksim Burov #:

Yardımlarınız için hepinize çok teşekkür ederim.
Şimdi başka bir meydan okuma.

Belirli bir işaretten sonra kapanan tüm emirlerin karını sayan bir işlev vardır.
Kontrol için emir (pozisyon) kapanış zamanı eklendi.
Her şey MQL4'te yazıldığından ve şimdi MQL5'te yeniden yazıldığından, bu kontrolün nasıl doğru ve yetkin bir şekilde oynanacağı sorusu ortaya çıktı.

Basitçe söylemek gerekirse, MQL5'te kodun nasıl yeniden yazılacağı)

Aranacak olan siparişler (önceki gönderi) değil, fırsatlar olduğundan, bu kodu kullanmak en uygunudur

HistoryPosition - неопубликованный функционал MQL5-языка.
HistoryPosition - неопубликованный функционал MQL5-языка.
  • 2023.11.22
  • www.mql5.com
HistoryPositionsTotal Возвращает количество всех закрытых позиций в истории. HistorySelect() не влияет на результат данной функции. int HistoryPositionsTotal(); Возвращаемое значение Значение типа
 
JRandomTrader #:

Onun gibi bir şey.

Başarısız oldum( Kodumun temelini biraz daha detaylandırabilir misiniz?

 
Maksim Burov #:

Başarısız oldum( Koduma göre biraz daha detaylandırabilir misiniz?

Belki de Aleksandr Slavskii'nin varyantına bakmak daha iyi olacaktır. MQL4 ile ve hedging ile de çalışmadım.

Ya da buraya ve her ihtimale karşı buraya dikkat edin.

 
JRandomTrader #:

Belki de Aleksandr Slavskii'nin varyantına bakmak daha iyi olacaktır. MQL4 ile çalışmadım ve hedging ile de çalışmadım.

Ya da buraya ve her ihtimale karşı buraya dikkat edin.

Daha iyisi yok. Bunlar fxsaber'in olağan işlevleridir.

Varyantınız oldukça kabul edilebilir, sadece emirleri işlemlerle değiştirmeniz gerekiyor. Kar, komisyon ve takas emirlere göre değil işlemlere göre saklanır.

 
Merhaba, VPS ile ilgili bir sorunum var. MT4 kapalıyken telefonuma bildirim gelmiyor. Platform açıkken bildirimler çalışıyor. Lütfen birisi bana neyin yanlış olabileceği konusunda tavsiyede bulunabilir mi? Teşekkür ederim
Neden: