Vai al contenuto

Come creare un bot di trading forex in Python utilizzando l'AI

Questo articolo e video dimostrano come creare un bot di trading Python gratuito per cTrader con l'AI.

Nota

cTrader è l'unica piattaforma importante che offre supporto nativo per Python, consentendo a chiunque di creare potenti robot Python per automatizzare le strategie di trading. Non è coinvolto alcun adattatore o soluzione complessa.

Sebbene ChatGPT venga utilizzato per la dimostrazione, gli stessi passaggi per la creazione di bot di trading con l'AI si applicano a Gemini, Claude, DeepSeek e altri.

Seleziona un template Python

Apri cTrader Algo in cTrader Windows o cTrader Mac, quindi fai clic su Nuovo per iniziare a creare un nuovo bot di trading.

Nella procedura guidata per la creazione di algoritmi, crea un nuovo algoritmo e assegnagli un nome.

Scegli Python come linguaggio di programmazione, quindi seleziona l'opzione Utilizzando un template.

cTrader offre un'ampia varietà di template Python, che coprono ogni tipo di strategia, stile di analisi o attività di trading automatizzato. Questi algoritmi predefiniti contengono già la logica di trading completa e parametri regolabili, quindi sono pronti per l'uso una volta salvati e sviluppati.

Nota

La collezione completa di template di algoritmi è disponibile nella procedura guidata per la creazione di algoritmi in cTrader Windows o cTrader Mac, e puoi anche accedervi nel nostro repository pubblico.

Supponiamo di specializzarci nel trading di rottura. Pertanto, scegliamo Sample Breakout cBot.

Nota

Descrizioni dettagliate dei template di algoritmi più popolari, incluso Breakout cBot, sono disponibili nella nostra Knowledge Base.

Breakout cBot sfrutta il movimento del prezzo oltre un livello di supporto o resistenza predefinito, e l'indicatore Bollinger Bands guida le sue decisioni. Costruiamo il robot di trading ed eseguiamo il backtesting.

Premi Ctrl+B o clicca su Build nella parte superiore dell'editor di codice.

Una volta completata la compilazione, clicca su qualsiasi istanza disponibile sotto il nome del cBot.

Nella griglia principale, vai alla scheda Backtesting. Esegui un backtest di un anno utilizzando i parametri predefiniti per valutare i risultati del robot. Il cBot produce un guadagno del 22% per questo periodo, ottenendo 74 operazioni in attivo su 194 come registrato nella scheda Statistiche operazioni.

Aggiorna il cBot con l'IA

Con l'assistenza dell'IA, puoi aggiornare il codice del robot di trading per ottenere risultati migliori e identificare combinazioni di parametri che producono rendimenti più elevati.

RSI è un indicatore di momentum che filtra i breakout deboli o i falsi segnali. Questo indicatore dovrebbe integrarsi perfettamente e completare le Bollinger Bands utilizzate in Sample Breakout cBot. Come riferimento, puoi ottenere l'integrazione RSI per Super cBot fornita in un articolo del Centro Assistenza.

Prendi lo snippet di integrazione RSI, allegalo a un prompt contenente tutte le informazioni necessarie, quindi fornisci tutto allo strumento IA:

Prompt

Study the RSI integration in Super cBot, then implement the same RSI filters in Special cBot. 

[Special cBot code]

[Super cBot integrated with RSI code]

L'IA elabora e quindi fornisce il codice per Special cBot integrato con RSI.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import clr

clr.AddReference("cAlgo.API")

# Import cAlgo API types
from cAlgo.API import *

# Import trading wrapper functions
from robot_wrapper import *

class SampleBreakoutcBot():
    Label = "Sample Breakout cBot"

    def on_start(self):
        # Bollinger Bands for breakout consolidation logic
        self.bollingerBands = api.Indicators.BollingerBands(api.Source, api.Periods, api.Deviations, api.MAType)

        # Track consolidation bars
        self.consolidation = 0

        # --- RSI filter (same style as grid cBot) ---
        self.rsi_period = getattr(api, "RsiPeriod", 14)
        self.rsi_overbought = getattr(api, "RsiOverbought", 70)
        self.rsi_oversold = getattr(api, "RsiOversold", 30)
        self.rsi = api.Indicators.RelativeStrengthIndex(api.Bars.ClosePrices, self.rsi_period)

    def on_bar(self):
        top = self.bollingerBands.Top.Last(1)
        bottom = self.bollingerBands.Bottom.Last(1)

        # Detect consolidation via band height
        if top - bottom <= api.BandHeightPips * api.Symbol.PipSize:
            self.consolidation += 1
        else:
            self.consolidation = 0

        if self.consolidation >= api.ConsolidationPeriods:
            volumeInUnits = api.Symbol.QuantityToVolumeInUnits(api.Quantity)

            # Breakout up
            if api.Ask > top:
                if self.passes_rsi_filter():
                    api.ExecuteMarketOrder(TradeType.Buy, api.SymbolName, volumeInUnits, self.Label, api.StopLossInPips, api.TakeProfitInPips)
                    self.consolidation = 0
                else:
                    api.Print("RSI filter blocked BUY breakout (RSI={:.2f}, range {}-{})"
                              .format(self.get_rsi_value(), self.rsi_oversold, self.rsi_overbought))

            # Breakout down
            elif api.Bid < bottom:
                if self.passes_rsi_filter():
                    api.ExecuteMarketOrder(TradeType.Sell, api.SymbolName, volumeInUnits, self.Label, api.StopLossInPips, api.TakeProfitInPips)
                    self.consolidation = 0
                else:
                    api.Print("RSI filter blocked SELL breakout (RSI={:.2f}, range {}-{})"
                              .format(self.get_rsi_value(), self.rsi_oversold, self.rsi_overbought))

    # --- Helpers copied in spirit from the grid cBot ---
    def get_rsi_value(self):
        # Use the last CLOSED bar for stability
        return self.rsi.Result.Last(1)

    def passes_rsi_filter(self):
        r = self.get_rsi_value()
        return (r > self.rsi_oversold) and (r < self.rsi_overbought)

Successivamente, chiedi all'IA di consigliare le impostazioni ottimali dei parametri per il robot di trading in base alla nostra strategia.

Prompt

I want the cBot to generate smoother, slower signals that pair naturally with the RSI filter. 
I prefer fewer trades but cleaner breakouts. 
I am setting the consolidation period to 1 because I want the cBot to act immediately when 
volatility compresses. 

Which moving average type is best for this?

L'IA elabora e quindi fornisce alcune informazioni utili. Consiglia Wilders Smoothing come miglior tipo di moving average per la nostra strategia.

Applica i consigli dell'IA

Torna all'editor di codice in cTrader e applica le modifiche consigliate. Incolla il codice aggiornato, quindi compila il cBot aggiornato.

Apri nuovamente la scheda Backtesting. Imposta la moving average su Wilders Smoothing, come consigliato dall'IA, quindi esegui un backtest per lo stesso periodo di un anno.

Questa volta, il report di backtesting sullo stesso periodo mostra un guadagno del 97%, un miglioramento enorme rispetto al 22% ottenuto dalla logica originale del cBot.

Il nuovo risultato dimostra quanto possa essere efficace la guida dell'IA nel perfezionare le prestazioni dei robot di trading e nell'ottimizzare i loro parametri per ottenere risultati eccellenti. Anche il tasso di successo del robot è migliorato significativamente, ottenendo 51 operazioni in attivo su un totale di 93.

Avvia il cBot in cloud

Grazie alla sincronizzazione cloud, il nuovo cBot è automaticamente disponibile da tutte le app cTrader in cui il tuo cTrader ID è attivo. Puoi persino avviare il robot di trading in cTrader Mobile o Web.

Tocca semplicemente l'icona Avvia.

Poiché il cBot viene eseguito in cloud, continua a fare trading 24 ore su 24 senza interruzioni, anche se la tua app cTrader è chiusa o il tuo dispositivo è spento. Non è necessario alcun VPS.

Monetizza il cBot

Facoltativamente, puoi monetizzare il tuo cBot in cTrader Store, un marketplace sicuro e dinamico che mette in contatto acquirenti e venditori di prodotti di trading.

Per pubblicare un prodotto, seleziona il cBot che desideri vendere direttamente dal cloud o carica un file, quindi fornisci i dettagli necessari. Una volta pubblicato, l'algoritmo viene pubblicato in cTrader Store, diventando disponibile per milioni di utenti cTrader per l'acquisto.

Nota

La distribuzione di algoritmi tramite cTrader Store è completamente sicura, poiché il tuo codice sorgente non viene mai rivelato o caricato da nessuna parte. Anche la tua proprietà intellettuale è rispettata, poiché ogni acquisto di prodotto è monoutente e non trasferibile.

Image title