Der Altarius RSI Stohastik ist ein leistungsstarker Expert Advisor (EA), der auf zwei iStochastic-Indikatoren (Stochastischer Oszillator) und einem iRSI (Relative Strength Index) basiert. Dieser EA ist ideal für Trader, die ihre Strategie automatisieren und die Marktbewegungen präzise analysieren möchten.
Ideengeber – cxa, Entwickler des MQL5 Codes – barabashkakvn.
Der EA berechnet die Lotgröße basierend auf der Analyse vergangener Trades:
//+------------------------------------------------------------------+
//| Berechnung der optimalen Lotgröße |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int losses=0; // Anzahl der verlustreichen Trades ohne Break
//--- Lotgröße auswählen
lot=NormalizeDouble(m_account.FreeMargin()*MaximumRisk/1000.0,2);
//--- Anzahl der verlustreichen Orders ohne Break berechnen
if(DecreaseFactor>0)
{
//--- Handelsgeschichte anfordern
HistorySelect(TimeCurrent()-86400,TimeCurrent()+86400);
//---
uint total=HistoryDealsTotal();
//--- für alle Deals
for(uint i=0;i<total;i++)
{
if(!m_deal.SelectByIndex(i))
{
Print("Fehler in der Historie!");
break;
}
if(m_deal.Symbol()!=Symbol() || m_deal.Entry()!=DEAL_ENTRY_OUT)
continue;
//---
if(m_deal.Profit()>0)
break;
if(m_deal.Profit()<0)
losses++;
}
if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- Lotgröße zurückgeben
if(lot<0.1)
lot=0.1;
return(lot);
}
//| Berechnung der optimalen Lotgröße |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int losses=0; // Anzahl der verlustreichen Trades ohne Break
//--- Lotgröße auswählen
lot=NormalizeDouble(m_account.FreeMargin()*MaximumRisk/1000.0,2);
//--- Anzahl der verlustreichen Orders ohne Break berechnen
if(DecreaseFactor>0)
{
//--- Handelsgeschichte anfordern
HistorySelect(TimeCurrent()-86400,TimeCurrent()+86400);
//---
uint total=HistoryDealsTotal();
//--- für alle Deals
for(uint i=0;i<total;i++)
{
if(!m_deal.SelectByIndex(i))
{
Print("Fehler in der Historie!");
break;
}
if(m_deal.Symbol()!=Symbol() || m_deal.Entry()!=DEAL_ENTRY_OUT)
continue;
//---
if(m_deal.Profit()>0)
break;
if(m_deal.Profit()<0)
losses++;
}
if(losses>1)
lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
}
//--- Lotgröße zurückgeben
if(lot<0.1)
lot=0.1;
return(lot);
}
Hier sind die Ergebnisse der Backtests für das Währungspaar EURUSD und USDJPY:
Kommentar 0