come impostare il sistema per renderlo operativo ad un determinato timeframe

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
    Posts
  • #172894 quote
    Steven11
    Participant
    Average

    Buonasera Roberto vorrei chiederti quando imposto l’operatività del sistema su un timeframe a 4 ore oppure a 15 minuti devo specificarlo nel codice oppure lo legge automaticamente sul timeframe sul quale ho avviato la strategia?

    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    Timeframe(4 hour,UpdateOnClose)
    
    Cond = Timeframe(default)
    #172899 quote
    robertogozzi
    Moderator
    Master

    La riga 4 NON è consentita, TIMEFRAME deve essere su una riga da solo (al massimo seguito da un commento), non può essere assegnato perché NON restituisce niente. Si dice impropriamente istruzione, ma non fa niente, è una DIRETTIVA che istruisce ProOrder di eseguire le righe che seguono nel time frame a 4 ore.

    Se usi un unico time frame (quello che è sul grafico), non importa che tu usi l’istruzione TIMEFRAME.

    Se usi TIMEFRAME, come nel tuo esempio (dopo avere tolta la riga 4), esegue le istruzioni che ci sono dopo (tutte, se non è indicato più sotto un altro TF) sul time frame a 4 ore, purché sul grafico non ci sia:

    • un TF maggiore di 4 ore
    • un TF di cui il 4 ore sia un multiplo (quindi 2 ore, 1 ora, 30 minuti, 1 minuto, ecc… ma NON 25 minuti perché 4 ore, cioè 240 minuti, NON sono un multiplo di 25).
    #172903 quote
    Steven11
    Participant
    Average

    perfetto Roberto , un’ultima cosa, non essendo sicuro di aver fatto bene, in pratica vorrei dare la condizione ad un sistema di entrare subito (mentre si sta formando la candela) alla rottura del massimo della candela precedente quindi subito al superamento del massimo di un eventuale spike della candela precedente….come devo scrivere nel codice affinchè ottenga questo? Grazie

    #172932 quote
    robertogozzi
    Moderator
    Master

    Intanto ti consiglio di cercare nel la parola MTF, Multi o Multiple Time Frame, in modo da leggere i vari blog, articoli ed esempi su come usare più TF contemporaneamente.

    Questo è il codice per entrare Long al superamento del massimo della candela giornaliera, usando un TF di di tua scelta (1 ora o 1 minuto o 10 secondi). Più piccolo è il TF, minore è l’intervallo di dati storici su cui puoi fare i backtest. 200K barre a 4 ore sono un certo tempo (circa 15 anni), mentre su un TF di 10 secondi sono appena 10-11 giorni):

    DEFPARAM CumulateOrders = False
    Timeframe(Daily,UpdateOnClose)
    Massimo = high
    Timeframe(default)
    IF close > Massimo THEN
       BUY 1 CONTRACT AT Market
    ENDIF

    Però per entrare alla rottura di un prezzo giornaliero non è necessario usare più TF (è opportuno se vuoi gestire altri aspetti, come il trailing stop ad esempio), in quanto basta alla chiusura giornaliera piazzare un ordine pendente ad un prezzo maggior del massimo:

    DEFPARAM CumulateOrders = False
    BUY 1 CONTRACT AT high + 1*PipSize STOP  //entra 1 pip sopra il massimo
    #172988 quote
    Steven11
    Participant
    Average

    ok Roberto ma se io voglio far entrare il sistema in acquisto al superamento del massimo (cioè il massimo sarebbe quello dello spike) della candela precedente sia essa una candela a 15 minuti oppure una candela h4 come dovrei scrivere?

    scrivendo così andrebbe bene? ma noto che mi fa entrare al massimo del corpo della candela,

    ONCE a1 = 1.0
    c1 = (close > high[1])
    #172994 quote
    robertogozzi
    Moderator
    Master

    Va bene la riga 2.

    La riga 1 non capisco, forse è il numero di pips oltre la rottura? In questo caso è meglio scrivere:

    ONCE a1 = 1.0 * PipSize

    per essere sicuro che sia sempre interpretato come un pip e non un prezzo (sul Dax non cambia niente, ma su Eur/Usd 1.90 è un’enormità)!

    #172997 quote
    Steven11
    Participant
    Average

    ah ok quindi in questo modo posso regolare l’ingresso ad esempio se voglio farlo entrare 5 punti sopra il massimo metterò :

    ONCE a1 = 5.0 * PipSize

    giusto?

    #173004 quote
    robertogozzi
    Moderator
    Master

    Questa è la definizione di A1, poi devi usarla per aprire la posizione:

    If Mie CondizioniLong and close > (high[1] + a1) then
       Buy 1 contract at Market      //entrata a Mercato
    Endif
    //
    Buy 1 contract at (high[1] + a1) STOP //entrata con ordine pendente STOP
    #173016 quote
    Steven11
    Participant
    Average

    grazie Roberto ciao

Viewing 9 posts - 1 through 9 (of 9 total)
  • You must be logged in to reply to this topic.

come impostare il sistema per renderlo operativo ad un determinato timeframe


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Steven11 @steven11 Participant
Summary

This topic contains 8 replies,
has 2 voices, and was last updated by Steven11
4 years, 7 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 07/01/2021
Status: Active
Attachments: No files
Logo Logo
Loading...