Discussione: Strategia su beeTrader
-
21-10-15, 11:36 #1
Strategia su beeTrader
Ciao 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, 14:19 #2
- Data Registrazione
- May 2012
- Località
- Roma
- Messaggi
- 593
Ok, bello complicatello , stasera ci provo!
Io non vendo tasti ! - Tiziano Cagalli ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!
-
22-10-15, 02:07 #3
Caspita, 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 02:10
....non si desidera ciò che è facile ottenere (Ovidio)....
-
22-10-15, 11:20 #4
- Data Registrazione
- May 2011
- Località
- Bologna
- Messaggi
- 3,017
-
22-10-15, 12:19 #5
- Data Registrazione
- Feb 2012
- Località
- Pisa
- Messaggi
- 351
Ciao ragazzi,
l'ho visto adesso ....
Ditemi un po':
quanto vantaggio volete?
-
22-10-15, 12:38 #6
- 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 !!
-
22-10-15, 13:22 #7
-
22-10-15, 13:27 #8
- 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 13:32
Io non vendo tasti ! - Tiziano Cagalli ...quindi se c'è un tasto (su Fiuto) vuol dire che serve !!
-
22-10-15, 16:18 #9
Ecco 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 16:23
....non si desidera ciò che è facile ottenere (Ovidio)....
-
22-10-15, 17:36 #10
Il debug di questa prima parte dello script ha dato risultati negativi
passiamo alle correzioni
Apo....non si desidera ciò che è facile ottenere (Ovidio)....