"MetaTrader 5 Emirler, Pozisyonlar ve Yatırımlar" makalesi için tartışma - sayfa 5

 

İşte fxsaber'den bukonuda bilgi:https://www.mql5.com/ru/forum/366029/page3#comment_22547881 https://www.mql5.com/ru/forum/366029/page3#comment_22547881


RashidUmarov

lütfen geliştiricilerden yanıt vermelerini isteyin.

Библиотеки: TradesID
Библиотеки: TradesID
  • 2021.05.21
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: TradesID
 

Tarihle çalışma frenlerinin yayınlanmasından sonra, geliştiriciler tarafından önbellek oluşturmak için çok fazla çalışma yapıldı. Frenler ortadan kalktı.

Belki de daha ekonomik bir önbellekleme mekanizması vardır. Ancak frenlere izin vermek kesinlikle imkansızdır.


ZY Geçmişle en hızlı şekilde nasıl çalışılacağı konusunda herhangi bir yorum yok. Şu anda %100 hızlı yol her yerde sadece HistorySelect'i çağırmaktır.

HistorySelect(0, INT_MAX)
 
fxsaber:

Tarihle çalışma frenlerinin yayınlanmasından sonra, geliştiriciler tarafından önbellek oluşturmak için çok fazla çalışma yapıldı. Frenler gitmiş.

Belki de daha ekonomik bir önbellekleme mekanizması vardır. Ancak frenlere izin vermek kesinlikle mümkün değildir.


ZY Geçmiş ile çalışmanın en hızlı yolu hakkında yorum yok. Şu anda %100 hızlı yol her yerde sadece HistorySelect'i çağırmaktır.

Neden olmasın
HistorySelect(t, INT_MAX)

Burada t çok uzun zaman önce olmayan ve çağrıdan çağrıya değişmeyen keyfi bir tarihtir (tüm program için sabit bir birleşik)?

 
mktr8591:
Neden olmasın

Burada t çok eski olmayan ve çağrıdan çağrıya değişmeyen keyfi bir tarihtir (tüm program için aynı olan bir sabit)?

Bunun önbelleği küçülteceğinden emin değilim.

 
fxsaber:

Bunun önbelleği küçültüp küçültmeyeceğinden emin değilim.

Tüketim azaldı. Başlangıçta reçete ediyordum.

bool HistorySelect2( const datetime From, const datetime To )
{
  static const datetime NewFrom = ::TimeCurrent() - 24 * 3600 & 30; // -Ay.
  
  return(::HistorySelect(From ? From : NewFrom, To));
}

#define HistorySelect HistorySelect2

Ancak ciddi sorunlar nedeniyle bırakmak zorunda kaldım.

 
#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnStart()
{
  PRINT(TerminalInfoInteger(TERMINAL_MEMORY_USED));
  
  if (HistorySelect(0, INT_MAX))
  {
    PRINT(HistoryDealsTotal());
    PRINT(HistoryOrdersTotal());
    
    PRINT(MQLInfoInteger(MQL_MEMORY_USED));
    PRINT(TerminalInfoInteger(TERMINAL_MEMORY_USED));
  }
}

Terminal'de bir M1 grafiği, 5000 çubuk, bir sembol, kaynak ve grafik olmadan sonucu çalıştırın.

TerminalInfoInteger(TERMINAL_MEMORY_USED) = 426
HistoryDealsTotal() = 134502
HistoryOrdersTotal() = 218740
MQLInfoInteger(MQL_MEMORY_USED) = 1
TerminalInfoInteger(TERMINAL_MEMORY_USED) = 789

Bu çok fazla. 10 eşzamanlı (OrderSend) EA 4 gigabayt yer. İki seçenek var:

  1. Yeni bir hesap açın, ona para aktarın ve üzerinde işlem yapmaya devam edin. Ne yazık ki, bu her zaman mümkün değildir.
  2. Tüm botları asenkroni(OrderSendAsync) aracılığıyla tek bir botta birleştirin. Bu, süper aktif ticaret durumunda hataları yakalamanın çok zor bir çeşididir.
İkinci noktada, tek bir Uzman Danışmana gömülü botların bir yöneticisini (GUI vb.) yazmak hala gereklidir.
 
fxsaber:



  1. Asenkroni(OrderSendAsync) aracılığıyla tüm botları tek bir botta birleştirin. Süper aktif ticarette hata yakalamanın çok ağır bir çeşidi.

Başka bir yolu yoktur. (tabii ki eski geçmişi kesip geçmişle çalışma algoritmasının tamamını yeniden yapmadığınız sürece, ancak bu yalnızca MQ eski sıralamayı döndürmezse geçerlidir).

 

Merhaba arkadaşlar!

MetaQuotes 'un bu makaleyi Ticaret Sınıfları(CAccountInfo, CSymbolInfo, COrderInfo, CHistoryOrderInfo, CPositionInfo, CDealInfo, CTrade, CTerminalInfo) ile yükseltmesi yararlı olacaktır. Nesne Yönelimli paradigma altında EA geliştirmek, önbelleği senkronize etme ve semboller, emirler, pozisyonlar, anlaşmalar, işlemler vb. üzerinden veri alma işlemlerini değiştirebilir (ve basitleştirebilir).

Haklı mıyım?

Documentation on MQL5: Standard Library / Trade Classes / CAccountInfo
Documentation on MQL5: Standard Library / Trade Classes / CAccountInfo
  • www.mql5.com
CAccountInfo - Trade Classes - Standard Library - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

lütfen si̇pari̇ş komi̇syonunu kar i̇le nasil hesaplayabi̇li̇rsi̇ni̇z?

" Kar += kar + takas + komisyon "

 

Lütfen sorunun cevabı konusunda yardımcı olun!

MT5 terminalindeki değişken pozisyon göstergeleri "Piyasa Değeri" ve "Kâr" terminalin kendisi tarafından çevrilmiş kotasyonlar ve sembol özellikleri temelinde mi hesaplanır, yoksa MT5 sunucusu tarafından çevrilir ve diskte önbelleğe alınır mı?

Önbelleğe alınıyorlarsa, alınan fiyat teklifleri ile mevcut "Piyasa Değeri" ve "Kâr" göstergeleri arasında senkronizasyonsuzluk yakalanması muhtemel midir?