Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Telegram!
Participe de nossa página de fãs
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Avalie seu funcionamento no terminal MetaTrader 5
Altarius RSI Stohastic - expert para MetaTrader 5
- Publicado por:
- Vladimir Karputov
- Visualizações:
- 1037
- Avaliação:
- Publicado:
- 2017.02.01 08:54
- Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
O Expert Advisor utiliza dois indicadores iStochastic (Stochastic Oscillator) e um iRSI (RSI, Relative Strength Index).
Autor da ideia — cxa, autor do código mq5 — barabashkakvn.
Ele calcula o tamanho do lote com base na análise de transações fechadas:
//+------------------------------------------------------------------+
//| Cálculo do tamanho ótimo do lote |
//+------------------------------------------------------------------+
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);
}
//| Cálculo do tamanho ótimo do lote |
//+------------------------------------------------------------------+
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);
}
Resultado do teste para EURUSD e USDJPY:
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/17236
gazonkos
O Expert Advisor trabalha na busca de impulso: iClose(t2)-iClose(t1).
SendCloseExpert Advisor que abre ou fecha uma posição no cruzamento de linhas.
2MA_4Level
No trabalho do Expert Advisor, são utilizados os valores de duas iMA (Moving Average, MA).
AutotradeO Expert Advisor coloca duas ordens pendentes (BuyStop e SellStop) com tempo de expiração especificado.