come escludere la domenica dal conteggio?

Viewing 13 posts - 16 through 28 (of 28 total)
  • Author
    Posts
  • #112256 quote
    danieleputzu
    Participant
    New

    eccomi…

    DEFPARAM CUMULATEORDERS=FALSE
    C1= CLOSE CROSSES OVER DHIGH(21) AND TIME>=030000 AND TIME<=190000
    C2= CLOSE CROSSES OVER DHIGH(6) AND TIME>=030000 AND TIME<=190000
    IF C1 or C2 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    IF LONGONMARKET AND BARINDEX-TRADEINDEX=30 THEN
    SELL AT MARKET
    ENDIF
    IF SHORTONMARKET AND BARINDEX-TRADEINDEX=30 THEN
    EXITSHORT AT MARKET
    ENDIF
    SET TARGET PPROFIT 500
    SET STOP PLOSS 410
    //TRAILING STOP
    TGL=160
    TGS=320
    if not onmarket then
    MAXPRICE = 0
    MINPRICE = close
    PREZZOUSCITA = 0
    ENDIF
    if longonmarket then
    MAXPRICE = MAX(MAXPRICE,close)
    if MAXPRICE-tradeprice(1)>=TGL*pointsize then
    PREZZOUSCITA = MAXPRICE-TGL*pointsize
    ENDIF
    ENDIF
    if shortonmarket then
    MINPRICE = MIN(MINPRICE,close)
    if tradeprice(1)-MINPRICE>=TGS*pointsize then
    PREZZOUSCITA = MINPRICE+TGS*pointsize
    ENDIF
    ENDIF
    if onmarket and PREZZOUSCITA>0 then
    EXITSHORT AT PREZZOUSCITA STOP
    SELL AT PREZZOUSCITA STOP
    ENDIF

     

    #112344 quote
    robertogozzi
    Moderator
    Master

    Per favore usa il pulante “Insert PRT code” per inserire codice, in modo da renderlo più leggibile. Grazie 🙂

    Per favorire la lettura del codice, come di un qualsiasi teso, NON usare solo i caratteri maiuscoli, ma alterna tra maiuscoli e minuscoli, è più chiaro e più carino e si legge meglio. Ad esempio se crei una variabile chiamata UltimoPrezzoDelGiorno si legge meglio di ULTIMOPREZZODELGIORNO. Lo stesso vale per le istruzioni, è meglio TradeIndex che TRADEINDEX, meglio UpdateOnClose che UPDATEONCLOSE. In ogni caso, se non si vuole intervallare maiuscolo e minuscolo,  è comunque preferibile usare tutto minuscolo piuttosto che tutto maiuscolo, è meglio tradeindex di TRADEINDEX.

    Nel tuo codice a che ti servono le righe 10-12 dal momento che non entri mai Short?

    Per aprire operazioni solo da lunedì a venerdì sostituisci la riga 4 con:

    IF (C1 or C2) AND OpenDayOfWeek >= 1 AND OpenDayOfWeek <= 5 THEN
    #112363 quote
    danieleputzu
    Participant
    New

    Ciao Roberto, in realta’  ho postato solo parte del codice, solo long per non fare casini, si per entrare dal Lunedi al venerdì ok, ma non riesco a non fargli NON contare la domenica!!!

    #112366 quote
    robertogozzi
    Moderator
    Master

    Ma se non c’è nessun conteggio, In quale punto del codice ti serve escludere la domenica?

    #112397 quote
    danieleputzu
    Participant
    New

    Buongiorno Roberto, ancora grazie per i tuoi consigli.

    Cerchero’ di spiegarmi meglio…se dico al ts di comprare se la candela 1h crossa il massimo di 10 giorni fa (dhigh(10)) primo problema nel contare indietro mentre i giorni passano capitera’ che andra’ a considerare i livelli anche della domenica,

    secondo problema (ma questo e’ mio persanale non di prt) e’ che mi servirebbe che nell’ottimizazzione non si contasse la domenica ad esempio se ottimizzo quel 10(dieci giorni fa) sicuro becchera’ anche una domenica e siccome devo riportare tutto su la mt4 di un altro broker che a differenza di IG non considera i dati della domenica…

    come possiamo fare?

    Grazie…

    #112402 quote
    robertogozzi
    Moderator
    Master

    Per l’ottimizzazione non c’è niente da fare, non so se cambierà quaòcosa con la v11, ma fino alla 10.3 non si possono escludere dei giorni. TUTTE le candele verranno prese in considerazione (la personalizzazione degli orari di trading è un effetto visivo, tu non vedi certe ore e giorni, ma il sistema ce l’ha e li considera).

    Quindi anche per il Dhigh(10) vale la stessa cosa, prende la decima candela giornaliera precedente quella corrente. L’unica cosa è, ogni volta che devi fare riferimento ad un periodo fare un ciclo FOR..NEXT o WHILE…WEND. Se fai la ricerca poche volte e per un periodo breve, tipo 10-20 giorni, non comporta gran che, se devi farci riferimento spesso e per periodi anche di 100 giorni… allora potrebbe esserci un notevole rallentamento della strategia e dei relativi backtest.

    #112404 quote
    danieleputzu
    Participant
    New

    Ho capito, confermi quello che avevo notato, a questo punto cosa mi consiglieresti?

    che conteggio posso fare per far si che possa inserire un valore corretto sulla mt4?

    ad esempio, se conto 13 candele indietro comprese le domeniche e vado ad escludere le domeniche il conteggio regge bene 6 giorni…

    #112406 quote
    robertogozzi
    Moderator
    Master

    Puoi usare questo codice:

    Periodi = 10
    i = 0
    j = 0
    While i < 10
       x = OpenDayOfWeek[j]
       If x >= 1 AND x <= 5 Then
          i = i + 1
          //
          // qui metti quello che vuoi fare
          //
       Endif
       j = j + 1
    Wend

    Metti tu I periodi al posto di 10 e dove ci sono i commenti metti le azioni che vuoi fare quando si tratta di una candela che non è nel fine settimana.

    Se sei sul Giornaliero è semplice, se, invece, sei in intraday è più complicato.

    #112416 quote
    danieleputzu
    Participant
    New

    Ok Roberto, provo…l’ottimizazzione del parametro la devo fare su h1 ma su una candela daily, quindi usero dhigh/dlow…ti faccio sapere, grazie…

    #112417 quote
    danieleputzu
    Participant
    New
    DEFPARAM CUMULATEORDERS=FALSE
    
    Periodi = a
    i = 0
    j = 0
    While i < a
    x = OpenDayOfWeek[j]
    If x >= 1 AND x <= 5 Then
    i = i + 1
    //
    // qui metti quello che vuoi fare
    //
    
    C1= CLOSE CROSSES OVER DHIGH(periodi)
    C2= TIME>=090000 and time<=180000
    IF C1 AND C2 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    IF LONGONMARKET AND BARINDEX-TRADEINDEX=22 THEN
    SELL AT MARKET
    ENDIF
    
    
    SET STOP PLOSS 130
    SET TARGET PPROFIT 300
    
    Endif
    j = j + 1
    Wend
    
    1.jpg 1.jpg
    #112432 quote
    robertogozzi
    Moderator
    Master

    Purtroppo PRT ha problemi con i cicli, non riesce a gestire troppe iterazioni.

    Se, ad esempio, sei su TF a 1 ora e vuoi andare indietro di 10 giorni, in realtà deve fare 240 cicli, se sei su 1 minuto non ne parliamo.

    Non credo sia possibile arrivare ad una soluzione del tuo problema.

    #112434 quote
    danieleputzu
    Participant
    New

    grazie Roberto per averci provato, ti auguro un buon fine settimana…

    #112441 quote
    robertogozzi
    Moderator
    Master

    Grazie, anche a te.

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

come escludere la domenica dal conteggio?


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 27 replies,
has 3 voices, and was last updated by robertogozzi
6 years, 3 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 10/23/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...