Categoria: AlgoTrading

In questa sezione puoi trovare tutto ciò che riguarda il trading automatico. Script, indicatori, strategie, tutto automatizzato

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

Variabile – 02

Cosa è una variabile? Cosa sono i tipi di variabili? Ma di che cosa stai parlando Drilon? Ma chi cazzo sei Drilon?

Ciao, sono Drilon e sono un programmatore con la passione per la finanza personale (a chi non piace fare soldi dai?!), questo è il mio blog dove cerco di raccontare il mio percorso.

Questo articolo fa parte di tutta una sezione dedicata a imparare a programmare in PineScript per TradingView: LINK

Cosa è una variabile

Partiamo spiegando cosa è una variabile e perché ci serve quando si programma. Una variabile immaginatela come un contenitore, come un box di cartone, dove all’interno ci vai a mettere qualcosa, ad esempio una penna. Adesso, tutte le volte che hai bisogno di quella penna, sai dove trovarla, nel box, apri e hai la penna.

Quando si programma, la variabile ha la stessa funzionalità, ovvero ci salvo dentro un valore e tutte le volte che ho bisogno di quel valore basta che scrivo quella variabile.

pippo = 2
pluto = 1
paperino = 10
topolino = 100

Come in questo caso, ho una variabile di nome pippo che ha il valore 2, pluto con il valore 1 e così via.

Adesso se volessi sommarli basta che faccio così

totale = pippo+pluto+paperino+topolino

In questo modo ho una nuova variabile che si chiama totale che ha il valore di 113, ovvero la somma di pippo,pluto,paperino e topolino.

Si ma basta che dico totale = 113!

tu che stai leggendo

Aspettaaaaaa! Questo fa parte di un processo di apprendimento, fammi spiegare! (stronzo!)

variabile = [
 "pippo" => 2,
 "pluto" => [2,3],
 "paperino" => [
    "paperina" => 3
  ]
]

Anche questa è una variabile più complessa! Vedi, non tutto è semplice come pensi! NON MI CONTRADDIRE MAI PI§!!!!

Nel prossimo articolo vedremo i tipi di variabile, ci vediamo presto <3

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

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

Guida PineScript – 01

Ciao, se sei qui è perché vuoi iniziare a imparare a programmare su TradingView, il linguaggio di programmazione utilizzato sulla piattaforma è PineScript. Quindi benvenuto in questa prima Guida PineScript – 01.

Mi presento, sono Drilon e sono un programmatore con la passione per la finanza personale, questo è il mio blog dove racconto il mio percorso e provo a spiegare ciò che imparo nel mentre.

Dove si programma?

Il primo step sicuramente è quello di capire dove si programma su TradingView, basterà cliccare nel pulsante PineEditor, come nella figura sotto

A questo punto si aprirà una nuova tab sotto, dove forse c’è del codice d’esempio che comunque non ci interessa. Dovremmo andare a destra e cliccare su Open

Da qui possiamo notare diverse voci,

  • My Script -> ci fa vedere gli script già scritti
  • Build-in script -> apre degli indicatori già scritti
  • New Indicator -> ci permette di creare un nuovo indicatore
  • New Strategy -> ci permette di creare una strategia automatizzata con tanto di backtest e statistiche
  • New Libray -> permette di creare delle librerie riutilizzabili… lascia perdere per ora

Clicchiamo su New Indicator e avremo questo codice

//@version=5
indicator("My script")
plot(close)

Analizziamolo insieme:

//@version=5

Indica la versione di PineScript utilizzata per scrivere l’indicatore, da una versione all’altra possono cambiare alcuni comandi.

indicator("My script")

Impostiamo il nome che vogliamo dare al nostro indicatore

plot(close)

Il comando plot è utilizzato per “disegnare” / “stampare” a schermo qualcosa, in questo caso il prezzo di chiusura

Proviamo a salvarlo e cliccare “Add to chart” sempre dal pannello in alto a destra

Wow, abbiamo appena creato un indicatore! Poco utile, però è un inizio 😀

Piano piano impareremo a creare tutti gli indicatori che vogliamo e strategie automatiche per migliorare il nostro trading! Se questa prima Guida PineScript – 01 ti è piaciuta ti consiglio di continuare con il resto!

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

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

Strategia che inganna

Profitti da capogiro e equityline bellissima! Ma non è tutto oro ciò che luccica, ecco perché questa è una strategia che inganna.

Ciao, sono Drilon e sono un programmatore con la passione per la finanza personale, in questo blog condivido il mio percorso.

Questa è una strategia che all’apparenza è potentissima però bisogna sapere cosa c’è sotto per valutare al meglio.

La logica che c’è sotto è: COMPRA quando il macd incrocia dal basso verso l’alto, fine!

Molto semplice ma già da qui si può intuire che se si utilizza su un asset che non cresce sempre il profitto va a quel paese.

In questo caso è stata applicata all’SP500 che sappiamo che cresce sempre da più di 100 anni “per struttura” (è l’andamento del mercato, l’uomo crea valore sempre, se non fosse così vorrebbe dire che come specie si andrebbe a peggiorare, ma questo è tutto un altro discorso).

Quindi questa strategia è efficace? SI MA non hai bisogno di questa strategia per fare una cosa del genere, alla fine è un PAC (Piani d’accumulo).

Questo è un esempio su BITCOIN

Ma vediamo su un asset più volatile come Palantir (PLTR)

Na merda! Ma questo perchè? Perché Palantir è stata listata, è andata per un paio di mesi verso l’alto e poi è crollata, quindi le posizioni sono tutte in negativo, poi magari tra 10 anni Palantir sarà la nuova Apple, però chi lo può sapere?!

Proprio questo è il problema, quindi tanto vale fare un PAC autonomamente.

Questo era un esempio del perché è importante capire come funziona una strategia, non si può applicare a tutto ed è un attimo perdere soldi. Attenzione alla strategia che inganna!

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

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

Ecco il codice per TradingView:

//@version=5
strategy(title="Forex", overlay=true,  precision=3)

ema = ta.ema(close, 200)

//macd
fast_length = input(title="Fast Length", defval=12)
slow_length = input(title="Slow Length", defval=26)
src = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing",  minval = 1, maxval = 50, defval = 9)
sma_source = input.string(title="Oscillator MA Type",  defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Plot colors
col_macd = input(#2962FF, "MACD Line  ", group="Color Settings", inline="MACD")
col_signal = input(#FF6D00, "Signal Line  ", group="Color Settings", inline="Signal")
col_grow_above = input(#26A69A, "Above   Grow", group="Histogram", inline="Above")
col_fall_above = input(#B2DFDB, "Fall", group="Histogram", inline="Above")
col_grow_below = input(#FFCDD2, "Below Grow", group="Histogram", inline="Below")
col_fall_below = input(#FF5252, "Fall", group="Histogram", inline="Below")
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
buySignal = ta.crossover(macd, signal)
sellSignal = ta.crossunder(macd,signal)
var count = 0
if(buySignal and close > ema)
    stopLoss = 10000.0
    for i = 0 to 5
        stopLoss := low[i] < stopLoss ? low[i] : stopLoss
    
    takeProfit = close + (close-stopLoss)*2
    count := count + 1
    strategy.order("buy"+str.tostring(count), strategy.long, 1, when = true)

// Questo serve per dire quando chiudere le operazioni
if(year == 2023 and month == 06)
    strategy.close_all("Close")

Corsi Gratuiti

Sei alla ricerca di corsi gratuiti per imparare a programmare o sulla finanza? Magari unire entrambe le cose?

Ciao sono Drilon e sono un programmatore con la passione per la finanza personale, in questo blog racconto il mio percorso finanziario.

Torniamo a te, vuoi dei corsi gratuiti eccoli qui.

Basilari

Financial Markets

Corso tenuto da Shiller, premio Nobel per l’economia, all’università di Yale. Introduce in maniera gentile argomenti fondamentali per iniziare a capire i mercati finanziari

LINK

Principles Of Macroeconomics

Corso dell’MIT che spiega concetti essenziali di macroeconomia, davvero interessante!

LINK

Intermediate Macroeconomics

Proseguo del corso precedente, utile per approfondire argomenti di cui sentirete parlare spesso

LINK

Introduction to Probability

Corso dell’MIT composto in due parti in cui si parla di variabili casuali, distribuzioni di probabilità, markov chain e inferenza bayesiana

LINK

Mathematical Methods for Quant Finance

Corso sempre dell’MIT che tratta distribuzioni di probabilità, analisi di serie storiche, ottimizzazione, simulazione Monte Carlo e processi stocastici

LINK

Intermedio

Investment Management with Python & ML

Composta da 4 corsi, questa specializzazione dell’HEDEC vi introdurrà a Python, ottimizzazione di portafoglio e Machine Learning per la finanza

LINK

Pricing Options with Mathematical Models

Offerto dalla Caltech, questo corso vi introdurrà al pricing delle opzioni nel discreto e nel continuo. Vi fornirà le basi per poter eventualmente continuare ad approfondire il pricing dei derivati

LINK

Interest Rate Models

Un’introduzione leggera ai modelli sui tassi d’interesse. Utile per capire la curva dei tassi, rischiosità dei bond, arbitrage, pricing theory, pricing di derivate

LINK

Financial Engineering and Risk Management

Serie di quatto corsi fondamentali offerti dalla Columbia University che trattano di ottimizzazione di portafoglio, struttura dei tassi d’interesse e derivate

LINK

Convex Optimization

Corso fondamentale per studiare l’ottimizzazione convessa. Per esempio, è fondamentale per applicare ed implementare i modelli di asset allocation nella vita reale

LINK

Avanzato

Derivatives Markets – Advanced Modeling and Strategies

Corso offerto dall’MIT in cui si entra nel vivo dei prodotti derivati, spiegando concetti essenziali per operare con questi strumenti

LINK

QuantEcon Lectures

Serie di lezioni/codici curata da Tom Sargent, premio Nobel per l’economia, in cui si parla di Python, economia quantitativa, data science, markow chain e Julia

LINK

Deep Learning

Specializzazione composta da cinque corsi per capire realmente il deep learning e le sue applicazioni

LINK

Performance Engineering of Software Systems

Sviluppa le tue conoscenze in C, iniziando a diventare un esperto

LINK

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

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