Yeni başlayanlardan sorular MQL5 MT5 MetaTrader 5 - sayfa 658
![MQL5 - MetaTrader 5 müşteri terminalinde yerleşik ticaret stratejileri dili](https://c.mql5.com/i/registerlandings/logo-2.png)
Ticaret fırsatlarını kaçırıyorsunuz:
- Ücretsiz ticaret uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Şimdi basit bir danışmanla kontrol edelim...
Kontrol etmeye gerek yok. Mantık MQL4'tekiyle aynıdır: Kar, Komisyon ve Takas ayrı varlıklardır.
Şimdi basit bir danışmanla kontrol edelim...
Vladimir, sonuç şu ki dördünde şunu yapıyorum:
swap= OrderSwap ();
commission= OrderCommission ();
if (swap+commission< 0.0 ) {
costs= NormalizeDouble ( MathAbs (((swap+commission)/( SymbolInfoDouble (_symbol, SYMBOL_TRADE_TICK_VALUE )*ol))* _Point ), _Digits );
} else {
costs= 0.0 ;
}
// прибавляем количество пипок
if ((( Bid -(br+costs+((BreakevenStep* _Point )*D)))>=op) && typ== 0 )
{
OrderModify (...);
}
Beşincide nasıl yapılır?
Vladimir, sonuç şu ki dördünde şunu yapıyorum:
swap= OrderSwap ();
commission= OrderCommission ();
if (swap+commission< 0.0 ) {
costs= NormalizeDouble ( MathAbs (((swap+commission)/( SymbolInfoDouble (_symbol, SYMBOL_TRADE_TICK_VALUE )*ol))* _Point ), _Digits );
} else {
costs= 0.0 ;
}
// прибавляем количество пипок
if ((( Bid -(br+costs+((BreakevenStep* _Point )*D)))>=op) && typ== 0 )
{
OrderModify (...);
}
Beşincide nasıl yapılır?
Lütfen kodla birlikte gösterin, işte doğrudan kod mql5'te ve tercihen saptırma olmadan
//| Get the property value "POSITION_COMMISSION" |
//+------------------------------------------------------------------+
double CPositionInfo::Commission( void ) const
{
return ( PositionGetDouble ( POSITION_COMMISSION ));
}
//+------------------------------------------------------------------+
//| Get the property value "POSITION_SWAP" |
//+------------------------------------------------------------------+
double CPositionInfo::Swap( void ) const
{
return ( PositionGetDouble ( POSITION_SWAP ));
}
//+------------------------------------------------------------------+
//| Get the property value "POSITION_PROFIT" |
//+------------------------------------------------------------------+
double CPositionInfo::Profit( void ) const
{
return ( PositionGetDouble ( POSITION_PROFIT ));
}
Bu neredeyse imkansız! SB'den çıkarıldı, doğrudan kod
//| Get the property value "POSITION_COMMISSION" |
//+------------------------------------------------------------------+
double CPositionInfo::Commission( void ) const
{
return ( PositionGetDouble ( POSITION_COMMISSION ));
}
//+------------------------------------------------------------------+
//| Get the property value "POSITION_SWAP" |
//+------------------------------------------------------------------+
double CPositionInfo::Swap( void ) const
{
return ( PositionGetDouble ( POSITION_SWAP ));
}
//+------------------------------------------------------------------+
//| Get the property value "POSITION_PROFIT" |
//+------------------------------------------------------------------+
Belgelere yazmayı unuttum ama bu " POSITION_COMMISSION " işe yarıyor mu?
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Hatalar, hatalar, sorular
fxsaber , 2016.07.19 12:40
Test cihazındaki (RoboForexEU-MetaTrader 5) POSITION_COMMISSION özelliği her zaman sıfır komisyon döndürür.
Ayrıca POSITION_COMMISSION (== 8) yardım ve meta düzenleyicide (vurgulama) eksik, ancak derleyici tanıdık. Pozisyon komisyonunun başka bir (çalışan) yöntemle belirlenmesi zor değildir. POSITION_COMMISSION özelliği bir kalıntı mı?
{
double Commission = :: PositionGetDouble ( POSITION_COMMISSION );
// На случай, если POSITION_COMMISSION не работает
if (Commission == 0 )
{
const ulong Ticket = MT4ORDERS::GetPositionDealIn();
if (Ticket > 0 )
{
const double LotsIn = :: HistoryDealGetDouble (Ticket, DEAL_VOLUME );
if (LotsIn > 0 )
Commission = :: HistoryDealGetDouble (Ticket, DEAL_COMMISSION ) * :: PositionGetDouble ( POSITION_VOLUME ) / LotsIn;
}
}
return (Commission);
}
Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum
Yeni Başlayanlardan Sorular
fxsaber , 2016.10.29 16:23
MT4Orders kitaplığını empoze etmiyorum. Ama belki eski güzel OrderCommission'u aramak daha kolay olurdu?
Yine de sadece hedge hesaplarında değil, aynı zamanda nette de çalışır.
Şimdi basit bir danışmanla kontrol edelim...
Burada: POSITION_PROFIT , pozisyon kârını gösterir
. Bu, takas ve benzerlerini hesaba katmaz.
Vladimir, sonuç şu ki dördünde şunu yapıyorum:
swap= OrderSwap ();
commission= OrderCommission ();
if (swap+commission< 0.0 ) {
costs= NormalizeDouble ( MathAbs (((swap+commission)/( SymbolInfoDouble (_symbol, SYMBOL_TRADE_TICK_VALUE )*ol))* _Point ), _Digits );
} else {
costs= 0.0 ;
}
// прибавляем количество пипок
if ((( Bid -(br+costs+((BreakevenStep* _Point )*D)))>=op) && typ== 0 )
{
OrderModify (...);
}
Beşincide nasıl yapılır?
Komisyon öyle öngörülemez bir maddedir ki, ancak kapalı bir işlem için belirlenebilir. Açık bir pozisyondan sadece cari karı (swap etkisini veya komisyon etkisini dikkate almayan) ve takası öğrenebilirsiniz. İşte kod:
" m_trade.PositionClose(Symbol());" satırına bir kesme noktası koyun ve geriye dönük testi çalıştırın. Test cihazı kesme noktasında durduğunda, Kar ve Takas sütunlarındaki sayıları Test Cihazının Günlüğünde yazdırılacak sayılarla karşılaştırın.
Burada: POSITION_PROFIT , pozisyon kârını gösterir
. Bu, takas ve benzerlerini hesaba katmaz.
TAMAM. Anladım.
fxsaber'ın çözümü iyi , uygulanmış.
Prensip olarak, programımı neredeyse hiç problem yaşamadan MQL4'ten MQL5'e aktardım.
Nüanslar - yukarıda.
Herkese çok teşekkürler!