MetaTrader5
CrossMA: Sistema de Trading para MetaTrader 5
Autor da ideia — George F.Peskov, criador do código MQL5 — barabashkakvn.O CrossMA é um sistema de trading que utiliza a interseção de duas Médias Móveis (iMA) para identificar oportunidades de compra e venda. O stop loss é ajustado automaticamente com base no valor do ATR, garantindo maior segurança nas operações. Além disso, sempre que uma nova posição é aberta ou fechada, uma mensagem é enviada por e-mail, mantendo você informado sobre suas operações. Os parâmetros podem ser ajustados através de backtesting para otimizar os resultados.Obtendo os valores dos indicadores nas primeiras barras://--- obter Média Móvel mas=iMAGet(handle_iMA1,1); // média móvel longa 12 maf=iMAGet(handle_iMA2,1); // média móvel curta 4 mas_p=iMAGet(handle_iMA1,2); // média móvel longa 12 maf_p=iMAGet(handle_iMA2,2); // média móvel curta 4 Atr=iATRGet(0);Verificando as condições para venda://--- Condição para 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="Operação VENDA por"+Symbol()+""; sBodyLetter="Negócio Venda por"+Symbol()+" a "+DoubleToString(m_symbol.Bid(),Digits())+ ", e stop/loss definido em "+DoubleToString(stop_loss,Digits())+""; sndMessage(sHeaderLetter,sBodyLetter); } return; }Verificando as condições para compra://--- Condição para 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="Operação COMPRA a"+Symbol()+""; sBodyLetter="Negócio Compra a"+Symbol()+" por "+DoubleToString(m_symbol.Ask(),Digits())+ ", e stop/loss definido em "+DoubleToString(stop_loss,Digits())+""; sndMessage(sHeaderLetter,sBodyLetter); } return; }
2017.01.26