Guida al testing e all'ottimizzazione degli expert advisor AI | Deriv Blog

Perfezioni il Suo expert advisor AI con le giuste tecniche di testing. La nostra guida tratta i problemi più comuni, i metodi di testing e l'ottimizzazione degli expert advisor per bot di trading affidabili.

Dal team Deriv · 21 aprile 2025 · 4 min di lettura

Share

Gli expert advisor di trading basati sull'AI sono arrivati — ma è comunque necessario testarli e perfezionarli.

Se ha già utilizzato strumenti di AI come Claude o ChatGPT per creare un expert advisor per Deriv MT5 o un cBot per Deriv cTrader, ha già fatto un ottimo primo passo. Ma anche quando il codice sembra corretto, può comunque contenere errori che influiscono sul funzionamento del bot.

Prima di eseguire il Suo expert advisor (EA) su un mercato reale, è importante testarlo e assicurarsi che funzioni come previsto.

In questa guida analizzeremo gli errori di codice più comuni negli EA generati dall'AI, come correggerli e alcuni consigli pratici per migliorare le prestazioni del Suo bot.

Errori di codice MQL5 comuni nell'AI

Questi sono alcuni dei problemi più frequenti riscontrati negli EA generati dall'AI, insieme ai modi per correggerli:

  • Errore di identificatore non dichiarato in MQL5

Questo errore compare quando il bot utilizza una variabile o un nome che non è stato definito correttamente, ad esempio se manca un parametro o se viene usato un nome errato in indicatori come iMA().

Soluzione:
Verifichi i parametri dell'indicatore e si assicuri che tutti i nomi delle variabili corrispondano a quanto previsto in MetaEditor (lo strumento di coding di MT5).

  • Funzioni di esecuzione degli ordini Buy/Sell mancanti

Alcuni bot generati dall'AI omettono la logica essenziale per l'apertura delle operazioni.

Soluzione:
Aggiunga manualmente le funzioni di base per l'esecuzione degli ordini. Ecco un esempio di struttura di base per piazzare un ordine buy:

void OpenBuy() { 

   MqlTradeRequest request; MqlTradeResult result; 

   request.action = TRADE_ACTION_DEAL; 

   request.type = ORDER_TYPE_BUY; 

   request.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); 

   request.volume = 0.1; request.magic = 12345; 

   OrderSend(request, result); 

}

Si assicuri inoltre di includere la logica per gli ordini sell e di definire le condizioni in cui le operazioni devono essere aperte.

  • Condizioni di loop non corrette in Deriv cTrader

In Deriv cTrader, la logica del bot deve essere eseguita all'interno di funzioni specifiche come OnBar() o OnTick(). Queste vengono attivate automaticamente quando il mercato si muove. Se il codice è posizionato al di fuori di queste sezioni, ad esempio in un loop errato o nello scope globale, non verrà eseguito come previsto.

Soluzione:

Si assicuri che barre e tick vengano gestiti all'interno di OnBar() o OnTick(). In questo modo il bot potrà rispondere correttamente ai nuovi tick o alle nuove barre durante il backtesting e il trading live.

  • Calcolo errato della lot size in base alla percentuale del saldo

Quando l'AI tenta di impostare la lot size in base al saldo del conto (ad es. rischiando il 2% per operazione), può omettere un dettaglio importante: la dimensione del contratto. Questo può portare a lot size inaccurate. Non si tratta di un errore di codice, ma in fase di testing noterà dimensioni delle operazioni che non corrispondono alle Sue impostazioni di rischio, con conseguente overexposure o under-exposure nelle operazioni live.

Soluzione:
Utilizzi una formula per la lot size che tenga conto della dimensione del contratto, ad esempio:

//-----------------------------------------------------------------

double accountBalance = AccountInfoDouble(ACCOUNT_BALANCE);

double riskMoney = accountBalance * (RiskPercent / 100.0);

double tickValue = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE);

double tickSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_SIZE);

double pointValue = tickValue / tickSize;

double contractSize = SymbolInfoDouble(_Symbol, SYMBOL_TRADE_CONTRACT_SIZE);

if(contractSize > 0)

pointValue = pointValue / contractSize;

double lotSize = riskMoney / (StopLossPoints * pointValue);

double minLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MIN);

double maxLot = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_MAX);

double lotStep = SymbolInfoDouble(_Symbol, SYMBOL_VOLUME_STEP);

lotSize = MathMax(lotSize, minLot);

lotSize = MathMin(lotSize, maxLot);

lotSize = MathFloor(lotSize / lotStep) * lotStep;

  • Altri errori

Se riscontra uno di questi errori — o qualsiasi altro — può sempre chiedere aiuto al Suo modello di AI per identificare e risolvere il problema.

Copi semplicemente il messaggio di errore e il codice pertinente, poi li condivida con il modello di AI. Nella maggior parte dei casi, dovrebbe essere in grado di individuare il problema e proporre una correzione o suggerire possibili soluzioni.

Consiglio: Esegua sempre un backtest prima di passare al live. Problemi di questo tipo non emergono finché non si testa la strategia con dati di mercato reali.

Migliori il Suo expert advisor generato dall'AI

Una volta che il bot funziona, può apportare piccole modifiche per migliorarne le prestazioni e la stabilità. Ecco alcuni accorgimenti comuni:

  • Aggiunga una logica di gestione degli errori per gestire comportamenti imprevisti durante alta volatilità o problemi di connessione.
  • Utilizzi un trailing stop-loss per consolidare i potenziali profitti quando il mercato si muove a Suo favore.
  • Esegua il backtest della Sua strategia con dati storici per vedere come si sarebbe comportata.
  • Ripulisca e organizzi il codice per migliorarne la leggibilità e l'efficienza. Questo renderà più semplice aggiornarlo o risolvere eventuali problemi in seguito.

Consiglio: Utilizzi il MetaEditor Debugger (su MT5) per testare il funzionamento del bot passo dopo passo.

Perché il backtesting delle operazioni è fondamentale

I bot generati dall'AI sono un ottimo modo per automatizzare il trading senza dover programmare da zero. Ma anche con l'AI, la Sua strategia necessita comunque di controlli e aggiustamenti umani per funzionare bene in condizioni live.

Prima di passare al live, si prenda il tempo necessario per testare a fondo e apportare piccoli miglioramenti. Anche correzioni minime possono fare una grande differenza nella coerenza e nell'efficacia delle prestazioni del Suo EA.

Join 3M+ global traders

Open an account in minutes and start trading the world's markets — forex, stocks, indices, and more.