Guarda come scaricare robot di trading gratuitamente
Ci trovi su Telegram!
Unisciti alla nostra fan page
Unisciti alla nostra fan page
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
- Pubblicati da::
- Vladimir Karputov
- Visualizzazioni:
- 4056
- Valutazioni:
- Pubblicato:
- 2017.03.02 09:51
-
Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance
The EA uses two iStochastic (Stochastic Oscillator) indicators and one iRSI (RSI, Relative Strength Index).
Author of the idea — cxa, author of the MQL5 code — barabashkakvn.
Calculates the lot size based on the analysis of closed trades:
//+------------------------------------------------------------------+
//| Calculating optimal lot size |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int losses=0; // number of losses deals without a break
//--- select lot size
lot=NormalizeDouble(m_account.FreeMargin()*MaximumRisk/1000.0,2);
//--- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
//--- request trade history
HistorySelect(TimeCurrent()-86400,TimeCurrent()+86400);
//---
uint total=HistoryDealsTotal();
//--- for all deals
for(uint i=0;i<total;i++)
{
if(!m_deal.SelectByIndex(i))
{
Print("Error in history!");
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);
}
//--- return lot size
if(lot<0.1)
lot=0.1;
return(lot);
}
//| Calculating optimal lot size |
//+------------------------------------------------------------------+
double LotsOptimized()
{
double lot=Lots;
int losses=0; // number of losses deals without a break
//--- select lot size
lot=NormalizeDouble(m_account.FreeMargin()*MaximumRisk/1000.0,2);
//--- calcuulate number of losses orders without a break
if(DecreaseFactor>0)
{
//--- request trade history
HistorySelect(TimeCurrent()-86400,TimeCurrent()+86400);
//---
uint total=HistoryDealsTotal();
//--- for all deals
for(uint i=0;i<total;i++)
{
if(!m_deal.SelectByIndex(i))
{
Print("Error in history!");
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);
}
//--- return lot size
if(lot<0.1)
lot=0.1;
return(lot);
}
Results of Backtests on EURUSD and USDJPY:
Tradotto dal russo da MetaQuotes Ltd.
Codice originale https://www.mql5.com/ru/code/17236

The Expert Advisor searches for the momentum: iClose(t2)-iClose(t1).

The Expert Advisor opens or closes positions at the intersection of lines.

The Expert Advisor uses the values of two iMA (Moving Average, MA) indicators.

The Expert Advisor places two pending orders (BuyStop and SellStop) with the specified expiration.