Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
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
- Publicado por:
- Vladimir Karputov
- Visualizações:
- 1262
- Avaliação:
- Publicado:
- 2017.02.01 08:03
- Atualizado:
- 2018.02.22 14:28
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Autor da ideia — George F.Peskov, autor do código mq5 — barabashkakvn.
Sistema de negociação com base na interseção de duas iMA, MA, o Stop-Loss é colocado automaticamente a partir do valor ATR. Ao abrir e fechar uma posição, uma mensagem é enviada para o e-mail. Você pode escolher os parâmetros usando o teste de estratégia com base no histórico, quer dizer, um tipo de back-test.
Obtenção dos valores dos indicadores na primeira e segunda barra:
//--- get Moving Average
mas=iMAGet(handle_iMA1,1); // indicador média móvel longo 12
maf=iMAGet(handle_iMA2,1); // indicador média móvel curto 4
mas_p=iMAGet(handle_iMA1,2); // indicador média móvel longo 12
maf_p=iMAGet(handle_iMA2,2); // indicador média móvel curto 4
Atr=iATRGet(0);
mas=iMAGet(handle_iMA1,1); // indicador média móvel longo 12
maf=iMAGet(handle_iMA2,1); // indicador média móvel curto 4
mas_p=iMAGet(handle_iMA1,2); // indicador média móvel longo 12
maf_p=iMAGet(handle_iMA2,2); // indicador média móvel curto 4
Atr=iATRGet(0);
Verificação das condições de venda:
//--- Condições de venda
if(maf<mas && maf_p>=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Ask()+Atr,Digits());
res=m_trade.Sell(lots,Symbol(),m_symbol.Bid(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation SELL by"+Symbol()+"";
sBodyLetter="Deal Sell by"+Symbol()+" at "+DoubleToString(m_symbol.Bid(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
if(maf<mas && maf_p>=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Ask()+Atr,Digits());
res=m_trade.Sell(lots,Symbol(),m_symbol.Bid(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation SELL by"+Symbol()+"";
sBodyLetter="Deal Sell by"+Symbol()+" at "+DoubleToString(m_symbol.Bid(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
Verificação de condições de compra:
//--- Condição de compra
if(maf>mas && maf_p<=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Bid()-Atr,Digits());
res=m_trade.Buy(lots,Symbol(),m_symbol.Ask(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation BUY at"+Symbol()+"";
sBodyLetter="Deal Buy at"+Symbol()+" for "+DoubleToString(m_symbol.Ask(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
if(maf>mas && maf_p<=mas_p)
{
double lots=LotsOptimized();
double stop_loss=NormalizeDouble(m_symbol.Bid()-Atr,Digits());
res=m_trade.Buy(lots,Symbol(),m_symbol.Ask(),stop_loss,0);
if(SndMl==true && res)
{
sHeaderLetter="Operation BUY at"+Symbol()+"";
sBodyLetter="Deal Buy at"+Symbol()+" for "+DoubleToString(m_symbol.Ask(),Digits())+
", and set stop/loss at "+DoubleToString(stop_loss,Digits())+"";
sndMessage(sHeaderLetter,sBodyLetter);
}
return;
}
Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/16949

Indicador em tempo real, concebido para escalpelamento em FORTS.

Sistema de negociação de tendência Exp_FisherTransform_X2 plotado com base nos sinais de dois indicadores FisherTransform.

Expert Exp_2pbIdealMA com base nas interseções de duas médias móveis com recarregamentos (abertura de ordem adicional na direção da posição já existente).

Commodity Channel Index fractal.