Buy non desiderato

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
    Posts
  • #131862 quote
    Giovanni Belli
    Participant
    Average

    Buongiorno Roberto, spero di non approfittarmi troppo della tua pazienza però mi trovo davanti a un quesito che non riesco a spiegarmi.

    sto testando un sistema in cui fornisco prezzo di ingresso short e long solo in alcuni casi. ho impostato anche un flat time che fa partire tutti i contratti solo dopo le 9 del mattino.

    le condizioni di acquisto le determino a inizio giornata mentre poi lavoro su un timeframe di 5min.

    La mia domanda è, come mai parte l’acquisto (ti allego foto) verso le 10 del mattino quando ormai non ci sono più le condizioni? le condizioni richieste si erano verificate verso le 4 c.ca del mattino.

    Ti allego immagine e PRT code.

    Nel caso volessi provare a backtestare uso timeframe5min con 100.000 unità su eur/usd.

     

    Grazie mille

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    // Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l'orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
    DEFPARAM FLATBEFORE = 090000
    // Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all'orario "Flat After"
    DEFPARAM FLATAFTER = 221500
    
    // Impedisce al sistema di tradare in giorni specifici della settimana
    //daysForbiddenEntry = OpenDayOfWeek = 1 OR OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
    timeframe (daily,UpdateOnClose)
    giornipassati=1
    
    ratio1=abs(dclose(1*giornipassati)-dopen(1*giornipassati))
    range2=dhigh(2*giornipassati)-dlow(2*giornipassati)
    range1=dhigh(1*giornipassati)-dlow(1*giornipassati)
    ave2=dlow(2)+(range2/2)
    ave1=dlow(1)+(range1/2)
    
    
    aveMove= ave1+(ave1-ave2)//+(ind[1*giornipassati]-ind[2*giornipassati])
    BodyP=(ratio1)*0.6
    rangeP=(range1)*0.7
    
    topP=aveMove+(bodyP/2)
    BotP=aveMove-(bodyP/2)
    highP= ((rangep-bodyp)/2)
    //lowP= ((rangep-bodyp)/2)
    
    timeframe(5mn, UpdateOnClose )
    
    IF intradaybarindex = 0 then
    countposition=0
    endif
    
    
    
    c1=close crosses under topP
    c2=close crosses over botp
    c3= (countposition < 2)
    
    
    
    if c1 and c3 then
    sellshort 1 contract at market
    countposition=countposition + 1
    endif
    
    if c2 and c3  then
    buy 1 contract at market
    countposition=countposition + 1
    endif
    
    
    set target profit highp
    set stop loss rangep
    Schermata-2020-05-16-alle-11.51.41.png Schermata-2020-05-16-alle-11.51.41.png
    #132087 quote
    Nicolas
    Keymaster
    Master

    Le tue variabili:

    topP = aveMove + (bodyP / 2 )
    BotP = aveMove (bodyP / 2 )
    Vengono calcolati solo una volta al giorno (con "updateonclose"), quindi stai utilizzando quelli del giorno precedente. Questi valori non cambieranno mai durante il giorno fino alla chiusura della barra giornaliera.
    A proposito, FLATBEFORE = 090000 significa che nessun ordine sarà aperto fino alle 9, ma tutti i codici vengono ancora letti e le variabili calcolate!
Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.

Buy non desiderato


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 1 reply,
has 2 voices, and was last updated by Nicolas
5 years, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 05/16/2020
Status: Active
Attachments: 2 files
Logo Logo
Loading...