Fala, galera! Hoje vamos falar sobre uma ferramenta que pode facilitar muito a sua vida como trader no MetaTrader 4: um robô que fecha ordens com base no alvo de lucro ou no limite de perda.
Esse Expert Advisor (EA) é super útil e tem apenas três entradas que você precisa configurar:
- Alvo de Lucro
- Limite de Perda
- Número Mágico
extern double inTargetProfitMoney = 10; // Alvo de Lucro ($)
extern double inCutLossMoney = 0.0 // Limite de Perda ($)
extern int inMagicNumber = 0 // Número Mágico
Quando você executar esse EA, ele chamará a função OnInit(). Nela, vamos verificar se as entradas e variáveis estão devidamente inicializadas.
int OnInit()
{
//---
if(inTargetProfitMoney <= 0)
{
Alert("Entrada inválida");
return(INIT_PARAMETERS_INCORRECT);
}
inCutLossMoney = MathAbs(inCutLossMoney) * -1;
//---
return(INIT_SUCCEEDED);
}
Agora, toda vez que houver uma movimentação de preço (tick), a função OnTick() será chamada.
void OnTick()
{
//---
double tFloating = 0.0;
int tOrder = OrdersTotal();
for(int i=tOrder-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderMagicNumber() == inMagicNumber)
{
tFloating += OrderProfit()+OrderCommission() + OrderSwap();
}
}
}
if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0))
{
fCloseAllOrders();
}
}
Na função OnTick, vamos continuar calculando o lucro ou a perda total e, se necessário, fechar todas as ordens que atingirem o alvo ou o limite de perda.
void fCloseAllOrders()
{
double priceClose = 0.0;
int tOrders = OrdersTotal();
for(int i=tOrders-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL))
{
priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK);
if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold))
{
Print("AVISO: Falha ao Fechar");
}
}
}
}
}
Para mais informações e troca de conhecimentos sobre códigos MQL4, junte-se ao nosso grupo no Telegram: t.me/codeMQL
Publicações relacionadas
- MACD Sample: Um Guia Prático para o Expert Advisor no MetaTrader 5
- Baixe Todo o Histórico de Ticks de um Símbolo no MetaTrader 5
- Análise do The MasterMind 3 (Edição Campeonato) para MetaTrader 4
- MAMACD: Uma Análise do Sistema de Trading para MetaTrader 5
- MasterMind 2: O Robô de Trading para MetaTrader 4 que Você Precisa Conhecer