Eliminare la domenica dai conteggi

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #171989 quote
    Wolf Trades
    Participant
    Average

    Buon pomeriggio, posto qui il codice di un TS qualsiasi che vuole eliminare la domenica per i conteggi inerenti i parametri o trigger di entrata.

    Su una discussione precedente ho letto che serve un ciclo for, posto il codice per vedere se ho scritto bene.

    Grazie a tutti

    DefParam Cumulateorders = False
    DefParam PreLoadBars = 10000
    
    //Escludo la domenica
    
    FOR i = 1 to 1
    IF OpenDayOfWeek < 6 THEN          //solo i giorni da 0 a 5 (Lun-Ven)
    ENDIF
    NEXT
    FOR i2 = 2 to 2
    IF OpenDayOfWeek < 6 THEN          //solo i giorni da 0 a 5 (Lun-Ven)
    ENDIF
    NEXT
    FOR i3 = 3 to 3
    IF OpenDayOfWeek < 6 THEN          //solo i giorni da 0 a 5 (Lun-Ven)
    ENDIF
    NEXT
    FOR i4 = 4 to 4
    IF OpenDayOfWeek < 6 THEN          //solo i giorni da 0 a 5 (Lun-Ven)
    ENDIF
    NEXT
    FOR i5 = 5 to 5
    IF OpenDayOfWeek < 6 THEN          //solo i giorni da 0 a 5 (Lun-Ven)
    ENDIF
    NEXT
    // Pattern n.8 DIREZIONALITA' LONG opposto del Pattern n.9
    a = Dclose(i4) < Dopen(i4)   // la candela di 4 giorni fa è ribassista
    b = DClose(i3) > DClose(i3)  // la candela di 3 giorni fa ha una chiusura maggiore rispetto a quella di 4 giorni fa
    c = DClose(i3) > DClose(i3)  // la candela di 2 giorni fa ha una chiusura maggiore rispetto a quella di 3 giorni fa
    d = DClose(i) > DClose(i2)  // la candela di ieri  ha una chiusura maggiore rispetto a quella di 2 giorni fa
    
    // Pattern n.9 DIREZIONALITA' SHORT opposto del Pattern n.8
    aa = Dclose(i4) > Dopen(i4)   // la candela di 4 giorni fa è rialzista
    ba = DClose(i3) < DClose(i4) and DClose(i3) < DOpen(i3)  // la candela di 3 giorni fa ha una chiusura minore rispetto a quella di 4 giorni fa
    ca = DClose(i2) < DClose(i3) and DClose(i2) < DOpen(i2)// la candela di 2 giorni fa ha una chiusura minore rispetto a quella di 3 giorni fa
    da = DClose(i) < DClose(i2) and DClose(i) < DOpen(i) // la candela di ieri  ha una chiusura minore rispetto a quella di 2 giorni fa
    
    if (a and b and c and d) then
    PTRN008 = 1
    else
    PTRN008 = 0
    endif
    
    if (aa and ba and ca and da) then
    PTRN009 = 1
    else
    PTRN009 = 0
    endif
    TimeFrame(Default)
    Domenica = OpenDayofWeek = 6
    CondBUY = Close > DHigh(i)
    CondSELL = Close < DLow(i)
    Venerdi = OpenDayofWeek = 5 and CurrentTime >=205900
    
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket AND CondBUY and not Domenica and PTRN008 or PRTN009 THEN
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    If LongOnMarket AND Venerdi THEN
    SELL AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket AND CondSELL and not Domenica and PTRN008 or PRTN009 THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    set stop ploss SLSHORT
    set target pprofit TPSHORT
    ENDIF
    
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket AND Venerdi THEN
    EXITSHORT AT MARKET
    ENDIF
    
    
    #171990 quote
    robertogozzi
    Moderator
    Master

    Le righe da 6 a 25 non fanno assolutamente niente.

    Il resto del codice non lo capisco molto.

    Se provi a spiegarmi cosa vuoi fare vedo se posso aiutarti,

    #171994 quote
    Wolf Trades
    Participant
    Average

    Ciao Roberto, in sostanza vorrei che quando indico in qualsiasi strategia, per esempio “Highest[10] (High)” oppure “DClose(5)”

    nei conteggi non venga presa in considerazione la domenica.

    #171998 quote
    robertogozzi
    Moderator
    Master

    Farlo sarebbe difficilissimo e lentissimo, perché qualunque funzione ed indicatore dovresti riscriverlo, facendo ogni volta un sacco di cicli FOR…NEXT per evitare la domenica.

    L’unica è provare con gli orari personalizzati e vedere se li considera o meno.

    #172007 quote
    MauroPro
    Participant
    Veteran

    Non so se ti può servire come idea, ma in un mio TS sul Nasdaq CFD che, facendo una sola operazione al giorno, compra su base oraria il minimo daily ( o vende sempre su base oraria il massimo daily) per evitare la candela della domenica ho separato il giorno del lunedi dagli altri.

    Ecco il listato:

    // Nasdaq – timeframe giornaliero (con updateOnClose) + timeframe orario (default – senza updateOnClose)

    DEFPARAM CumulateOrders=False
    DEFPARAM Flatafter=220000

    monday = dayOfweek=1
    otherDays = (dayofweek >=2 and dayofweek <=5)

    //——————————————————–
    timeframe(daily,updateOnClose)

    dayHighMonday = Dhigh(1)
    dayLowMonday= Dlow(1)

    dayHigh = Dhigh(0)
    dayLow= Dlow(0)

    //———————————————————
    timeframe (1 hour)

    oneTrade = (barIndex-tradeIndex(1)>intradayBarIndex)

    if (low[1]<dayLow and close>dayLow and otherDays and oneTrade) or (low[1]<dayLowMonday and close>dayLowMonday and monday and oneTrade) then
    buy 1 contract at market
    endif

    if (high[1]>dayHigh and close<dayHigh and otherDays and oneTrade) or (high[1]>dayHighMonday and close<dayHighMonday and monday and oneTrade) then
    sellshort 1 contract at market
    endif

    //———————————————————–
    set stop %loss 0.5
    set target %profit 1.5

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

Eliminare la domenica dai conteggi


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Wolf Trades @lupo32 Participant
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by MauroPro
4 years, 7 months ago.

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