Tag: trading automatico

Cos’è MQL5 e a cosa serve? – 1

Se ti sei mai chiesto come automatizzare le tue strategie di trading o creare indicatori personalizzati, allora probabilmente avrai sentito parlare di MQL5. In questo articolo scoprirai cos’è MQL5, come funziona e come può aiutarti a migliorare le tue operazioni di trading.

Cos’è MQL5?

MQL5, acronimo di MetaQuotes Language 5, è un linguaggio di programmazione creato appositamente per il trading sulla piattaforma MetaTrader 5 (MT5). Sviluppato da MetaQuotes Software, MQL5 permette ai trader di automatizzare strategie di trading, creare indicatori personalizzati e gestire operazioni di trading in modo preciso e veloce.

MetaTrader 5 è una delle piattaforme di trading più utilizzate al mondo, particolarmente popolare tra i trader Forex e di CFD (Contratti per Differenza). MQL5 è il linguaggio nativo di MetaTrader 5, e si distingue per la sua potenza e flessibilità, rendendolo adatto sia ai principianti che agli esperti.

A Cosa Serve MQL5?

MQL5 è utilizzato per diversi scopi, ognuno dei quali può essere adattato in base alle necessità del trader. Ecco le principali funzioni di MQL5:

  1. Sviluppo di Expert Advisors (EA)
    Gli Expert Advisors, o EA, sono algoritmi che permettono di eseguire operazioni di trading automatico senza intervento umano. Un EA programmato in MQL5 può aprire, chiudere e gestire posizioni sulla base di determinate regole stabilite dal trader, rendendo possibile l’esecuzione di strategie in tempo reale e 24/7.
  2. Creazione di Indicatori Personalizzati
    Con MQL5, puoi creare indicatori personalizzati che ti aiutano a identificare tendenze, segnali e opportunità di trading che potrebbero non essere visibili con indicatori standard. Ad esempio, puoi creare un indicatore che combina le medie mobili con l’RSI per generare segnali d’ingresso e uscita.
  3. Script per Operazioni Specifiche
    Gli script in MQL5 sono pezzi di codice eseguibili una volta sola, utili per eseguire operazioni specifiche come la chiusura di tutte le posizioni aperte, l’invio di notifiche push sul cellulare o la gestione di ordini in base a parametri predefiniti.
  4. Funzioni di Analisi Tecnica Avanzata
    Grazie alle sue librerie integrate, MQL5 offre una gamma completa di strumenti di analisi tecnica. Puoi usare funzioni avanzate per elaborare i dati storici, applicare formule di calcolo personalizzate e creare grafici con dettagli complessi.

Vantaggi di MQL5 per il Trading

  1. Automazione Completa del Trading Automatizzare il trading significa poter eseguire operazioni senza l’intervento umano, rendendo le strategie meno suscettibili a errori emotivi. Gli EA basati su MQL5 possono eseguire ordini immediatamente, seguendo la logica programmata e gestendo il rischio in modo preciso.
  2. Alta Precisione e Velocità MQL5 è progettato per funzionare ad alta velocità, con tempi di risposta rapidi per l’esecuzione degli ordini. Questo è fondamentale per il trading algoritmico, dove pochi millisecondi possono fare la differenza.
  3. Versatilità e Personalizzazione Puoi personalizzare ogni aspetto del tuo trading. Grazie alla flessibilità di MQL5, sei libero di sviluppare EA e indicatori unici, basati sulle tue specifiche esigenze e strategie di trading.
  4. Simulazioni e Backtesting Avanzato MQL5 supporta strumenti di backtesting avanzati, che permettono di testare strategie di trading su dati storici, aiutandoti a capire se una strategia potrebbe essere redditizia prima di utilizzarla con denaro reale.

Struttura e Componenti Principali di MQL5

Per iniziare a programmare in MQL5, è utile comprendere alcuni concetti e componenti fondamentali:

  • Variabili e Tipi di Dati
    MQL5 supporta una vasta gamma di tipi di dati come interi, reali, stringhe e array, consentendo una grande flessibilità nella gestione delle informazioni.
  • Funzioni e Eventi
    Le funzioni in MQL5 permettono di organizzare il codice in modo modulare. Esistono anche eventi come OnInit(), OnTick(), e OnTrade() che consentono di definire azioni specifiche, come l’inizializzazione di un EA o l’esecuzione di operazioni in tempo reale.
  • Cicli e Condizioni
    MQL5 include strutture di controllo come cicli for e while, e condizioni if, che aiutano a programmare logiche complesse per l’esecuzione automatica delle strategie.

Come Iniziare con MQL5: Primi Passi

Ecco una guida pratica per iniziare con MQL5:

  1. Installa MetaTrader 5
    Scarica MetaTrader 5 dal sito ufficiale di MetaQuotes e installalo sul tuo computer.
  2. Accedi al MetaEditor
    MetaEditor è l’ambiente di sviluppo integrato di MetaTrader 5. Qui puoi scrivere, modificare e testare il tuo codice MQL5.
  3. Crea il Tuo Primo EA
    Utilizza il Wizard di MetaEditor per creare un nuovo Expert Advisor. Il wizard ti guiderà attraverso la configurazione di base, come la definizione dei parametri iniziali e delle funzioni principali.
  4. Scrivi e Testa il Codice
    Scrivi il codice dell’EA, dell’indicatore o dello script, e testalo direttamente su MetaTrader 5 per verificarne l’efficacia. Puoi utilizzare il Tester di Strategia per eseguire il backtest.

MQL5 Community e Risorse Utili

La comunità MQL5 è molto attiva e offre risorse preziose per apprendere e migliorare le proprie competenze. Il sito ufficiale di MQL5 (mql5.com) fornisce documentazione, forum, e script di esempio che puoi utilizzare per velocizzare il processo di apprendimento.

Risorse:

  • MQL5 Documentation: La documentazione ufficiale su MQL5 è una risorsa completa per comprendere le funzioni e le caratteristiche avanzate del linguaggio.
  • MQL5 Community Forum: Un forum dove puoi chiedere aiuto ad altri trader e programmatori MQL5.
  • Articoli e Guide: Su mql5.com troverai articoli tecnici che spiegano come sviluppare strategie specifiche o gestire situazioni particolari.

In Conclusione

MQL5 è uno strumento potente per chiunque voglia automatizzare il proprio trading o creare indicatori personalizzati su MetaTrader 5. Grazie alla sua flessibilità e alle sue funzioni avanzate, offre infinite possibilità di personalizzazione, rendendolo adatto sia ai principianti che ai trader esperti.

Se vuoi iniziare a migliorare il tuo trading e sfruttare al massimo le potenzialità di MetaTrader 5, imparare MQL5 può fare la differenza. Buon trading e… buon coding!

Hello World in Pine Script: La Guida Definitiva – 04

Benvenuti, intrepidi programmatori e curiosi trader, nel meraviglioso mondo di Pine Script! Se avete mai desiderato creare i vostri indicatori su TradingView, siete nel posto giusto. Oggi vi guiderò attraverso il vostro primo script in Pine Script, il classico “Hello World”. Pronti a fare il primo passo? Partiamo!


Cos’è Pine Script?

Prima di tutto, un po’ di contesto. Pine Script è un linguaggio di scripting sviluppato da TradingView, una delle piattaforme di analisi tecnica più popolari al mondo. Questo linguaggio è pensato per permettere ai trader di creare indicatori personalizzati e strategie di trading in modo semplice e intuitivo.

Perché “Hello World”?

Il “Hello World” è il tipico primo programma che si scrive quando si impara un nuovo linguaggio di programmazione. È il modo perfetto per familiarizzare con la sintassi di Pine Script senza sentirsi sopraffatti. Iniziamo!


Passo 1: Aprire l’Editor Pine Script

  1. Accedi a TradingView: Se non l’hai già fatto, crea un account su TradingView.
  2. Apri un grafico: Seleziona qualsiasi asset su cui desideri lavorare.
  3. Apri l’Editor Pine Script: Clicca sull’icona dell’editor Pine Script nella parte inferiore della pagina.

Passo 2: Scrivere il Codice

Ora che abbiamo aperto l’editor, è il momento di scrivere il nostro primo script. Ecco il codice completo:

pinescriptCopy code//@version=4
study("Hello World", overlay=true)
plot(close)

Spiegazione del Codice

  1. //@version=4: Questo indica la versione di Pine Script che stiamo utilizzando. TradingView aggiorna regolarmente Pine Script, quindi assicurati di specificare la versione corretta.
  2. study("Hello World", overlay=true): La funzione study crea un nuovo indicatore. Il primo parametro è il nome dell’indicatore, mentre overlay=true significa che il nostro indicatore verrà visualizzato sul grafico del prezzo.
  3. plot(close): Questa funzione traccia una linea basata sui prezzi di chiusura (close) delle candele.

Passo 3: Applicare lo Script al Grafico

  1. Salvare lo script: Clicca sul pulsante “Save” nell’editor Pine Script. Dagli un nome accattivante come “Hello World”.
  2. Aggiungere al grafico: Dopo aver salvato, clicca su “Add to Chart”. Vedrai una linea che segue il prezzo di chiusura delle candele.

Passo 4: Personalizzare lo Script

Ora che abbiamo il nostro “Hello World”, possiamo divertirci un po’ personalizzandolo. Aggiungiamo un tocco di colore e un titolo più interessante:

pinescriptCopy code//@version=4
study("Hello World - Personalizzato", overlay=true)
plot(close, color=color.blue, linewidth=2, title="Prezzo di Chiusura")

Spiegazione delle Modifiche

  1. color=color.blue: Cambia il colore della linea a blu.
  2. linewidth=2: Aumenta lo spessore della linea.
  3. title="Prezzo di Chiusura": Aggiunge un titolo alla nostra linea.

Passo 5: Aggiungere un Indicatore Semplice

Per rendere il nostro script ancora più utile, aggiungiamo una Media Mobile Semplice (SMA):

pinescriptCopy code//@version=4
study("Hello World - Con SMA", overlay=true)
length = input(14, title="Lunghezza SMA")
sma = sma(close, length)
plot(sma, color=color.red, linewidth=2, title="SMA 14")
plot(close, color=color.blue, linewidth=1, title="Prezzo di Chiusura")

Spiegazione delle Aggiunte

  1. length = input(14, title="Lunghezza SMA"): Crea un input per l’utente per specificare la lunghezza della SMA. Il valore predefinito è 14.
  2. sma = sma(close, length): Calcola la Media Mobile Semplice basata sulla lunghezza specificata.
  3. plot(sma, color=color.red, linewidth=2, title="SMA 14"): Disegna la SMA sul grafico in rosso.

Conclusione

Congratulazioni! Avete scritto il vostro primo script Pine Script e lo avete anche personalizzato con una media mobile. Non è stato così difficile, vero? Pine Script è uno strumento potente e flessibile che può migliorare notevolmente la vostra analisi tecnica.

Continuate a esplorare e sperimentare con Pine Script. Presto sarete in grado di creare indicatori complessi e strategie di trading automatizzate. Buona programmazione!


Risorse Aggiuntive

  • Documentazione Ufficiale: Pine Script Reference
  • Corsi e Tutorial: Cercate su YouTube e piattaforme di e-learning per ulteriori tutorial e corsi su Pine Script.

Se questo articolo ti è stato utile, condividilo con altri aspiranti programmatori e trader! Seguimi per ulteriori guide e consigli su Pine Script e il mondo del trading. Buona fortuna e buon trading! 🚀

Se hai dubbi o domande a riguardo puoi farmele pure su

Instagram: https://www.instagram.com/investoinvestigando.it/

Qui puoi trovare tutta la guida: LINK

Cosa sono gli Array – 03

Cosa sono gli Array? In parole semplici, un array è una collezione ordinata di dati dello stesso tipo, come numeri, stringhe o colori. Immaginalo come un foglio di calcolo (excel) con righe e colonne, dove ogni cella contiene un valore specifico.

In poche parole è un insieme di variabili messe insieme, se ti sei perso la spiegazione sulle variabili recupera perché è fondamentale: LINK

Creazione di Array

Esistono diversi modi per creare un array in PineScript:

  • Funzione array.new: specifica il tipo di dati e la dimensione dell’array.
  • Assegnazione diretta: inserisci i valori tra parentesi quadre.
  • Funzione array.from: converte una serie di valori in un array.

Esempio:

Pine Script

// Crea un array di 5 numeri
float[] myArray = array.new_float(size=5);

// Assegna valori all'array
myArray[0] = 10.5;
myArray[1] = 22.2;
myArray[2] = 3.14;
myArray[3] = 99.9;
myArray[4] = 7.77;

// Stampa il secondo elemento
print(myArray[1]); // Stampa: 22.2

Quindi qui abbiamo creato un array con dimensione 5, quindi ha 5 posti dove mettere dei valori.

Funzionalità avanzate

PineScript offre una vasta gamma di funzioni per manipolare e analizzare gli array:

  • Ricerca e ordinamento: trova valori specifici o ordina l’array in base a criteri predefiniti.
  • Calcoli statistici: calcola media, mediana, deviazione standard e altri valori statistici.
  • Funzioni matematiche: applica operazioni matematiche come somma, prodotto e media su interi array.
  • Indicatori personalizzati: crea indicatori tecnici complessi sfruttando la flessibilità degli array.

Esempio:

Pine Script

// Calcola la media mobile di un array
float[] myArray = array.new_float(size=10);
...
float avg = array.avg(myArray);

Ovviamente è un esempio eh, non ti aspettare di fare i soldi con questo codice.

Vantaggi dell’utilizzo di Array

  • Efficienza: memorizza e gestisci grandi quantità di dati in modo efficiente.
  • Flessibilità: esegui calcoli complessi su più dati contemporaneamente.
  • Personalizzazione: crea strategie di trading avanzate e indicatori personalizzati.

Conclusione

Gli array sono uno strumento potente che può portare il tuo trading a un livello superiore. Imparare a usarli correttamente ti permetterà di analizzare i mercati in modo più approfondito e di sviluppare strategie di trading più efficaci.

Risorse aggiuntive:

Sfrutta il potere degli array per potenziare il tuo trading! Dai che piano piano stai imparando tante cose e tra poco sarai autonomo (ci vorrà ancora un po’ di studio…)

Se hai dubbi o domande a riguardo puoi farmele pure su Telegram: https://t.me/+0xQYD3WKIAA5Mjg8

Seguimi su instagram: https://www.instagram.com/investoinvestigando.it/

Qui puoi trovare tutta la guida: LINK

Dynamic Range Revert Money Management

Ciao, la strategia Dynamic Range Revert Money Management è una miglioria alla strategia Dynamic Range Revert! (Pazzesco vero?! 😀 ) Si tratta della stessa strategia dove però i lotti cambiano in percentuale.

Ciao sono Drilon e sono un programmatore con la passione per la finanza personale. In questa strategia si imposta quanto del nostro capitale si vuole rischiare ad ogni trade, ad esempio l’1%! La logica che c’è sotto poi è la stessa che trovi qui (no dovevi cliccare QUI, c’è il link, non in questo, dai te lo rimetto qui, stasera mi è presa così…non sono simpatico scusa)

Risultati

Andiamo al sodo e vediamo il risultato!

dynamic range revert money management – risultati

Questo grafico è l’equityline, ovvero l’andamento. Partendo da 450$ si arriva a circa 3400$.

Aspetta non è così semplice, questa vale solo per EURCAD a timeframe 1 minuto!

Niente male lo so, ma non farti ingannare dai, ovviamente questo è un backtest, in live i risultati non saranno così, per via dello spread e le commissioni che qui è sono statiche (non zero, non mi ricordo che valore di preciso).

Ok abbiamo visto il grafico, vediamo più nel dettaglio però.

Un dato molto importante per me è sempre il Drawdown poiché devo essere in grado di sostenerlo sia economicamente che mentalmente (terribile veder scendere il valore dei soldi). In questo caso si tratta di circa un 12% di drawdown.

Non è tantissimo, però non è nemmeno poco, anche se per un guadagno del genere ne potrebbe valere la pena!

Vediamo che ha aperto circa 3000 ordini, quindi i dati sono abbastanza affidabile. Se un backtest di una strategia si fa su 10 ordini i dati che ottieni puoi evidenziarli, sottolinearli, accartocciare il foglio e buttare tutto! NON SONO ABBASTANZA! NON è ATTENDIBILE!

Un altro valore importante sono gli ordini consecutivi che sono andati in stopLoss, anche questo principalmente per una questione mentale (il rischio rendimento vedrai che non è come ti aspetti).

Personalmente, preferisco fare piccoli profitti costanti e prendere una batosta raramente, rispetto a prendere tanti stopLoss e un grande takeProfit. Mentalmente mi ammazza e mi porterebbe a fare cazzate!

Vabbè basta, io il mio l’ho detto, tieni il codice!

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using cAlgo.API;
using cAlgo.API.Collections;
using cAlgo.API.Indicators;
using cAlgo.API.Internals;

namespace cAlgo.Robots
{
    [Robot(AccessRights = AccessRights.None)]
    public class IIDynamicRangeBreakoutREVERTMM : Robot
    {
        [Parameter(DefaultValue = 10)]
        public double takeProfit { get; set; }

        [Parameter(DefaultValue = 10)]
        public double stopLoss { get; set; }

        [Parameter(DefaultValue = 8)]
        public int hourEnter { get; set; }

        [Parameter(DefaultValue = 18)]
        public int hourExit { get; set; }
        
        [Parameter(DefaultValue = 8)]
        public int hourClosingOpen{ get; set; }

        [Parameter(DefaultValue = 18)]
        public int hourClosingExit { get; set; }
        
        [Parameter(DefaultValue = 1)]
        public int maxOrder { get; set; }
        
        [Parameter(DefaultValue = 0)]
        public double maxRange { get; set; }
        
        [Parameter(DefaultValue = 999999)]
        public double minRange { get; set; }
        
        [Parameter(DefaultValue = 0.01)]
        public double lots { get; set; }
        
        [Parameter(DefaultValue = 3)]
        public int stopLossRiskPercent { get; set; }
        
        protected override void OnStart()
        {
            Positions.Closed += OnPositionsClosed;
        }

        protected override void OnTick()
        {
            // Handle price updates here
            if(!checkTime()){
                // Break Range
                if(Bars.LastBar.Close > maxRange && maxRange != 0){
                    // Open BUY
                    lots = DisplayPositionSizeRiskOnChart();
                    if(lots >= 0.00){
                        Open(TradeType.Sell, lots);
                        maxRange = 0;
                        minRange = 999999;
                    }
                }  
                
                if(Bars.LastBar.Close < minRange && minRange != 999999){
                    // Open SELL
                    lots = DisplayPositionSizeRiskOnChart();
                    if(lots >= 0.00){
                        Open(TradeType.Buy, lots);
                        maxRange = 0;
                        minRange = 999999;
                    }
                }
            }
            
            /*if(checkClosingTime()){
                CloseAll();
            }*/
        }
        
        protected override void OnBar()
        {
        
            if(checkTime()){
                // Set Range
                if(Bars.LastBar.High > maxRange ){
                    maxRange = Bars.LastBar.High;
                }  
                
                if(Bars.LastBar.Low < minRange ){
                    minRange = Bars.LastBar.Low;
                }
            }    
        }

        protected override void OnStop()
        {
            CloseAll();
        }
        
        private bool checkTime()
        {
            DateTime date = Server.Time;
            if (date.Hour >= hourEnter && date.Hour <= hourExit && hourEnter <= hourExit)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
        private bool checkClosingTime()
        {
            DateTime date = Server.Time;
            if (date.Hour >= hourClosingOpen && date.Hour <= hourClosingExit && hourClosingOpen <= hourClosingExit)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        
        private void CloseAll()
        {
            foreach (var position in Positions.FindAll("DynamicRangeBreakoutREVERT", SymbolName))
            {
                ClosePosition(position);
            }
        }
        
        private void Close(TradeType tradeType)
        {
            foreach (var position in Positions.FindAll("DynamicRangeBreakoutREVERT", SymbolName, tradeType))
                ClosePosition(position);
        }

        private void Open(TradeType tradeType, double lots)
        {
            var position = Positions.FindAll("DynamicRangeBreakoutREVERT", SymbolName, tradeType);
            var volumeInUnits = Symbol.QuantityToVolumeInUnits(lots);
            if (position == null || position.Length < maxOrder)
                ExecuteMarketOrder(tradeType, SymbolName, volumeInUnits, "DynamicRangeBreakoutREVERT", stopLoss, takeProfit);
        }
        
        private void OnPositionsClosed(PositionClosedEventArgs args)
        {
            Print("Closed positions");
            var position = args.Position;

           /* if (position.NetProfit > 0)
            {
                lots = 0.03;
            }
            else
            {
                lots *= 2;
            }*/
        }
        
        
        private double DisplayPositionSizeRiskOnChart()
        {
            double costPerPip = (double)((int)(Symbol.PipValue * 10000000)) / 100;
 
            double positionSizeForRisk = (Account.Balance * stopLossRiskPercent / 100) / (stopLoss * costPerPip);
            Print(Account.Balance, " ",positionSizeForRisk, " ",(stopLoss * costPerPip));
            
            string text = stopLossRiskPercent + "% x " + stopLoss + "pip = " + Math.Round(positionSizeForRisk, 2) + " lot";
 
            ChartObjects.DrawText("positionRisk", text, StaticPosition.TopRight, Colors.Yellow);
            return Math.Round(positionSizeForRisk, 2);
        }
    }
} 

questi sono i parametri che devi impostare:

  • takeProfit: 15
  • stopLoss: 40
  • hourEnter: 18
  • hourExit: 19
  • hourClosingEnter: 18
  • hourClosingExit: 23
  • maxOrder: 1
  • minRange: 99999
  • lots: 0.01
  • stopLossRisk: 1

Mi raccomando, la strategia può funzionare anche con altre valute, ma con questi parametri specifici funziona sono in EURCAD a 1 minuto!

Da qui puoi vedere come utilizzare cTrader (piattaforma che utilizzo): LINK

Se hai dubbi o domande fammele pure su Telegram: https://t.me/+0xQYD3WKIAA5Mjg8

Seguimi su instagram: https://www.instagram.com/investoinvestigando.it/

Come iniziare a programmare

Ciao, se sei arrivato qui è perché vuoi imparare a programmare e magari vuoi programmare qualcosa inerente al trading!

Ci sono diversi step, secondo me, prima di diventare autonomi, vediamoli insieme.

1) La mentalità da programmatore

Come prima cosa bisogna che inizi a pensare come ragiona un programmatore, come affronta i problemi che può incontrare. Molto spesso i programmatori hanno anche una grande capacità di problem solving, ma non è un caso.

Per sviluppare una giusta mentalità è fondamentale andare sul pratico, scrivere codice, imbattersi nei problemi e cercare di risolverli. Grazie al c***o dirai, ma non è scontato poiché molti pensano che guardando un tutorial su youtube di 8 ore poi diventano programmatori.

2) Da dove iniziare?

Per apprendere la giusta mentalità bisogna partire dalle basi, quindi il primo linguaggio con cui approcciarsi è sicuramente il C++ poiché è uno dei linguaggi più completi… c’è un motivo se partono da esso anche nelle facoltà.

Per chi conosce l’inglese può seguire questo corso e fare ciò che viene spiegato, è lungo ma è completo!

tutorial c++ inglese

Per chi volesse qualcosa in italiano può seguire questo: https://www.html.it/guide/guida-c2/

oppure questo:

tutorial c++ italiano

Per chi volesse mettersi alla prova può provare a fare questi esercizi (ci sono anche le soluzioni): https://ticoprof.wordpress.com/esercizi-cplusplus/

Sarebbe utile, ma so che non li farai… (sorprendimi!)

Se hai dubbi o difficoltà contattatemi pure:

Telegram: https://t.me/+0xQYD3WKIAA5Mjg8

Instagram: https://www.instagram.com/investoinvestigando.it/

3) Facciamo trading!

Adesso che hai un’idea di cosa vuol dire programmare andiamo a fare trading! No, non proprio, piano piano.

Un aspetto importante da tener conto quando ci si sposta da una programmazione lineare, dove il codice viene eseguito dall’alto verso il basso, ad una programmazione “sequenziale” è che il codice viene letto tutte le volte, ogni secondo, quindi va gestito in modo diverso.

Faccio un esempio, C++:

....
cout<<"Ciao come stai?";
cin>>x;
cout<<x;
....
return;

In questo caso vedremo la domanda, inseriremo la risposta e vedremo la risposta che abbiamo dato! Vediamo adesso un codice per il trading:

onBar(){
 if(a>b){
   print("Nuova candela");
 }
}

Questo codice invece verrà eseguito alla generazione di ogni nuova candela! Non si interrompe a fine esecuzione.

Fatta questa piccola parentesi cosa devi fare? TradingView, o meglio PineScript

Qui c’è la documentazione generale: https://it.tradingview.com/pine-script-reference/v5/

Questo video può essere un buon punto di partenza:

pinescript

Consiglio questo video per capire di più i dati per il backtest e valutare se una strategia funziona oppure no!

backtest

4) AlgoTrading avanzato

Adesso facciamo sul serio! MQL oppure C#, sono due linguaggi molto usati nelle piattaforma per fare trading automatico!

Il primo è il linguaggio di programmazione per MetaTrader, è un linguaggio più grezzo e articolato ma permette di creare ottime strategie.

Questo video per avere un’idea generale:

mql generale

Mentre questo video per vedere un’esempio di strategia:

mql5 – stochastic

Personalmente questi sono tutti gli step che io ho fatto e i linguaggi che mi sono dovuto imparare (più altri per lavoro ma quello è un altro capitolo :D).

Alla fine ho scelto cTrader come piattaforma e C# come linguaggio di programmazione.

Più semplice, linguaggio un po’ più di alto livello e piattaforma decisamente migliore rispetto a MetaTrader!

Purtroppo non si trova praticamente niente online per imparare a fare trading automatico su cTrader ma questo video ve lo consiglio:

ctrader

Come ultima fonte c’è questa guida/documentazione: https://clickalgo.com/ctrader-learn-programming

Se fate tutti questi step (sono tante ore di studio e lavoro) alla fine sarete autonomi nel creare le vostre strategie di trading automatico!

Se hai dubbi o difficoltà contattatemi pure:

Telegram: https://t.me/+0xQYD3WKIAA5Mjg8

Instagram: https://www.instagram.com/investoinvestigando.it/

Se vuoi esempi di strategia automatiche: https://www.investoinvestigando.it/category/algotrading/