Discussione: un aiutino

  1. #1

    Data Registrazione
    Aug 2009
    Messaggi
    23

    un aiutino

    chiedo ai più esperti,
    se io ho un signal scritto in questo modo:
    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 condizione1 = (somma = 1)
    SET condizione2 = ((TIME >= @minEntryTime) AND (TIME < @maxEntryTime))

    combinazione AND condizione1 AND condizione2


    ma volessi che il signal entrasse non sul close della barra che genera il primo incrocio rialzista del MACD, così come impostato sul signal, bensì sul close della barra successiva, a condizione che il close sia maggiore del max creatosi sulla barra dell'incrocio....quali altri condizioni dovrei aggiungere al signal?

  2. #2
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,612
    Citazione Originariamente Scritto da viser12000 Visualizza Messaggio
    chiedo ai più esperti,
    se io ho un signal scritto in questo modo:
    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 condizione1 = (somma = 1)
    SET condizione2 = ((TIME >= @minEntryTime) AND (TIME < @maxEntryTime))

    combinazione AND condizione1 AND condizione2


    ma volessi che il signal entrasse non sul close della barra che genera il primo incrocio rialzista del MACD, così come impostato sul signal, bensì sul close della barra successiva, a condizione che il close sia maggiore del max creatosi sulla barra dell'incrocio....quali altri condizioni dovrei aggiungere al signal?
    Ciao,

    prova in questa maniera

    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 condizione1 = (somma = 1)
    SET condizione2 = ((TIME >= @minEntryTime) AND (TIME < @maxEntryTime))


    SET COND = combinazione AND condizione1 AND condizione2
    SET MASSIMO = CHANGEIF(COND, high)



    REF(COND, 1) AND CLOSE > MASSIMO

    Apo
    Ultima modifica di Apocalips; 25-09-17 alle 23:36
    ....non si desidera ciò che è facile ottenere (Ovidio)....

  3. #3

    Data Registrazione
    Aug 2009
    Messaggi
    23

    Smile

    grazie mille Apo... non ci sarei mai arrivato

  4. #4

    Data Registrazione
    Aug 2009
    Messaggi
    23

    Red face ulteriore aiuto

    Pre i più esperti,
    so di chiedere molto ma mi sono stancato di sbattere contro il muro...per cui ci riprovo, anche perchè credo non sia complicato...vengo al dunque:
    se in un signal entrato a mercato, ad esempio al ribasso, io voglio settare uno stop variabile, parametrato a un close maggiore di un massimo, calcolato sulle barre comprese tra due incroci, il primo rialzista ed il secondo ribassista del MACD, come va impostato lo script?
    io ho provato a scriverlo in questo modo, ma è sicuramente sbagliato perchè non rispetta le indicazioni che ho posto sopra:

    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 condizione1 = (somma = 1)

    SET combinazione = CROSSUNDER(A, B) AND (C < D)
    SET condSMA = CROSSUNDER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione2 = (somma = 1)


    SET condizione3 = BARNUMBER > condizione1 AND BARNUMBER < condizione1
    SET massimo = HighestHighvalue(condizione3)
    CLOSE > massimo

  5. #5
    L'avatar di Andrea Cagalli
    Data Registrazione
    Oct 2010
    Località
    Vicenza
    Messaggi
    3,933
    Citazione Originariamente Scritto da viser12000 Visualizza Messaggio
    Pre i più esperti,
    so di chiedere molto ma mi sono stancato di sbattere contro il muro...per cui ci riprovo, anche perchè credo non sia complicato...vengo al dunque:
    se in un signal entrato a mercato, ad esempio al ribasso, io voglio settare uno stop variabile, parametrato a un close maggiore di un massimo, calcolato sulle barre comprese tra due incroci, il primo rialzista ed il secondo ribassista del MACD, come va impostato lo script?
    io ho provato a scriverlo in questo modo, ma è sicuramente sbagliato perchè non rispetta le indicazioni che ho posto sopra:

    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 condizione1 = (somma = 1)

    SET combinazione = CROSSUNDER(A, B) AND (C < D)
    SET condSMA = CROSSUNDER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione2 = (somma = 1)


    SET condizione3 = BARNUMBER > condizione1 AND BARNUMBER < condizione1
    SET massimo = HighestHighvalue(condizione3)
    CLOSE > massimo
    Ciao caro,
    è un po complesso comunque vediamo di darti una mano, intanto:

    SET condizione3 = BARNUMBER > condizione1 AND BARNUMBER < condizione1
    questa condizione è corretta? Cioè volevi scrivere condizione1 e condizione1 oppure condizione1 e condizione2?

    Ciao Ciao

  6. #6

    Data Registrazione
    Aug 2009
    Messaggi
    23
    Ciao Andrea,
    intanto grazie per la disponibilità, si hai ragione tu, si tratta della condizione2 ....a me servirebbe, in pratica, delimitare un'area, i cui estremi sono identificati con i due incroci (il primo è il crossover e il secondo il crossunder), e delle barre comprese tra questi due estremi, voglio poi definire il massimo registrato.

  7. #7
    L'avatar di Apocalips
    Data Registrazione
    May 2011
    Località
    PESCARA
    Messaggi
    2,612
    Citazione Originariamente Scritto da viser12000 Visualizza Messaggio
    Ciao Andrea,
    intanto grazie per la disponibilità, si hai ragione tu, si tratta della condizione2 ....a me servirebbe, in pratica, delimitare un'area, i cui estremi sono identificati con i due incroci (il primo è il crossover e il secondo il crossunder), e delle barre comprese tra questi due estremi, voglio poi definire il massimo registrato.

    # Contatore barre dal crossover al crossunder:
    SET contatore = LASTIF (A < B) dove A e B sono i 2 indicatori che vuoi incrociare


    # Massimo tra il crossover e il crossunder:
    SET massimo = MAX(HIGH, contatore)




    Apo
    Ultima modifica di Apocalips; 25-10-17 alle 21:56
    ....non si desidera ciò che è facile ottenere (Ovidio)....

  8. #8

    Data Registrazione
    Aug 2009
    Messaggi
    23
    grazie Apo


    Citazione Originariamente Scritto da Apocalips Visualizza Messaggio
    # Contatore barre dal crossover al crossunder:
    SET contatore = LASTIF (A < B) dove A e B sono i 2 indicatori che vuoi incrociare


    # Massimo tra il crossover e il crossunder:
    SET massimo = MAX(HIGH, contatore)




    Apo

  9. #9

    Data Registrazione
    Aug 2009
    Messaggi
    23

    per apo

    ciao Apo,
    ho provato a impostare i tuoi imput sul grafico ma non restituisce quanto desiderato, in pratica:
    ho sostituito la parte di codice da te suggerita (SET contatore = LASTIF (A < B) dove A e B sono i 2 indicatori che vuoi incrociare) sullo exitshortscript che risulta adesso scritto nel seguente modo:
    SET combinazione = CROSSOVER(A, B) AND (C < D)
    SET condSMA = CROSSOVER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione1 = (somma = 1)

    SET combinazione = CROSSUNDER(A, B) AND (C < D)
    SET condSMA = CROSSUNDER(C, D)
    SET periodo = LASTIF(condSMA)
    SET somma = SUM(combinazione, periodo)
    SET condizione2 = (somma = 1)

    # Contatore barre dal crossover al crossunder:

    SET contatore = LASTIF (condizione1 < condizione2)

    # Massimo calcolato nel periodo precedente:

    SET massimo = MAX(HIGH, contatore)
    SET condizione uscita = CLOSE > massimo

    dove sbaglio ancora?

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