Ciao,
stavo tentando di programmare questa idea di fondo e credo di essermi imbattuto in un bug che riporto sotto:
L’idea:
“Possiedo un capitale di 10.000 € e decido d’investire l’ 1% per singolo trade. Imposterò lo stop loss ad un numero di pip dal mio ingresso pari a 100€ di perdita massima. Ora la domanda è, perchè aprire una posizione da 100€ quando potrei frazionarla in 2 o 3 parti? Segui il ragionamento… Lascio invariato il numero di pip ma divido la size (lotti) in 3 parti uguali e ne investo per ora solo 1/3. Dopo il primo ordine, se le cose dovessero mettersi male avrei altre due possibilità di entrare a mercato ad un prezzo più vantaggioso (più basso in questo caso trattandosi di un buy) lasciando invariato il rischio massimo preventivato. Cosa succederebbe se non avessi bisogno di aprire altre posizioni e la prima andasse direttamente a target? Che conseguiresti un profitto minore, però un profitto minore è pur sempre un profitto ….”
Il problema:
Ora … indipendentemente dall’esito del sistema che trovate sotto, comprando più contratti su soglie di prezzo differenti, al momento di scaricarli in blocco sembra che il profitto o la perdita tenga conto solo dell’ultimo prezzo di acquisto, quindi risulta uguale per tutti gli ordini. Credo si tratti di un bug, vi torna? In tal caso come posso chiedere che venga sistemato ?
Date un’occhio agli allegati per capire….
Il sistema da testare: Provato ad esempio su DAX 15 Minuti. Non produce profitti ma il punto non è questo ….
DEFPARAM CumulateOrders = True
REM Comprate 1 quando RSI < 30 e non ci sono posizioni già aperte
IF RSI[14](Close) < 30 AND NOT ONMARKET THEN
BUY 1 SHARES AT MARKET
ENDIF
REM Se c’é una posizione aperta lunga e l’apertura > chiusura precedente, ogni volta compriamo una quantità addizionale fino ad un massimo di tre.
IF LONGONMARKET AND COUNTOFPOSITION < 3 AND Open > Close[1] THEN
BUY 1 SHARES AT MARKET
ENDIF
REM Quando il prezzo incrocia sotto una media mobile semplice, chiudete la posizione
IF Close Crosses Under Average[14](Close) THEN
SELL AT MARKET
ENDIF