Buongiorno,
ho un dubbio in merito alla corretta scrittura del codice di entrata a mercato. Nello specifico voglio entrare a mercato sempre col capitale aggiornato, ossia col capitale iniziale più le eventuali vincite/perdite dei vari trades nel corso del backtest. E’ corretta la scrittura seguente?
Inoltre per il mercato dei future è equivalente usare “shares” o “contracts”?
Infine del Forex, nell’espressione di buy, dovrò usare “cash”?
Grazie in anticipo per il chiarimento
ONCE Capiniziale = 20000
equity = Capiniziale + Strategyprofit
// resto del codice....
IF NOT LongOnMarket THEN
OrderSize = MAX(1,ROUND(equity/close))
BUY OrderSize SHARES AT MARKET
ENDIF
Non è corretta, provala sul Dax e su EurUsd (vedi foto X allegata).
Con DAX sembra (sottolineo sembra) funzioni in quanto ti restituisce 1.9 contratti, mentre con EurUsd sono oltre 14000 contratti!
Innanzitutto devi stabilire con il tuo Capitale iniziale quanti lotti vuoi tradare, diciamo 1 a titolo di esempio.
Dopodiché fai il rapporto, se con Capitale iniziale acquisto un lotto, con l’Equity attuale quanti ne acquisto? con la proporzione:
Capitale 20000 : 1 lotto = Equity : X lotti
Quindi la formula (vedi foto Y), in codice, è:
ONCE Capiniziale = 20000
equity = Capiniziale + Strategyprofit
// resto del codice....
IF NOT LongOnMarket THEN
OrderSize = MAX(1,ROUND(equity/Capiniziale))
BUY OrderSize SHARES AT MARKET
ENDIF
ovviamente devi togliere ROUND se vuoi acquistare anche decimali di lotto.