Risultati da 1 a 8 di 8
  1. #1

    Data Registrazione
    Aug 2009
    Messaggi
    23

    Angry crossover macd a seguito di crossover incrocio medie mobili

    Salve,
    vorrei impostare uno script basato, ad esempio, sul primo incrocio al ribasso del macd sul signal, successivo all' incrocio, sempre al ribasso, di una media mobile su un'altra ma non riesco a collegare i due eventi, perchè l'algoritmo me li ricerca sempre sulla stessa barra, ma a me non interessa il fattore temporale, espresso in barre. Come posso fare?
    Spero di essere riuscito a spiegarmi e, quanto alla risposta, credo sarà banale ma fin' ora nn sono riuscito a scriverlo.
    Grazie

  2. #2
    L'avatar di Andrea Cagalli
    Data Registrazione
    Oct 2010
    Località
    Svizzera
    Messaggi
    3,995
    Citazione Originariamente Scritto da viser12000 Visualizza Messaggio
    Salve,
    vorrei impostare uno script basato, ad esempio, sul primo incrocio al ribasso del macd sul signal, successivo all' incrocio, sempre al ribasso, di una media mobile su un'altra ma non riesco a collegare i due eventi, perchè l'algoritmo me li ricerca sempre sulla stessa barra, ma a me non interessa il fattore temporale, espresso in barre. Come posso fare?
    Spero di essere riuscito a spiegarmi e, quanto alla risposta, credo sarà banale ma fin' ora nn sono riuscito a scriverlo.
    Grazie
    Ciao,
    ti riferisci ad un Signal vero? In questo caso, a quanto ho capito, basta che utilizzi > o < invece di crossover. Quindi nel tuo caso potrebbe essere:

    Buy Script:

    INPUTS: @price(CLOSE), @longCycle(26), @shortCycle(13), @signalPeriods(9), @periods1(10), @periods2(12) @matype(SIMPLE)
    
    
    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    A > B AND C > D

    Sell Script:

    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    A < B AND C < D
    Ciao Ciao

  3. #3

    Data Registrazione
    Aug 2009
    Messaggi
    23
    Ciao Andrea e grazie per la risposta,
    Certo mi riferisco ad un signal, però io voglio entrare sul primo incrocio rialzista del MACD, che si verifica dopo un altro incrocio rialzista tra medie mobili, non voglio entrare ogniqualvolta il MACD è maggiore del signal, fermo restando l'altra condizione.
    Non so se son riuscito a spiegarmi.



    Citazione Originariamente Scritto da Andrea Cagalli Visualizza Messaggio
    Ciao,
    ti riferisci ad un Signal vero? In questo caso, a quanto ho capito, basta che utilizzi > o < invece di crossover. Quindi nel tuo caso potrebbe essere:

    Buy Script:

    INPUTS: @price(CLOSE), @longCycle(26), @shortCycle(13), @signalPeriods(9), @periods1(10), @periods2(12) @matype(SIMPLE)
    
    
    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    A > B AND C > D

    Sell Script:

    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    A < B AND C < D
    Ciao Ciao

  4. #4
    L'avatar di Francario Massimiliano
    Data Registrazione
    Jul 2008
    Messaggi
    1,006
    Salve,

    Citazione Originariamente Scritto da viser12000 Visualizza Messaggio
    Ciao Andrea e grazie per la risposta,
    Certo mi riferisco ad un signal, però io voglio entrare sul primo incrocio rialzista del MACD, che si verifica dopo un altro incrocio rialzista tra medie mobili, non voglio entrare ogniqualvolta il MACD è maggiore del signal, fermo restando l'altra condizione.
    Non so se son riuscito a spiegarmi.
    Se non interpreto male la sua richiesta, dovrebbe usare un Buy Script così:

    INPUTS: @price(CLOSE), @longCycle(26), @shortCycle(13), @signalPeriods(9), @periods1(10), @periods2(12) @matype(SIMPLE)
    
    
    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    
    CROSSOVER(A, B) AND (C > D)
    mentre per Sell Script:

    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    CROSSUNDER(A, B) AND (C < D)

    In questo modo la condizione sul MACD è valida esclusivamente nella barra dove si verifica l'incrocio, mentre la condizione sulla media mobile rimane valida dalla barra di incrocio fino all'incrocio opposto successivo.


    Max Francario

  5. #5

    Data Registrazione
    Jan 2010
    Messaggi
    134
    scusate l' interruzione, sto facendo un post di test. non potevo che farlo qui.

  6. #6

    Data Registrazione
    Aug 2009
    Messaggi
    23
    Ciao Max, e grazie per la risposta,
    mi riservo di verificare ma nn credo che funzioni...perchè come lo hai scritto tu, lo script mi fa entrare ogni volta che c'è un incrocio rialzista del MACD, fermo restando l'altra condizione, ma io voglio entrare solo al primo incrocio del Macd successivo all'incrocio rialzista delle medie mobili.


    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    Salve,



    Se non interpreto male la sua richiesta, dovrebbe usare un Buy Script così:

    INPUTS: @price(CLOSE), @longCycle(26), @shortCycle(13), @signalPeriods(9), @periods1(10), @periods2(12) @matype(SIMPLE)
    
    
    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    
    CROSSOVER(A, B) AND (C > D)
    mentre per Sell Script:

    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
    
    CROSSUNDER(A, B) AND (C < D)

    In questo modo la condizione sul MACD è valida esclusivamente nella barra dove si verifica l'incrocio, mentre la condizione sulla media mobile rimane valida dalla barra di incrocio fino all'incrocio opposto successivo.


    Max Francario

  7. #7
    L'avatar di Francario Massimiliano
    Data Registrazione
    Jul 2008
    Messaggi
    1,006
    Salve,
    Citazione Originariamente Scritto da viser12000 Visualizza Messaggio
    Ciao Max, e grazie per la risposta,
    mi riservo di verificare ma nn credo che funzioni...perchè come lo hai scritto tu, lo script mi fa entrare ogni volta che c'è un incrocio rialzista del MACD, fermo restando l'altra condizione, ma io voglio entrare solo al primo incrocio del Macd successivo all'incrocio rialzista delle medie mobili.
    è un pò più complicato di quanto avevo inizialmente inteso. In ogni caso, bisogna sfruttare il fatto che le condizioni valutate come false hanno un valore numerico pari a 0, mentre se sono valutate vere hanno un valore numerico pari a 1.
    Con questa premessa, gli script dovrebbero essere i seguenti:

    Buy Script:

    INPUTS: @price(CLOSE), @longCycle(26), @shortCycle(13), @signalPeriods(9), @periods1(10), @periods2(12) @matype(SIMPLE)
     
     
    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
     
    SET combinazione = CROSSOVER(A, B) AND (C > D)
    SET condSMA = CROSSOVER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione = (somma = 1)
    
    combinazione AND condizione

    Sell Script:

    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
     
    SET combinazione = CROSSUNDER(A, B) AND (C < D)
    SET condSMA = CROSSUNDER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione = (somma = 1)
    
    combinazione AND condizione

    L'interpretazione della parte di codice relativa al calcolo delle condizioni è un pò complicata.
    La variabile "combinazione" contiene la variabile che prima veniva usata come condizione di entrata, che genera più segnali a partire da un singolo incrocio delle medie.
    In "condSMA" viene memorizzato il crossover delle medie, ottenendo quindi un vettore di valori 0 ed 1. In "periodo" calcoliamo da quanto tempo (barre) è avvenuto l'ultimo incrocio delle medie mobili.
    La variabile "somma" viene calcolata come somma del numero di segnali presenti in "combinazione" a partire da "periodo" barre fà. In questo modo, nel primo segnale dopo l'incrocio delle medie, la variabile "somma" avrà il valore 1, mentre nel secondo segnale avrà il valore 2 e così via.
    In "condizione" ci assicuriamo di utilizzare esclusivamente il primo segnale a partire dall'ultimo incrocio delle medie, e pertanto la condizione finale dello script è rappresentata da un AND tra "condizione" e "combinazione".


    Max Francario

  8. #8

    Data Registrazione
    Aug 2009
    Messaggi
    23

    Talking mille grazie max

    credo che ora sia la volta giusta,
    non pensavo fosse così complicato



    Citazione Originariamente Scritto da Francario Massimiliano Visualizza Messaggio
    Salve,


    è un pò più complicato di quanto avevo inizialmente inteso. In ogni caso, bisogna sfruttare il fatto che le condizioni valutate come false hanno un valore numerico pari a 0, mentre se sono valutate vere hanno un valore numerico pari a 1.
    Con questa premessa, gli script dovrebbero essere i seguenti:

    Buy Script:

    INPUTS: @price(CLOSE), @longCycle(26), @shortCycle(13), @signalPeriods(9), @periods1(10), @periods2(12) @matype(SIMPLE)
     
     
    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
     
    SET combinazione = CROSSOVER(A, B) AND (C > D)
    SET condSMA = CROSSOVER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione = (somma = 1)
    
    combinazione AND condizione

    Sell Script:

    SET A = MACD(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET B = MACDSignal(@longCycle, @shortCycle, @signalPeriods, @matype)
    SET C = MovingAverage(@price, @periods1, @matype)
    SET D = MovingAverage(@price, @periods2, @matype)
     
    SET combinazione = CROSSUNDER(A, B) AND (C < D)
    SET condSMA = CROSSUNDER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione = (somma = 1)
    
    combinazione AND condizione

    L'interpretazione della parte di codice relativa al calcolo delle condizioni è un pò complicata.
    La variabile "combinazione" contiene la variabile che prima veniva usata come condizione di entrata, che genera più segnali a partire da un singolo incrocio delle medie.
    In "condSMA" viene memorizzato il crossover delle medie, ottenendo quindi un vettore di valori 0 ed 1. In "periodo" calcoliamo da quanto tempo (barre) è avvenuto l'ultimo incrocio delle medie mobili.
    La variabile "somma" viene calcolata come somma del numero di segnali presenti in "combinazione" a partire da "periodo" barre fà. In questo modo, nel primo segnale dopo l'incrocio delle medie, la variabile "somma" avrà il valore 1, mentre nel secondo segnale avrà il valore 2 e così via.
    In "condizione" ci assicuriamo di utilizzare esclusivamente il primo segnale a partire dall'ultimo incrocio delle medie, e pertanto la condizione finale dello script è rappresentata da un AND tra "condizione" e "combinazione".


    Max Francario

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Contattaci

Chiama gli esperti
+39 0425 792923

Chiamaci
Email

Richiedi informazioni via E-MAIL
info@playoptions.it

Scrivici
Nostri Uffici

Vieni a trovarci
45100 Rovigo

Contattaci

Serve Aiuto?

Contattaci per maggiori informazioni.

Denis MorettoSpecialista Finanziario
Contattaci
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.