Programmazione Base cTrader | Investire.biz

Programmazione Base cTrader

06 ott 2020 - 13:59

21 mar 2023 - 09:05

Ascolta questo articolo ora...

Come si possono impostare i trading system? Ecco un breve tutorial per approcciare alla programmazione di indicatori con la piattaforma cTrader di Kimura

Nel corso della tua attività di trading, quante volte avresti voluto provare a modificare leggermente un indicatore? Non intendo modificare i parametri ma ad esempio aggiungere delle informazioni alla linea che sull'indicatore base non esistono. E' con questo spirito che provo a guidarti alle basi per la costruzione di un indicatore con cTrader.
 

Iniziamo

Dopo aver acceso il nostro cTrader accediamo alla sezione Automate:



Cliccando poi su indicators e successivamente sul bottone new si apre il template dell'indicatore.

 

Il template con il codice sarà cosi costituito:
 



Ora se non familiarizzi con la programmazione potrebbe sembrarti ostico il tutto. Non ti preoccupare ora analizziamo tutto passo passo. La parte iniziale prevede degli "using" che non sono altro che delle informazioni che vengono date a cTrader per dirgli che "useremo" delle funzioni o delle proprietà o degli oggetti che sono implementati la dentro.

Namespace serve per dichiarare che utilizzeremo e che il nostro stesso indicatore appartiene allo spazio dei nomi cAlgo (è una cosa un pò tecnica ma non è necessario comprenderla subito, in caso approfondisci cercando su Google).

Arriviamo ora al cuore. Tra parentesi quadre viene definito il nostro indicatore con i seguenti parametri:
 

  • IsOverlay dice a cTrader se il nostro indicatore sarà sul grafico (come la SMA) o su una finestra a parte (come l'RSI)
  • TimeZone dice a cTrader che utilizzeremo eventualmente date e ore con orario UTC
  • AccessRight dice a cTrader se dobbiamo utilizzare risorse esterne alla piattaforma, come ad esempio se dovessimo scrivere su File ecc...

 

Tralasciando ora i vari modificatori class, public, override ecc, che possono essere approfonditi tramite una semplice ricerca su Google, in quanto derivano dal paradigma ad oggetti della programmazione. Vediamo che il template ci propone:
 

  • Parameter con defaultValue = 0.0 di nome parameter e di tipo double (numero con virgola)
  • Result che è una indicator series ovvero una serie di numeri che poi verranno tracciati sul grafico. questi numeri non sono altro che dei punti che verranno poi uniti da una linea
  • La funzione Initialize() è importante e viene eseguita solo nel momento in cui andiamo a mettere l'indicatore sul grafico
  • La funzione calculate che viene chiamata per calcolare dei valori dell'indicatore

 

Pinbar indicator

Proviamo ora a costruire un indicatore che non fa altro che indicarci la formazione di una pinbar al rialzo o al ribasso:
 

  1. la pinbar deve essere a rialzo se ha il prezzo di apertura inferiore a quello di chiusura e vice versa per quella a rialzo
  2. ci devono essere 2 parametri uno relativo alla percentuale massima do body che la pinbar deve avere e uno rispetto al massimo break out
  3. alla presenza di una pinbar deve essere presentata una freccia che indichi il verso della pinbar (rialzista o ribassista)

 



Per i nostri conti abbiamo bisogno dei dati OHLC (Open High Low Close) e in base a questi ricaviamo:
 

  1. l'escursione di prezzo in valore assoluto
  2. il prezzo al 50%
  3. la massima chiusura per la pinbar rialzista
  4. la massima chiusura per la pinbar ribassista


Per fare questo cTrader ci permette di utilizzare Bars.LowPrices che è una serie di elementi, e noi prendiamo l'elemento attuale tramite il parametro index, che viene passato dalla funzione.
 

double lastLow = Bars.LowPrices[index];


Dopo aver recuperato tutte le info della candela, Il primo if verifica che la differenza tra apertura e chiusura sia minore dell'escursione moltiplicata il parametro percentuale di massima escursione quindi se l' espressione:
 

priceExcursion * BodyPerc < Math.Abs(lastOpen - lastClose)

E' vera quindi se apertura - chiusura in valore assoluto è maggiore dell'escursione voluta la funzione fa return, ovvero ritorna senza fare altro. Successivamente se:
 

lastOpen < lastClose && lastOpen > halfPrice && lastClose > halfPrice && lastClose >= highCloseTh

l'apertura è < della chiusure e l'apertura è sopra al 50% del prezzo e la chiusura è oltre la soglia minima di chiusura


allora in nome dell'oggetto sarà "Pin-Up X" dove X è l'indice della serie (in realtà questo parametro serve solo per non dare nomi univoci agli oggetti). Viene calcolato un offset in y perchè la freccia che andremo a disegnare non sia troppo sovrapposta al grafico. Infine con:

Chart.DrawText(arrowName, upArrow, index - 1, y, Color.Green);


disegnamo un testo con il valore upArrow alla posizione index-1 in quanto il testo viene scritto a partire dal bordo destro della candela quindi necessitiamo di calcolare i valori al tempo i-esimo ma dobbiamo "stamparli" su grafico al tempo i-1. 

Successivamrnte scegliamo il colore verde per la pinbar rialzista. Lascio a te studiare il caso ribassista mostrato nella figura precedente.

Per fare il build dell'indicatore premi il pulsante build nella barra in alto e controlla nella finestrina buildResults che non ci siano stati errori e in caso correggili. 

Troverai direttamente l'indicatore in cT con il nome che gli hai dato nel sotto menu custom

 

Indicatore all'opera

 

Ecco il nostro indicatore all'opera con i parametri standard.

 

Conclusioni

Nel codice è volutamente escluso il caso in cui OPEN è uguale a CLOSE. Lascio a te la gestione e l'implementazione del caso in questione qualora tu voglia cimentarti.

La semplicità di implementazione è decisamente disarmante, il motore di cTrader è il C-Sharp (C#) che puoi approfondire tranquillamente su Google. Prova a implementare un tuo indicatore o estendere questo. Puoi commentare l'articolo o scrivermi per dubbi e perplessità o richiedermi approfondimenti.

 

 

 

 

0 - Commenti

I Nostri Partners



Malta

ELP Finance LTD

34, Wied Ghomor Street, St. Julians STJ 2043 – Malta

+356 20 341590

Switzerland

ELP SA

Corso San Gottardo 8A, 6830 Chiasso, Switzerland

+41 91 9228169

Investire.biz non offre servizi finanziari, regolamentati o di investimento. Le informazioni presenti sul sito non devono essere considerate consigli di investimento personalizzati e sono disseminate sul sito e accessibili al pubblico in generale. Tutti i link e i banner sui siti web della società puntano verso società finanziarie, fornitori di servizi di investimento o banche regolamentate in Europa. Si prega di leggere Dichiarazione di non responsabilità, Informativa sui rischi, Informativa sul trattamento dei dati personali e Termini e condizioni prima di utilizzare questo sito Web.

L’utilizzo del presente sito è soggetto al diritto svizzero, che ha giurisdizione esclusiva in relazione all’interpretazione, applicazione ed effetti delle condizioni d’uso. Il tribunale cantonale competente avrà giurisdizione esclusiva su tutti i reclami o le controversie derivanti da, in relazione a o in relazione al presente sito web ed al suo utilizzo.

Le informazioni presenti sul sito web non devono essere considerate consigli di investimento personalizzati e sono disseminate sul sito e accessibili al pubblico in generale. Tutti i link e i banner sui siti web di ELP SA o ELP Finance LTD (di seguito il “gruppo ELP” o “ELP”) indirizzano verso società finanziarie, fornitori di servizi di investimento o banche regolamentate in Europa. Gli strumenti finanziari menzionati nel presente sito web possono essere soggetti a restrizioni di vendita in alcune giurisdizioni.

Continuando ad accedere o utilizzare questo sito web o qualsiasi servizio su questo sito, dichiari di accettarne i termini e condizioni. Tutti gli investimenti finanziari comportano un certo livello di rischio. Il trading e la speculazione finanziaria comportano un alto livello di rischio e potrebbe non essere adatto a tutti gli investitori. Prima di decidere di investire dovresti considerare attentamente i tuoi obiettivi di investimento, il livello della tua esperienza, la tua disponibilità ad assumersi dei rischi e consultare un consulente indipendente. C'è sempre la possibilità di perdere l'investimento, per intero o parte di esso. Quindi ti suggeriamo di investire denaro che puoi permetterti di perdere.

Dichiarazione di non responsabilità - Informativa sui rischi - MAR - Informativa sul trattamento dei dati personali - Termini e condizioni - Codice Etico - Cookie policy - Privacy Policy

© 2024 Investire.biz, all rights reserved.