Ho trovato una strategia in libreria (di seguito riportato) che sembra funzionare, ma vorrei qualche commento. Inoltre esso prevede di decidere il numero max di ordini, ma qualsiasi numero metto il test da sempre da 1 a 5.
Grazie
/
Defparam CUMULATEORDERS = TRUE
//Defparam NOCASHUPDATE = TRUE
defparam flatbefore=151000
defparam flatafter=215000
//
//
//
Filtro =180
Sloss = sl // %
SProfit = tp // %
X = 0
Y = 1
Z = 2
//
//
//==== CONTRATOS A NEGOCIAR =========
//
Xhares = 1
//
// ====== Numero Maximo de contratos a negociar ============
//
Nshares = c
//
//
// ========== CODIGO ===================
//
HULL = weightedaverage[filtro](close)
IF close[x] crosses over highest[h1](high[1]) and hull[y] > hull[z] and COUNTOFLONGSHARES < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ENDIF
IF close[x] crosses over highest[h2](high[1]) and hull[y] > hull[z] and COUNTOFLONGSHARES < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ENDIF
IF close[x] crosses over highest[h3](high[1]) and hull[y] > hull[z] and COUNTOFLONGSHARES < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ENDIF
IF close[x] crosses over highest[h4](high[1]) and hull[y] > hull[z] and COUNTOFLONGSHARES < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ENDIF
IF close[x] crosses over highest[h5](high[1]) and hull[y] > hull[z] and COUNTOFLONGSHARES < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ENDIF
SET STOP %LOSS sloss
SET TARGET %PROFITsprofit
Nshares = 5
h1 h2 ecc. sono 5 , 20, 50, 100, 200
Grazie
Devi solo variare Nshares, così è 5, puoi aumentarlo o diminuirlo come preferisci.
In effetti entra spesso più volte all’interno della stessa candela, puoi provare questa versione modificata:
Defparam CUMULATEORDERS = TRUE
//Defparam NOCASHUPDATE = TRUE
defparam flatbefore=151000
defparam flatafter=215000
//
//
//
Filtro =180
Sloss = 5
SProfit = 5
X = 0
Y = 1
Z = 2
//
//
//==== CONTRATOS A NEGOCIAR =========
//
Xhares = 1
//
// ====== Numero Maximo de contratos a negociar ============
//
h1 = 5
h2 = 20
h3 = 50
h4 = 100
h5 = 200
Nshares = 5
//
//
// ========== CODIGO ===================
//
HULL = weightedaverage[filtro](close)
IF close[x] crosses over highest[h1](high[1]) and hull[y] > hull[z] and abs(CountOfPosition) < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ELSIF close[x] crosses over highest[h2](high[1]) and hull[y] > hull[z] and abs(CountOfPosition) < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ELSIF close[x] crosses over highest[h3](high[1]) and hull[y] > hull[z] and abs(CountOfPosition) < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ELSIF close[x] crosses over highest[h4](high[1]) and hull[y] > hull[z] and abs(CountOfPosition) < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ELSIF close[x] crosses over highest[h5](high[1]) and hull[y] > hull[z] and abs(CountOfPosition) < Nshares THEN
buy Xhares CONTRACTS AT MARKET
ENDIF
SET STOP %LOSS sloss
SET TARGET %PROFITsprofit
//graph abs(CountOfPosition)
Grazie, comunque se modifico il 5 e per esempio ci metto 1, va comunque a mercato da 1 a 5.
Si, per questo ho fatto la modifica ai blocchi IF…ENDIF delle entrate.
Dal 26/4 uso questo codice , in demo, ma non è mai entrato a mercato. Coincidenza ?
Grazie
L’ho appena messo in demo anch’io. Vediamo nei prossimi giorni cosa fa.
Ad oggi state fatte due operazioni (sul DAX a 5 minuti), con varie entrate ciascuno.
La prima è stata perdente e la seconda vincente.