Discussione: un aiutino
- 
	25-09-17, 22:46 #1Junior Member    
 - Data Registrazione
- Aug 2009
- Messaggi
- 23
 un aiutinochiedo 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 #2Ciao, 
 
 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 #3Junior Member    
 - Data Registrazione
- Aug 2009
- Messaggi
- 23
   grazie mille Apo... non ci sarei mai arrivato 
 
- 
	23-10-17, 21:30 #4Junior Member    
 - Data Registrazione
- Aug 2009
- Messaggi
- 23
  ulteriore aiuto ulteriore aiutoPre 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 #5Ciao 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 #6Junior Member    
 - 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 #7Ultima modifica di Apocalips; 25-10-17 alle 22:56 ....non si desidera ciò che è facile ottenere (Ovidio)....
 
 
- 
	25-10-17, 23:47 #8Junior Member    
 - Data Registrazione
- Aug 2009
- Messaggi
- 23
 
 
- 
	30-10-17, 19:16 #9Junior Member    
 - Data Registrazione
- Aug 2009
- Messaggi
- 23
 per apociao 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?
 
 
								 
					
					
					
						 Rispondi Citando
  Rispondi Citando Originariamente Scritto da viser12000
 Originariamente Scritto da viser12000
					


