Announcement

Collapse
No announcement yet.

Multicharts: percorso di apprendimento

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • andy60rm
    replied
    Grazie Umberto per l'iniziativa, che reputo preziosa. Ho trovato su web diversa documentazione MC fatemi sapere se gradite che faccio un upload. Inoltre segnalo di nuovo il già citato videocorso di Malverti http://www.enricomalverti.com/2015/0...u-multicharts/
    Last edited by andy60rm; 06-07-2017, 12:02.

    Leave a comment:


  • Exploit
    replied
    Adesso stavo notando che poichè i settaggi di default di lmax hanno come orario di inizio di sessione alle 17.05, le barre a 15 minuti partono dalle 17.05 e poi la prossima barra è 17.20 anzichè 17.15 . Pertanto credo sia da modificare l'orario di inizio sessione nel quote manager

    Leave a comment:


  • Exploit
    replied
    Originally posted by Cesaforex View Post
    Grazie Zero...mi sembrava che mi mancasse qualcosa....
    hai qualche documentazione da segnalare su cui studiare?
    Scrivi in privato a me o Umberto il tuo skype.


    Quello che comunque non ho capito è se i dati storici da datafeed (no da Ascii) vengono automaticamente utilizzati da MC durante i backtest collegandosi al datafeed oppure vengono scaricati in locale?
    Per quel che ho capito io i dati comunque vengono scaricati in locale in una cartella cache, ma chiaramente è solo accessibile tramite MC e puoi esportare poi i dati in formati Ascii.

    Leave a comment:


  • Cesaforex
    replied
    Originally posted by Zero View Post
    Il DDE ti permette di prendere i dati live, ma i dati storici li devi sempre caricare dal file Ascii. In pratica una volta creato il simbolo con Data Source DDE si importano nello stesso simbolo i dati ascii.
    ....
    Zero, grazie anche per questa info.

    Quello che comunque non ho capito è se i dati storici da datafeed (no da Ascii) vengono automaticamente utilizzati da MC durante i backtest collegandosi al datafeed oppure vengono scaricati in locale?

    Leave a comment:


  • Cesaforex
    replied
    Grazie Zero...mi sembrava che mi mancasse qualcosa....
    hai qualche documentazione da segnalare su cui studiare?

    Leave a comment:


  • Exploit
    replied
    il codice viene eseguito a ogni nuova barra e al primo tick (dove la barra è legata al timeframe di riferimento. Es.: siamo su un 15M, la barra è quella del 15 minuti, Tf 1M la barra è quella del minuto), saranno poi le tue condizioni a determinare il da farsi della strategia.


    Queste sono le classiche impostazioni
    Screenshot_8.png
    e testiamo con questo codice
    buy 10 contract next bar at market;
    sell 10 contract next bar at market;



    Se invece interveniamo modificando cosi
    Screenshot_9.png
    il software effettuerà ordini di ingresso (se ci sono) 10 volte ogni nuova barra e al primo tick (non ogni tick) e esegue 10 volte le uscite subito dopo ogni singola entrata.



    Impostando cosi invece:
    Screenshot_11.png

    esegue ogni nuova barra e al primo tick
    1: ingresso long di 10
    2: esce dal primo ingresso
    3: ingresso long di 10



    Successivamente provando questo codice
    buy 10 contract next bar at market;
    buy 12 contract next bar at market;

    con queste impostazioni
    Screenshot_12.png

    esegue solo il primo ingresso long 10 contratti. Nel caso ci fosse stata l'uscita allora sarebbe entrato alla successiva barra con 12 contratti.





    .
    Mentre sulla meta4 e ora anche sulla meta5 con i nuovi aggiornamenti ci si puo' hedgiare, multicharts non permette l'hedging sullo stesso cambio. Pertanto in caso di strategie che prevedono hedging si deve farlo sugli altri cross.

    Detto questo i tipi di ordini sono:
    buy = entra long
    sell=chiude il long

    sellshort=entra short
    buytocover=chiude lo short

    E' inoltre importante ricordare che le barre del grafico visualizzano un orario di fine candela, il che significa che la barra delle 2200 su H1 è la barra iniziata alle 21.00.01 che termina alle 22.00


    Specifichiamo con del codice:

    Esempio1
    if time=2159 then
    sellshort 12 contract next bar at market;
    if time=2201 then
    buy 1 contract next bar at market;

    Con questo codice gli diciamo di entrare alle 2159 short con 12 contratti a mercato, successivamente andiamo long di 1 contratto alle 2201.
    Il software entrerà quindi short di 12 contratti, ma quando esegue il buy succede che chiude i 12 contratti short e longa di 1.

    Esempio2
    if time=2159 then
    buy 12 contract next bar at market;
    if time=2201 then
    sellshort 1 contract next bar at market;

    Con questo codice gli diciamo di entrare alle 2159 long con 12 contratti a mercato, successivamente andiamo short di 1 contratto alle 2201.
    Il software entrerà quindi long di 12 contratti, ma quando esegue lo short succede che chiude 12 contratti long e apre 1 contratto short a mercato.

    Esempio3
    if time=2159 then
    buy 10 contract next bar at market;
    if time=2201 then
    sell 5 contract next bar at market;

    Con questo codice gli diciamo di entrare long con 10 contratti a mercato, successivamente smezziamo la posizione long alle 2201 rimanendo quindi a mercato con 5 contratti long.

    Esempio4
    if time=2159 then
    sellshort 10 contract next bar at market;
    if time=2201 then
    buytocover 5 contract next bar at market;

    Con questo codice gli diciamo di entrare long con 10 contratti a mercato, successivamente smezziamo la posizione short alle 2201 rimanendo quindi a mercato con 5 contratti short.


    Di default qualora non vengano specificati il numero di contratti negli ordini, verrà preso il valore inserito nelle "Properties" del Signal
    Screenshot_13.png Qui l'opzione Fixed Shared Contracts ha un valore di 100 ovvero di 1 lotto considerando che sto usando Lmax come broker.


    Continue.....






    Leave a comment:


  • Cesaforex
    replied
    Originally posted by umbertosm View Post
    ciao, questa estate inizio a studiare Multicharts e man
    (...)
    Umberto,
    anch'io sto iniziando con il powerLanguage...

    Una cosa che non ho capito del linguaggio è quando il listato viene eseguito. Cioè qual'è l'evento che fa scattare il run del codice?
    Per esempio su Metatrader esistono funzioni built-in (onTick(), Oninit(), ecc) che vengono automaticamente eseguite in base agli eventi...ma con PowerLanguage sinceramente non ho capito...

    Da questo, poi, scaturiscono ulteriori dubbi sulla gestione delle posizioni..seguendo i vari 'tutorial' non capisco come il linguaggio riesca a riconoscere correttamente i vari ordini aperti e chiuderli in modo controllato....


    Leave a comment:


  • Exploit
    replied
    Prego.
    Controllare anche cliccando destro sul simbolo e successivamente "Fields To Collect" che siano spuntati tutti i campi che si vogliono prendere..
    Screenshot_7.png

    una volta flaggato "apply to all symbols" automaticamente farà la stessa scelta per gli altri simboli che andremo a creare.

    Leave a comment:


  • Cesaforex
    replied
    grazie mille!!!

    Leave a comment:


  • Exploit
    replied
    Il DDE ti permette di prendere i dati live, ma i dati storici li devi sempre caricare dal file Ascii. In pratica una volta creato il simbolo con Data Source DDE si importano nello stesso simbolo i dati ascii.
    E' IMPORTANTE E SOTTOLINEO IMPORTANTE evitare di far crushare multicharts altrimenti potreste ritrovarvi cancellata la serie storica e quindi dovete provvedere a ricaricare il tutto. Quindi evitate per esempio con la funzione text_new di plottare su ogni barra i valori che vi interessano. Un valore ogni tanto va bene, su una serie storica di 1 anno con dati plottati su ogni barra a 15 min probabilmente già vi si potrebbe bloccare.
    Last edited by Exploit; 17-08-2016, 16:01.

    Leave a comment:


  • Cesaforex
    replied
    Grazie Zero,
    quindi è come se MC utilizzasse un flusso dati derivante da MT4 esatto? sia per i dati 'nuovi' sia per quelli storici caricati in Mt4 sul simbolo linkato.

    Leave a comment:


  • Exploit
    replied
    http://www.multicharts.com/discussio...7598&hilit=dde

    Se nn sai cosa sia il DDE cercalo in rete che ci sono già molte spiegazioni in merito, non è il caso penso di intasare questo thread

    Comunque proprio adesso in 2 minuti ho collegato al dde della meta e sembra funzionare.Chiaramente da valutare bene il tutto

    Di seguito descrivo i passaggi da fare:

    1) Aprire la metatrader e accertarsi che sia spuntato il flag Abilita DDE server


    2)Aprire il Quote Manager e creare un nuovo simbolo manualmente
    Screenshot_2.png



    In questa finestra accertarsi di inserire il giusto nome del simbolo nel "Symbol Root" nel caso in cui abbiate prefissi o suffissi
    image_1057.png


    Cambiare quindi i settaggi in base al broker che usate. Specialmente il Big Point Value è molto importante poichè viene usato per i calcoli vari di stop loss, take profit ecc ecc.

    Price Scale indica quanti numeri decimali usa il broker o la fonte dati.

    Min movement 1 point

    Big Point Value settato a 1 vuol dire per esempio che quando scriviamo setstoploss(100) imposterà uno stop loss di 100 pips.
    Questo Big Point value cambia da broker a broker, quindi è da tenere presente nel codice della strategia di calcolare il tutto in base al BigPointValue.

    Screenshot_5.png

    3) Connettere il simbolo Screenshot_6.png

    Attached Files
    Last edited by Exploit; 17-08-2016, 15:13.

    Leave a comment:


  • Cesaforex
    replied
    Scusa Zero...DDE?

    Leave a comment:


  • Exploit
    replied
    E' anche possibile collegarsi via DDE. L'importazione dei dati duka si potrebbe far tranquillamente in UTC e poi dentro multicharts caricare in GMT. Successivamente i grafici varieranno in base al Timezone Exchange e/o Local automaticamente e/o Timezone da voi creato.
    Resta il fatto che a livello di valori monetari sembra esserci differenza abbastanza notevole con backtest con altri data feed a pagamento. Almeno io con dati Duka ottengo risultati monetariamente inferiori pur rispettando l'identica strategia. Chissà magari è un bene...

    In definitiva credo si possi pensare di lavorare coi dati live importati via DDE e successivamente mandar gli ordini da multicharts a metatrader usando file di testo. Non ci ho ancora provato ma potrebbe essere una soluzione.

    Multicharts nel mandare gli ordini al broker lavora in modo Sync e potrebbe non esserci corrispondenza col broker. Per questo da codice è necessario prepararsi a questi problemi e/o anche lavorare con un altro grafico non sincronizzato dove eseguirà tutta la strategia come fosse in backtest. In modo visuale ci saranno quindi differenze tra gli ordini del grafico Sync e gli ordini del grafico NO Sync
    Last edited by Exploit; 17-08-2016, 13:50.

    Leave a comment:


  • Cesaforex
    replied
    Per il forex, secondo me, si potrebbero utilizzare i dati storici Dukas scaricati con TickDownloader e importarli come custom data.

    Bisognerebbe provare, anche se non ho ben capito il discorso sul TimeZone..cioè con MT4 l'export lo facevo in base al timezone del mio Broker..con MC forse è meglio fare UTC considerando che il broker potrebbe cambiare o il discorso vale lo stesso secondo voi?

    F.

    Leave a comment:

Working...
X