Discussione: un aiutino
-
25-09-17, 22:46 #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?
-
26-09-17, 00:28 #2
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
ApoUltima modifica di Apocalips; 26-09-17 alle 00:36
....non si desidera ciò che è facile ottenere (Ovidio)....
-
26-09-17, 23:07 #3
- Data Registrazione
- Aug 2009
- Messaggi
- 23
grazie mille Apo... non ci sarei mai arrivato
-
23-10-17, 21:30 #4
- Data Registrazione
- Aug 2009
- Messaggi
- 23
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
-
25-10-17, 18:38 #5
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
-
25-10-17, 21:36 #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.
-
25-10-17, 22:51 #7
Ultima modifica di Apocalips; 25-10-17 alle 22:56
....non si desidera ciò che è facile ottenere (Ovidio)....
-
25-10-17, 23:47 #8
- Data Registrazione
- Aug 2009
- Messaggi
- 23
-
30-10-17, 19:16 #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?