In questo articolo, esploreremo come utilizzare questo Expert Advisor (EA) come strumento di trading efficace.
Input Necessari
Per configurare correttamente l'EA, sono richiesti tre input:
- Obiettivo di Profitto
- Limite di Perdita
- Numero Magico
extern double inTargetProfitMoney = 10; //Obiettivo di Profitto (€)
extern double inCutLossMoney = 0.0 //Limite di Perdita (€)
extern int inMagicNumber = 0 //Numero Magico
Funzione di Inizializzazione
Quando questo EA viene eseguito, verrà prima chiamata la funzione OnInit(), dove verificheremo l'inizializzazione degli input e delle variabili.
int OnInit()
{
//---
if(inTargetProfitMoney <= 0)
{
Alert("Input non valido");
return(INIT_PARAMETERS_INCORRECT);
}
inCutLossMoney = MathAbs(inCutLossMoney) * -1;
//---
return(INIT_SUCCEEDED);
}
Funzione OnTick
Ogni volta che ci sarà un movimento di prezzo (tick), verrà chiamata la funzione OnTick().
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();
}
}
Funzione di Chiusura Ordini
La funzione OnTick calcola continuamente il profitto o la perdita totale, chiudendo poi tutti gli ordini che raggiungono l'obiettivo o il limite massimo di perdita.
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("AVVISO: Chiusura Fallita");
}
}
}
}
}
Unisciti a Noi!
Per ulteriori informazioni dettagliate e per condividere codice MQL4, ti invitiamo a unirti al nostro gruppo Telegram t.me/codeMQL.
Post correlati
- MQL5 Wizard: Creare Trading Signals con Morning/Evening Stars e MFI per MetaTrader 5
- MQL5 Wizard: Strategia di Trading con Dark Cloud Cover/Piercing Line e RSI
- Utilizzare MQL5 Wizard per generare segnali di trading: Hammer e Hanging Man con CCI
- MQL5 Wizard: Crea Expert Advisor per segnali di trading basati su Dark Cloud Cover e Piercing Line con CCI
- MQL5 Wizard: Creare Trade Signals con Hammer/Hanging Man e RSI