Indicatori mi sembra non seguano il sistema

Viewing 15 posts - 1 through 15 (of 25 total)
  • Author
    Posts
  • #238114 quote
    musoditopo
    Participant
    New

    Buongiorno ,scusate, ho scritto questo semplice sistema che andrebbe short al contemporaneo

    verificarsi di 2 eventi (Macd <0 e williams acc dist <sua sma 34) ma invece va short come da chart

    allegato al solo verificarsi di una condizione (Macd <0)……non riesco proprio a capire dove sbaglio o se

    e’ un baco del programma prorealtime(non credo ci sara’ sicuramente una causa)
    L’ho scritto con la funzione semplificata di creazione tra l’altro e non funziona lo stesso

    ecco il sistema e in allegato il chart dove si vede chiaramente che va short nelle ultime barre con il solo

    segnale short del macd ma il williams acc distrib sarebbe long perche’ sopra sua mm 34 per cui fornisce

    un falso segnale…….grazie infinite e scusate Musoditopo cari saluti

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    // Condizioni per entrare su posizioni long
    indicator1 = MACD[12,26,8](close)
    c1 = (indicator1 >= 0)
    indicator2 = WilliamsAccumDistr(close)
    indicator3 = Average[34](WilliamsAccumDistr(close))
    c2 = (indicator2 >= indicator3)
    
    IF c1 AND c2 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni long
    indicator4 = MACD[12,26,8](close)
    c3 = (indicator4 <= 0)
    indicator5 = WilliamsAccumDistr(close)
    indicator6 = Average[34](WilliamsAccumDistr(close))
    c4 = (indicator5 <= indicator6)
    
    IF c3 OR c4 THEN
    SELL AT MARKET
    ENDIF
    
    // Condizioni per entrare su posizioni short
    indicator7 = MACD[12,26,8](close)
    c5 = (indicator7 <= 0)
    indicator8 = WilliamsAccumDistr(close)
    indicator9 = Average[34](WilliamsAccumDistr(close))
    c6 = (indicator8 <= indicator9)
    
    IF c5 AND c6 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    // Condizioni per uscire da posizioni short
    indicator10 = MACD[12,26,8](close)
    c7 = (indicator10 >= 0)
    indicator11 = WilliamsAccumDistr(close)
    indicator12 = Average[34](WilliamsAccumDistr(close))
    c8 = (indicator11 >= indicator12)
    
    IF c7 OR c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    #238117 quote
    musoditopo
    Participant
    New

    Scusate ho provato anche a riscriverlo premettendo le condizioni di status sul

    mercato (es if not longmarket o if shortonmarkets ecc) cosi’ come segue ma non funziona lo stesso:

    va short ad es quando non dovrebbe andarci  ma non capsco dove sbaglio

    sono mesi che ci sbatto la testa grazie infinite

     

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket then
    
    
     
    indicator1 = MACD[12,26,8](close)
    c1 = (indicator1 >= 0)
    indicator2 = WilliamsAccumDistr(close)
    indicator3 = Average[34](WilliamsAccumDistr(close))
    c2 = (indicator2 >= indicator3)
    
    IF c1 AND c2 THEN
    
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    endif
    // Condizioni per uscire da posizioni long
    If LongOnMarket then
     
    
    indicator4 = MACD[12,26,8](close)
    c3 = (indicator4 <= 0)
    indicator5 = WilliamsAccumDistr(close)
    indicator6 = Average[34](WilliamsAccumDistr(close))
    c4 = (indicator5 <= indicator6)
     
    IF c3 OR c4 THEN
    SELL AT MARKET
    ENDIF
    ENDIF
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket then
    indicator7 = MACD[12,26,8](close)
    c5 = (indicator7 <= 0)
    indicator8 = WilliamsAccumDistr(close)
    indicator9 = Average[34](WilliamsAccumDistr(close))
    c6 = (indicator8 <= indicator9)
     
    IF c5 AND c6 THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    ENDIF
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket then
    indicator10 = MACD[12,26,8](close)
    c7 = (indicator10 >= 0)
    indicator11 = WilliamsAccumDistr(close)
    indicator12 = Average[34](WilliamsAccumDistr(close))
    c8 = (indicator11 >= indicator12)
     
    IF c7 OR c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    ENDIF
    // Stop e target: Inserisci qui i tuoi stop di protezione e profit target
    
    #238121 quote
    Iván González
    Moderator
    Master

    Il codice è corretto. Ho indagato sull'errore e ho visto che il calcolo dell'indicatore Williams differisce a seconda dello strumento. Nella coppia EUR/USD sta dando un risultato corretto. Nel Russell c'è un offset di 1 barra. Indirizzerò questo problema al supporto tecnico affinché possano esaminarlo.

    robertogozzi and musoditopo thanked this post
    #238125 quote
    musoditopo
    Participant
    New

    Grazie infinite Ivan e complimenti per l’efficienza che avete in questo forum così cari saluti musoditopo

    #238249 quote
    musoditopo
    Participant
    New

    Buonasera Ivan,grazie ancora dell’intervento; a me comunque  anche con eurousd non funziona perche’ ad es nelle barre long

    blu ultime ad esempio,il sistema e’ long ma il williams acc dist e’ sotto la sua media mobile 34 per cui dovrebbe essere flat..

    ho allegato immagine di chart eurusd 3 mesi

    grazie ancora ps riporto il codice in essere   del sistema che e’ lo stesso del post iniziale
    cai saluti

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket then
    
    
     
    indicator1 = MACD[12,26,8](close)
    c1 = (indicator1 >= 0)
    indicator2 = WilliamsAccumDistr(close)
    indicator3 = Average[34](WilliamsAccumDistr(close))
    c2 = (indicator2 >= indicator3)
    
    IF c1 AND c2 THEN
    
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    endif
    // Condizioni per uscire da posizioni long
    If LongOnMarket then
     
    
    indicator4 = MACD[12,26,8](close)
    c3 = (indicator4 <= 0)
    indicator5 = WilliamsAccumDistr(close)
    indicator6 = Average[34](WilliamsAccumDistr(close))
    c4 = (indicator5 <= indicator6)
     
    IF c3 OR c4 THEN
    SELL AT MARKET
    ENDIF
    ENDIF
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket then
    indicator7 = MACD[12,26,8](close)
    c5 = (indicator7 <= 0)
    indicator8 = WilliamsAccumDistr(close)
    indicator9 = Average[34](WilliamsAccumDistr(close))
    c6 = (indicator8 <= indicator9)
     
    IF c5 AND c6 THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    ENDIF
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket then
    indicator10 = MACD[12,26,8](close)
    c7 = (indicator10 >= 0)
    indicator11 = WilliamsAccumDistr(close)
    indicator12 = Average[34](WilliamsAccumDistr(close))
    c8 = (indicator11 >= indicator12)
     
    IF c7 OR c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    ENDIF
    // Stop e target: Inserisci qui i tuoi stop di protezione e profit target
    
    #238251 quote
    musoditopo
    Participant
    New

    PS Ivan qua ho ripulito il chart dai pivot ecc e si vede forse meglio che non puo’ essere long

    grazie ancora

    #238260 quote
    robertogozzi
    Moderator
    Master

    Ho evidenziato sulla tua foto i punti in cui ha fatto un ingresso LONG (la freccia dell’entrata la vedi sulla candela successiva perché quando viene eseguita la strategia la candela di setup è ormai chiusa).

    Mi sembrano tutti corretti.

    Iván González thanked this post
    #238263 quote
    musoditopo
    Participant
    New

    Gentilissimo Roberto grazie mille dell’intervento; segnalo pero’ che il sistema legge solo i segnali del Macd e

    ignora il Williams acc dist…..ad esempio tra il 2018 e 2019 del chart (che ho allegato) ,il sistema e’ sempre long

    erroneamente ma nel codice  riportato qualche post fa con il williams  acc dist sotto la SMA 34 dovrebbe stare Flat.

    riporto il codice cosi’ magari mi confermi o meno la correttezza.Grazie mille del fondamentale supporto .i migliori

    saluti Musoditopo

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    
    // Condizioni per entrare su posizioni long
    IF NOT LongOnMarket then
    
    
     
    indicator1 = MACD[12,26,8](close)
    c1 = (indicator1 >= 0)
    indicator2 = WilliamsAccumDistr(close)
    indicator3 = Average[34](WilliamsAccumDistr(close))
    c2 = (indicator2 >= indicator3)
    
    IF c1 AND c2 THEN
    
    BUY 1 CONTRACTS AT MARKET
    ENDIF
    endif
    // Condizioni per uscire da posizioni long
    If LongOnMarket then
     
    
    indicator4 = MACD[12,26,8](close)
    c3 = (indicator4 <= 0)
    indicator5 = WilliamsAccumDistr(close)
    indicator6 = Average[34](WilliamsAccumDistr(close))
    c4 = (indicator5 <= indicator6)
     
    IF c3 OR c4 THEN
    SELL AT MARKET
    ENDIF
    ENDIF
    // Condizioni per entrare su posizioni short
    IF NOT ShortOnMarket then
    indicator7 = MACD[12,26,8](close)
    c5 = (indicator7 <= 0)
    indicator8 = WilliamsAccumDistr(close)
    indicator9 = Average[34](WilliamsAccumDistr(close))
    c6 = (indicator8 <= indicator9)
     
    IF c5 AND c6 THEN
    SELLSHORT 1 CONTRACTS AT MARKET
    ENDIF
    ENDIF
    // Condizioni per uscire da posizioni short
    IF ShortOnMarket then
    indicator10 = MACD[12,26,8](close)
    c7 = (indicator10 >= 0)
    indicator11 = WilliamsAccumDistr(close)
    indicator12 = Average[34](WilliamsAccumDistr(close))
    c8 = (indicator11 >= indicator12)
     
    IF c7 OR c8 THEN
    EXITSHORT AT MARKET
    ENDIF
    ENDIF
    // Stop e target: Inserisci qui i tuoi stop di protezione e profit target
    
    #238279 quote
    robertogozzi
    Moderator
    Master

    Si, perché tu non utilizzi direttamente WilliamsAccumDist, ma solo per calcolarne la media:

    Average[34](WilliamsAccumDistr(close))
    #238281 quote
    musoditopo
    Participant
    New

    Grazie mille Roberto ma la condizione C4 dice che se l’ indicatore William sta sotto la sua media che mi hai citato le posizioni long si chiudono : così non è stato perché il sistema nel 2018-2o19 rimane long anche se indicatore sotto sua media 34 citata ….da quello che capisco io non funziona o c’è un errore nel sistema come scriveva Ivan ma sono ignorante a riguardo e mi fermo qui . Grazie mille ancora

    #238282 quote
    robertogozzi
    Moderator
    Master

    Si, nella foro ho messo i vari cerchietti delle condizioni degli indicatori, che sono LONG correttamente.
    C4 è perl’uscita.
    Prova a rispiegarmi (non importa allegare foto) cosa non ti sembra corretto, indicando lo strumento ed il timeframe utilizzato, nonché la data e l’ora di entrata.

    #238289 quote
    musoditopo
    Participant
    New

    Grazie mille Roberto sempre supergentile; se prendo il eur/usd 3 mesi come nella foto di prima es a gennaio 2019 (trimestre del gennaio 2019)

    c’e’ il Macd>0 ma l’indicatore Williams acc dist e’ < della sua sma34 e quindi dovrebbe entrare la condizione c4 e chiudere il long

    e rimanere flat ma invece rimane long 

    ecco il codice che avevo postato sopra scusa se lo scrivo cosi’ in corsivo ma tanto  lo vedi subito esperto come sei

    // Condizioni per uscire da posizioni long
    If LongOnMarket then
    indicator4 = MACD[12,26,8](close)
    c3 = (indicator4 <= 0)
    indicator5 = WilliamsAccumDistr(close)
    indicator6 = Average[34](WilliamsAccumDistr(close))
    c4 = (indicator5 <= indicator6)
    IF c3 OR c4 THEN
    SELL AT MARKET
    ENDIF
    ENDIF
    quindi si e’ verificata la condizione c4 ad es a gennaio 2019 (in quel trimestre) ma il sistema rimaneva sempre long…..
    doveva stare flat,fuori dal mercato…..scusa ma e’ da questa estate che ci sbatto la testa contro :-((
    grazie mille ancora
    #238307 quote
    druby
    Participant
    New

     

    DEFPARAM CumulateOrders = False
    
    iMacd = MACD[12,26,8](close)
    iWad  = WilliamsAccumDistr(close)
    iAvg  = Average[34,0](iWad)
    
    c1 = iMacd >=0
    c2 = iWad  >= iAvg
    c3 = iMACD <=0
    c4 = iWad  <= iAvg
    
    
    IF NOT LongONMarket AND c1 AND c2 THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    
    IF LongOnMarket AND (c3 OR c4) THEN
    SELL AT MARKET
    ENDIF
    
    
    IF NOT ShortOnMarket AND c3 AND c4 THEN
    SELLSHORT 1 CONTRACT AT MARKET
    ENDIF
    
    IF ShortOnMArket AND (c1 OR c2) THEN
    EXITSHORT AT MARKET
    ENDIF
    
    view = 3  // 0,1,2,3
    if view = 1 then
    graph c1*0.75+1 as"iMacd>=0"
    graph c2*0.75+2 as"iWad>=iAvg"
    graph c3*0.75+3 as"iMacd<=0"
    graph c4*0.75+4 as"iWad<=iAvg"
    
    graph (c1 AND c2)*0.75+5 coloured("lime")
    graph (c3 OR  c4)*0.75+5 coloured("yellow")
    
    graph (c3 AND c4)*0.75+6 coloured("red")
    graph (c1 OR  c2)*0.75+6 coloured("orange")
    elsif view = 2 then
    graph iMacd coloured("aqua")
    graph 0
    elsif view = 3 then
    graph iWad
    graph iAvg
    endif
    #238312 quote
    druby
    Participant
    New

    Hola

    Si intentas juzgar una posición a partir de los indicadores bursátiles, es más probable que los valores de esos indicadores en el back-test sean diferentes a los mismos.

    Cuando hay una condición cercana con respecto a los valores presentados entre los indicadores y la prueba retrospectiva, a veces puede ir en cualquier dirección.

    Reescribí su código en forma de que lo haría, y en comparación con el original.

    La curva de renta variable y las posiciones se alinearon.

    También agregué una serie de opciones de gráfico para mostrar, en función del valor de VIEW.

    =0. Sin pantalla

    =1. Diagrama lógico de varias condiciones x = falso x.75 = verdadero

    =2. MACD (en inglés)

    =3. WilliamsAccumDistr y Promedio

    A partir de mi comparación de los indicadores de acciones y los del back-test, son diferentes.

    Además, el indicador WilliamsAccumDistr de acciones como opción para incluir Volumen, es esa opción utilizada.

    Es posible que no se use en la versión del código, no lo sé.

    De la imagen, MySystem(58) es la versión de su código y MySystem(59) es mi versión.

    La diferencia entre los gráficos lógicos se debe a los indicadores y las condiciones se incluyen en los bloques de código IF largo y corto en la versión del código.

    Tal vez el problema que tienes esté en una de las líneas anteriores.

    Espero que esto pueda ser útil.

    Ciao, se provi a giudicare una posizione in base agli indicatori del mercato azionario, è più probabile che i valori di tali indicatori nel test retrospettivo siano diversi da loro.

    Quando esiste una condizione di prossimità per quanto riguarda i valori presentati tra gli indicatori e il backtest, a volte può andare in entrambe le direzioni.

    Ho riscritto il tuo codice come sarebbe stato e l’ho confrontato con l’originale. La curva azionaria e le posizioni sono allineate.

    Ho anche aggiunto una serie di opzioni del grafico da visualizzare, in base al valore VIEW. =0. Senza schermo =1. Diagramma logico di varie condizioni x = falso x.75 = vero =2. MACD (in inglese) =3. WilliamsAccumDistr e Average Dal mio confronto tra gli indicatori azionari e gli indicatori dei test retrospettivi, sono diversi. Inoltre, l’indicatore WilliamsAccumDistr azionario come opzione per includere il volume è l’opzione utilizzata.

    Potrebbe non essere utilizzato nella versione del codice, non lo so.

    Dall’immagine, MySystem(58) è la versione del codice e MySystem(59) è la mia versione. La differenza tra i grafici logici è dovuta al fatto che gli indicatori e le condizioni sono inclusi nei blocchi di codice IF lungo e breve nella versione del codice.

    Forse il problema che hai è in una delle righe precedenti.

    Spero che questo possa essere utile

    musoditopo and Iván González thanked this post
    #238315 quote
    musoditopo
    Participant
    New

    thks very much

    Grazie mille

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

Indicatori mi sembra non seguano il sistema


ProBuilder: Indicatori & Strumenti Personalizzati

New Reply
Author
author-avatar
musoditopo @musoditopo Participant
Summary

This topic contains 24 replies,
has 4 voices, and was last updated by musoditopo
1 year, 4 months ago.

Topic Details
Forum: ProBuilder: Indicatori & Strumenti Personalizzati
Language: Italian
Started: 09/27/2024
Status: Active
Attachments: 13 files
Logo Logo
Loading...