Ciao come da oggetto vorrei provare ad implementare nei codici la possibilita’ di comprare un ulteriore/ulteriori N contratti dopo un tot punti di gain in corso. mettendo eventualmente se possibile lo stop in pari sui contratti precedenti.
Sarebbe possibile?
io per ora sono riuscito a fare questo ma non è che mi soddisfi molto
provamartingala=v2
maxorderslong = 2 //max orders per day
if intradaybarindex=0 then
countlong = 0
endif
if provamartingala=1 then
if longonmarket and posProfit>25*pipsize and countlong<maxorderslong then
entro=high+5*pipsize
buy numberContracts contract at entro stop
set target pprofit 30
set stop ploss 40
endif
endif
//counting orders
if longonmarket and lastindex<>tradeindex then
countlong=countlong+1
lastindex=tradeindex
endif
////////////////////////////////////////////////////////////////
I contatti puoi accumularli, ma il TP e lo SL sono uguali per tutti, almeno finché non ci sarà la possibilità di fare chiusure parziali.
ok ed eventualmente si potrebbe mettere uno stop loss al prezzo medio di carico? in modo che diventerebbe zero? ad esempio
compro 1 contratto a 11.000 di dax, il trade va a +50 punti e compro un altro contratto, a quel punto dico al codice di aggiornare lo stop a 11025 in modo che il nuovo stop cumulato sarebbe zero.
Si potrebbe fare?
Il sistema fa una media per cui è impossibile usare SET STOP LOSS.
Con un pò di difficoltà dovresti fare te i conti delle differenze tra i prezzi ed usare ordini pendenti STOP per chiudere (tutte) le posizioni.
si ma non esiste una funzione che dica il prezzo di apertura medio?
In effetti c’è POSITIONPRICE (https://www.prorealcode.com/documentation/positionprice/), quello ti da il prezzo medio, per cui puoi usare quello per usare SET STOP PLOSS, per uno SL di 20 pips (dal prezzo medio) scrivi:
SET STOP PLOSS 20
se tu esegui sempre questo comando quando aggiungi contratti, ti aggiorna lo SL.
Però non so se calcola lo SL in pareggio o in profitto, non credo. Non l’ho mai usato.
Fai delle prove e con GRAPH magari tieni monitorate alcune variabili che possono servirti per i calcoli e vedi, candela per candela, come cambiano di valore.
Ok cosi’ potrebbe andare per le uscite
posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
prezzousciaccumulo=PositionPrice-20
IF ONMARKET AND posProfit>0 THEN
EXITSHORT AT prezzousciaccumulo STOP
SELL AT prezzousciaccumulo STOP
ENDIF
invece il codice che ho postato per comprare compra + posizioni del dovuto come posso fare?
Per comprare più posizioni basta che tu esegue nuovamente BUY senza chiudere il precedente acquisto. Ovviamente sulla base di tue condizioni.
Questa dovrebbe essere la versione buona:
/////////////////////////////////////////
provamartingala=1
//////////////
if provamartingala=1 then
ONCE positionSize = 1
ONCE MaxPositionAccumulo = 4 // maximum size per trade
PipsAccumulo=25
PipNewSl= 20
AccContract = MIN(MaxPositionAccumulo, positionSize)
posProfit = (((close - positionprice) * pointvalue) * countofposition) / pipsize
////////////
IF (COUNTOFPOSITION + AccContract) <= MaxPositionAccumulo THEN
if longonmarket and posProfit>PipsAccumulo*pipsize then
buy AccContract contract at market
endif
endif
prezzousciaccumulo=PositionPrice[1]-PipNewSl
IF ONMARKET AND posProfit>0 THEN
EXITSHORT AT prezzousciaccumulo STOP
SELL AT prezzousciaccumulo STOP
ENDIF
endif
Per comprare più posizioni basta che tu esegue nuovamente BUY senza chiudere il precedente acquisto. Ovviamente sulla base di tue condizioni.
eh no se no compra infiniti contratti e non si ferma mai!
Come no?!
Sulla base di cosa le accumula, allora?
deve accumulare ogni tot di guadagno
Il problema è che alla riga 9 il risultato sarà sempre uno, perché POSITIONSIZE non cambia mai, quindi non ariverà mai al massimo.
Dopo la riga 14 devi incrementare di 1 AccContract, che però dovrai azzerare prima della riga 22.
La riga 9 puoi toglierla.
1 AccContract
Scusami sicuramente non mi sono spiegato bene io. Posto un qualsiasi setup, voglio partire da 1 contratto iniziale ed accumulare fino ad un massimo di 5 (sempre pero’ 1 alla volta) ogni 20pips di guadagno accumulato, comprando il nuovo contratto il nuovo SL dovrebbe essere la media dei prezzi di carico.