Discussione: Strategia su beeTrader
- 
	21-10-15, 12:36 #1Strategia su beeTraderCiao ragazzi, 
 ieri un nuovo utente di beeTrader mi ha inviato una sua strategia operativa che vorrebbe tradurre in EasyScript.
 Siccome è un buon esempio didattico, in accordo con Mirco (nome dell'utente), pubblico qui sul forum i dettagli, e chiedo gentilmente a chi usa già beeTrader e EasyScript se ci aiuta nella codifica.
 Chiaramente per i passaggi più complicati/difficili c'è sempre il supporto del nostro buon Max.
 
 A tutti coloro che collaboreranno alla codifica della strategia offriamo 1 mese gratis di beeTrader per il tempo che dedicherà.
 
- 
	21-10-15, 15:19 #2Senior Member       
 - Data Registrazione
- May 2012
- Località
- Roma
- Messaggi
- 593
 Ok, bello complicatello  , stasera ci provo!
						Io non vendo tasti ! - Tiziano Cagalli , stasera ci provo!
						Io non vendo tasti ! - Tiziano Cagalli ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !! ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!
 
- 
	22-10-15, 03:07 #3Caspita, bel esercizio !!! 
 
 Dai Vittorio facci sognare 
 
 
 Domani ci provo anch'io
 
 
 Qualcun altro che vuole cimentarsi ?
 
 
 ps: Smash mi raccomando non ci sparare subito il codice, dacci un po di vantaggio 
 
 NotteUltima modifica di Apocalips; 22-10-15 alle 03:10 ....non si desidera ciò che è facile ottenere (Ovidio)....
 
 
- 
	22-10-15, 12:20 #4Senior Member        
 - Data Registrazione
- May 2011
- Località
- Bologna
- Messaggi
- 3,017
 
 
- 
	22-10-15, 13:19 #5Senior Member      
 - Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
 Ciao ragazzi,  
 l'ho visto adesso ....
 
 Ditemi un po':
 quanto vantaggio volete?    
 
- 
	22-10-15, 13:38 #6Senior Member       
 - Data Registrazione
- May 2012
- Località
- Roma
- Messaggi
- 593
 L'istruzione 
 
 SET maxdacond = MAX(CLOSE, 10)
 cerca il massimo delle ultime 10 barre
 
 la
 SET cond = LAST > maxdacond
 valutata a runtime in strategy tickbytick, è vera se il sottostante ora sta superando il vecchio massimo?
 Oppure non è mai vera perchè come il last supera il vecchio massimo , diventa lui il massimo ?
 In backtest sicuramente non è mai vera !Io non vendo tasti ! - Tiziano Cagalli ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !! ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!
 
- 
	22-10-15, 14:22 #7
 
- 
	22-10-15, 14:27 #8Senior Member       
 - Data Registrazione
- May 2012
- Località
- Roma
- Messaggi
- 593
 Intanto una prima versione che implementa la prima parte (per intenderci fino a prima di 'Se i prezzi mi generano 2 FALSI segnali...') 
 
 buy:
 INPUTS: @price(CLOSE), @period1(5), @period2(20), @riskAmount(500), @riskPercent(100)
 
 SET TRAILING_STOP = @riskAmount
 SET TRAILING_PERCENT = @riskPercent
 
 SET mm1 = EMA(@price, @period1)
 SET mm2 = EMA(@price, @period2)
 
 SET cond1 = CROSSOVER(mm1, mm2)
 SET cond2 = CROSSUNDER(mm1, mm2)
 
 SET nbarcrossover = LASTIF(cond1)
 SET nbarcrossunder = LASTIF(cond2)
 
 SET cond3 = nbarcrossover < nbarcrossunder
 
 SET maxdacond3 = MAX(CLOSE, nbarcrossover)
 
 SET cond4 = CLOSE >= maxdacond3
 
 cond1 OR cond4
 
 
 
 sell:
 SET mm1 = EMA(@price, @period1)
 SET mm2 = EMA(@price, @period2)
 
 SET cond1 = CROSSOVER(mm1, mm2)
 SET cond2 = CROSSUNDER(mm1, mm2)
 
 SET nbarcrossover = LASTIF(cond1)
 SET nbarcrossunder = LASTIF(cond2)
 
 SET cond3 = nbarcrossover > nbarcrossunder
 
 SET mindacond3 = MIN(CLOSE, nbarcrossunder)
 
 SET cond4 = CLOSE <= mindacond3
 
 cond2 OR cond4
 
 
 
 to be continued ... 
 
 scusate ho corretto riskAmount ... si presuppone che la cifra investita sia 100.000 euroUltima modifica di civvic; 22-10-15 alle 14:32 Io non vendo tasti ! - Tiziano Cagalli ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !! ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!
 
- 
	22-10-15, 17:18 #9Ecco cio che sono riuscito ad elaborare fino allo stesso punto in cui è arrivato Vittorio ovvero fino a prima della parte che spiega la casistica dei 2 falsi segnali: 
 
 Il Ts lavora tick by tick
 espongo solo la parte long per comodità
 
 
 BUY SCRIPT
 SET Mlenta = EMA(CLOSE,20) SET Mveloce = EMA(CLOSE,5) #incrocio al rialzo medie mobili SET cond1 = REF(CROSSOVER(Mveloce, Mlenta),1) #condizione di attivazione soglia dello stop in pareggio dopo un gain dello 0.5% SET S= (CLOSE>= LastEntryPrice()*1.005) AND LastEntryPrice()>0 #Livello soglia dello stop in pareggio SET S1= IF(S=TRUE,LastEntryPrice(),0) #contatore barre dopo incrocio medie mobili: SET barre= LASTIF(Mveloce< Mlenta) SET conta= IF(barre<1,1,barre) # massimo a periodo variabile dopo incrocio medie: SET Massimo= HighestHighValue(conta) # condizione di rientro long al breakout del max dello swing dopo primo StopLoss SET cond2= REF(Crossover(close, Massimo),1) AND S1=0 cond1 or cond2 EXIT LONG SCRIPT
 SET Mlenta = EMA(CLOSE,20) SET Mveloce = EMA(CLOSE,5) #condizione di attivazione soglia dello stop in pareggio dopo un gain dello 0.5% SET S= (CLOSE>= LastEntryPrice()*1.005) AND LastEntryPrice()>0 #Livello soglia dello stop in pareggio SET S1= IF(S=TRUE,LastEntryPrice(),0) LAST<= S1 OR REF(CROSSUNDER(Mveloce, Mlenta),1) Ultima modifica di Apocalips; 22-10-15 alle 17:23 ....non si desidera ciò che è facile ottenere (Ovidio)....
 
 
- 
	22-10-15, 18:36 #10Il debug di questa prima parte dello script ha dato risultati negativi  
 
 passiamo alle correzioni
 
 
 Apo....non si desidera ciò che è facile ottenere (Ovidio)....
 
 
 
								 
					
					
					
						 Rispondi Citando
  Rispondi Citando Originariamente Scritto da Apocalips
 Originariamente Scritto da Apocalips
					


