definire uno stop in base alla chiusura della candela

Viewing 15 posts - 16 through 30 (of 44 total)
  • Author
    Posts
  • #171258 quote
    Steven11
    Participant
    Average

    Roberto ho testato il nuovo codice che hai formulato ma purtroppo facendo i Backtest noto che le posizioni NON VENGONO CHIUSE NE CON GLI ORARI NE CON IL NUMERO DI BARRE NEGATIVE IN H4 , ti invio il codice e se hai modo di testarlo così vedi ( quando sono andato a vedere la lista delle posizioni chiuse noti subito che ci sono posizioni chiuse dopo 5 giorni e addirittura 17 candele negative) sicuro c’è qualcosa che non và.

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    t1 = (OpenDayOfWeek = 1) AND (Time >= 000000) AND (Time <= 170000)
    t2 = (OpenDayOfWeek = 2) AND (Time >= 000000) AND (Time <= 170000)
    t3 = (OpenDayOfWeek = 3) AND (Time >= 000000) AND (Time <= 170000)
    t4 = (OpenDayOfWeek = 4) AND (Time >= 000000) AND (Time <= 170000)
    t5 = (OpenDayOfWeek = 5) AND (Time >= 000000) AND (Time <= 170000)

    x1 = (OpenDayOfWeek = 9) AND (Time = 180000)
    x2 = (OpenDayOfWeek = 9) AND (Time = 180000)
    x3 = (OpenDayOfWeek = 9) AND (Time = 180000)
    x4 = (OpenDayOfWeek = 9) AND (Time = 180000)
    x5 = (OpenDayOfWeek = 5) AND (Time = 170000)

    //
    If OnMarket AND (x1 OR x2 OR x3 OR x4 OR x5) THEN
    SELL AT MARKET
    EXITSHORT AT MARKET
    ENDIF

    // Condizioni per entrare su posizioni long
    L1 = t1 OR t2 OR t3 OR t4 OR t5
    L2 = Not OnMarket

    indicator1 = ChandeKrollStopUp[10,20,3]
    indicator2 = ChandeKrollStopDown[10,20,3]
    c1 = (indicator1 CROSSES OVER indicator2)
    c2 = (open < close)
    c3 = (open > DClose(2))

    indicator3 = Average[56](high)
    c4 = (open > indicator3)
    c5 = (open < close)
    c6 = (open > DClose(2))

    indicator4 = SuperTrend[1,56]
    c7 = (open > indicator4)
    c8 = (open < close)
    c9 = (open > DClose(2))

    indicator5 = Average[50](high)
    c10 = (open > indicator5)
    c11 = (open < close)
    c12 = (open > DClose(2))

    IF (c1 and c2 and c3)OR(c2 and c3 and c4)OR(c2 OR c3 or c7) or(c2 and c3 and c10) OR (L1 AND L2) THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    // NUMERO BARRE OTTIMALI
    ONCE maxCandlesLongWithProfit = 20 // profitto long

    ONCE maxCandlesLongWithoutProfit = 2 // Limite long

    posProfit = (((close – positionprice) * pointvalue) * countofposition) / pipsize
    numberCandles = (BarIndex – TradeIndex)
    m1 = posProfit > 0 AND numberCandles >= maxCandlesLongWithProfit
    m3 = posProfit < 0 AND numberCandles >= maxCandlesLongWithoutProfit

    IF LONGONMARKET AND (m1 OR m3) THEN
    SELL AT MARKET
    ENDIF

    #171259 quote
    Steven11
    Participant
    Average

    Forse ho sbagliato la definizione nel numero di barre ottimali?? Voglio chiudere la posizione dopo 2 candele H4 rosse.

    Grazie

    #171261 quote
    robertogozzi
    Moderator
    Master

    Devi dargli l’orario della candela che usi, se la usi a 4 ore deve avere l’orario del 4 ore.

    Tieni presente che TIME è l’orario di chiusura, se vuoi puoi provare con OPENTIME che è l’apertura.

    Ad esempio TIME = 170000 significa che devono essere le 17 alla chiusura, oppure se usi OPENTIME significa che apre alle 17, quindi chiuderà le posizioni alle 21, se gli hai messo 210000.

    In alternativa devi usare il supporto MTF (cercando MTF potrai trovare tutto quello che c’è da sapere in merito), con il quale puoi scendere anche al singolo mkinuto, però avrai meno storico disponibile.

    #171264 quote
    Steven11
    Participant
    Average

    si Roberto sugli intervalli temporali va bene, ma adesso quello che non mi riesce nonstante c’è la def di numero barre ottimali in H4  NON CHIUDE POSIZIONE ALLA SECONDA BARRA ROSSA QUINDI ALLA SECONDA CHIUSURA IN H4 NEGATIVA come posso fare ??  la def non viene riconosciuta.Stò cercando di lavorare sulle perdite, ti mando uno screen di un report posizioni su Dax 30.

    Grazie ancora.

    DAX-report.png DAX-report.png
    #171266 quote
    Steven11
    Participant
    Average

    Roberto si potrebbe fare chiudere la posizione dopo 2 candele H4 negative in BASE AL CAMBIO DI COLORE DELLA CANDELA??

    #171267 quote
    Steven11
    Participant
    Average

    gli orari in H4 sono ( apertura candela H4 : 00:00 – 4:00 – 8:00 – 12:00 – 16:00 – 20:00)     ,     quindi se voglio fare chiudere tutte le posizioni aperte il venerdi alle 20:00 e rendere nuovamente operativo il sistema SOLO DOPO l’apertura del lunedì notte devo inserire :  x5 = (OpenDayOfWeek = 5) AND (Time = 200000) ; OPPURE x5 = (OpenDayOfWeek = 5) AND (OpenTime = 160000) e mi chiuderà le posizioni alle 20:00 giusto?

    #171270 quote
    robertogozzi
    Moderator
    Master

    Dovrebbero essere un’ora dopo, UTC+2, 1:00, 5:00, 9:00, 13:00, 17:00 e 21:00.

    Per le due candele negative, cosa intendi?

    #171271 quote
    Steven11
    Participant
    Average

    Roberto per la chiusura in candele è ok….INNANZITUTTO GRAZIE PER LA PAZIENZA ,

    L’ULTIMA COSA : VORREI UNA UNICA FORMULA CHE CONDIZIONA LA CHIUSURA AUTOMATICA DELLE POSIZIONI APERTE IL VENERDI ALLE 20:00FARE RITORNARE DI NUOVO IL SISTEMA OPERATIVO DOPO L’APERTURA DELLE 00.00 DEL LUNEDì NOTTE.

    QUINDI IL SISTEMA DEVE ESSERE SEMPRE OPERATIVO DA DOPO L’APERTURA DEL LUNEDì NOTTE FINO ALLE 20:00 DEL VENERDì CHE SEGUE….  gentilmente se mi riscrivi il nuovo codice IN BASE A QUESTE INDICAZIONI INSERENDO ANCHE GLI ORARI VISTO CHE NON SO CALCOLARLI CON UTC QUINDI DIFFERENZA ORARIA TIENI PRESENTE CHE OPERO SU INDICI AMERICANI E DAX30  (VOGLIO EVITARE I GAP DOWN DI APERTURA DEL LUNEDì NOTTE SONO QUELLI LA PRINCIPALE CAUSA DELLE PERDITE).

    Ti ringrazio infinitamente per la tua disponibilità.

    #171272 quote
    robertogozzi
    Moderator
    Master

    NON usare il maiuscolo, è considerata maleducazione su internet, equivalente ad urlare in una conversazione!

    #171276 quote
    Steven11
    Participant
    Average

    Scusa Roberto non lo sapevo.

    #171280 quote
    Steven11
    Participant
    Average

    Roberto ho provato fino ad adesso in ogni modo ma non funziona non chiude le operazioni aperte quando indicato sia con Time che con Opentime… se puoi aiutarmi mi sento totalmente impotente.

    Ti ringrazio infinitamente per la tua disponibilità.

    t1 = (OpenDayOfWeek = 1) AND (Time >= 010000) AND (Time <= 210000)
    t2 = (OpenDayOfWeek = 2) AND (Time >= 010000) AND (Time <= 210000)
    t3 = (OpenDayOfWeek = 3) AND (Time >= 010000) AND (Time <= 210000)
    t4 = (OpenDayOfWeek = 4) AND (Time >= 010000) AND (Time <= 210000)
    t5 = (OpenDayOfWeek = 5) AND (Time >= 010000) AND (Time <= 170000)

    x1 = (OpenDayOfWeek = 1) AND (Time = 210000)
    x2 = (OpenDayOfWeek = 2) AND (Time = 210000)
    x3 = (OpenDayOfWeek = 3) AND (Time = 210000)
    x4 = (OpenDayOfWeek = 4) AND (Time = 210000)
    x5 = (OpenDayOfWeek = 5) AND (Time = 170000)       lo ho fatto anche con   (OpenTime = 130000)  niente non me le chiude.

    #171320 quote
    robertogozzi
    Moderator
    Master

    Io questo l’ho provato sul DAX, 4 ore, e finziona perfettamente:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    t1 = (OpenDayOfWeek = 1) AND (Time >= 010000) AND (Time <= 210000)
    t2 = (OpenDayOfWeek = 2) AND (Time >= 010000) AND (Time <= 210000)
    t3 = (OpenDayOfWeek = 3) AND (Time >= 010000) AND (Time <= 210000)
    t4 = (OpenDayOfWeek = 4) AND (Time >= 010000) AND (Time <= 210000)
    t5 = (OpenDayOfWeek = 5) AND (Time >= 010000) AND (Time <= 170000)
    
    x1 = (OpenDayOfWeek = 1) AND (Time = 210000)
    x2 = (OpenDayOfWeek = 2) AND (Time = 210000)
    x3 = (OpenDayOfWeek = 3) AND (Time = 210000)
    x4 = (OpenDayOfWeek = 4) AND (Time = 210000)
    x5 = (OpenDayOfWeek = 5) AND (Time = 170000)
    
    //
    If OnMarket AND (x1 OR x2 OR x3 OR x4 OR x5) THEN
    SELL AT MARKET
    EXITSHORT AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni long
    L1 = t1 OR t2 OR t3 OR t4 OR t5
    L2 = Not OnMarket
    
    indicator1 = ChandeKrollStopUp[10,20,3]
    indicator2 = ChandeKrollStopDown[10,20,3]
    c1 = (indicator1 CROSSES OVER indicator2)
    c2 = (open < close)
    c3 = (open > DClose(2))
    
    indicator3 = Average[56](high)
    c4 = (open > indicator3)
    c5 = (open < close)
    c6 = (open > DClose(2))
    
    indicator4 = SuperTrend[1,56]
    c7 = (open > indicator4)
    c8 = (open < close)
    c9 = (open > DClose(2))
    
    indicator5 = Average[50](high)
    c10 = (open > indicator5)
    c11 = (open < close)
    c12 = (open > DClose(2))
    
    IF (c1 and c2 and c3)OR(c2 and c3 and c4)OR(c2 OR c3 or c7) or(c2 and c3 and c10) OR (L1 AND L2) THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // NUMERO BARRE OTTIMALI
    ONCE maxCandlesLongWithProfit = 20 // profitto long
    
    ONCE maxCandlesLongWithoutProfit = 2 // Limite long
    
    posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
    numberCandles = (BarIndex - TradeIndex)
    m1 = posProfit > 0 AND numberCandles >= maxCandlesLongWithProfit
    m3 = posProfit < 0 AND numberCandles >= maxCandlesLongWithoutProfit
    
    IF LONGONMARKET AND (m1 OR m3) THEN
    SELL AT MARKET
    ENDIF

    Fammi sapere te su quale candela non ha funzionato (indicami data ed ora d’apertura della candela a 4 ore, ed anche lo strumento se diverso dal DAX).

    #171354 quote
    Steven11
    Participant
    Average

    l’ho testato, sembra andar bene, se volessi far restare aperte le posizioni con le stesse condizioni di adesso ma chiudere le posizioni aperte SOLO il venerdì sera alle 20:00?  e rendere di nuovo operativo il sistema dalla notte del lunedì seguente?

    Ti ringrazio sei stato gentile e pieno di pazienza, ancora grazie mille.

    #171355 quote
    Steven11
    Participant
    Average

    Roberto mi spiego meglio fermo restando lo stop impostato in base alle 2 candele H4 con chiusura negativa che va bene, se la posizione dovesse “rimanere in vita” fino a venerdì sera alle 20:00 cosa devo modificare nel codice?

    #171356 quote
    robertogozzi
    Moderator
    Master

    Alla riga 13 devi mettere le ore 200000 anziché le 170000.

    Al lunedì mattina ricomincerà ad essere operativo all’orario indicato alla riga 3.

    Però così com’è il lunedì mattina NON riapre l’eventuale posizione chiusa il venerdì sera. E’ questo che vuoi?

Viewing 15 posts - 16 through 30 (of 44 total)
  • You must be logged in to reply to this topic.

definire uno stop in base alla chiusura della candela


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Steven11 @steven11 Participant
Summary

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

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