Ah ok, bel problema, ma fa la media dei lotti di entrata quindi se ho due posizioni una aperta alle 11 e una alle 16 sulla prima l’entrata è di 1 lotto e la seconda sarebbe di 2 lotti, modifica la posizione a 1.5 lotti e lascia lo stop loss e il take profit della prima posizione? quindi cambia il guadagno e la perdita ma non lo SL e TP?
E non ho capito se ad esempio va in stop e lo stop fosse 40 euro, prendo due stop quindi 80 euro o un solo stop quindi 40 euro?
E’ per ogni nuova posizione aggiunta (non per ogni lotto). Che tu aggiunga 1 lotto o 2.5 lotti, sempre $50 sono. Però se esegui BUY (o SELLSHORT) più volte senza chiudera la precedente, ogni volta sono $50 di stop loss aggiuntivi.
Ah quindi dimmi se ho capito, se già è aperta una posizione e ne volessi aprire un altra mi chiude quella precedente a stop loss quindi perdo 50 euro? oppure intendi che continua e ovviamente se la prima va in stop anche la seconda va in stop e quindi sarebbe una perdita di 100 euro?!
Un altra mia domanda la seconda posizione aperta prende lo stop loss e il take profit della prima o ne ha uno suo?
Nessuna posizione viene chiusa, continua fino al target o allo stop, indipendentemente dalle altre.
Anche la seconda ne ha uno suo.
Solo se fai il trailing stop devi farlo cumulativo, in quanto non esiste più il prezzo di entrata, ma il prezzo medio (POSITIONPRICE) su cui viene calcolata la performance (POSITIONPERF).
Ah sisi allora va bene è come vorrei che fosse che comunque perde 50 e guadagno 150 per ogni posizione, si tanto atr l ho impostato alto perchè non si deve muovere
Quindi cosa dovrei aggiungere per avere questa funzione delle posizioni cumulative?
Basta che all’inizio usi:
DEFPARAM CumulateOrders = TRUE
e poi esegui normalmente BUY o SELLSHORT senza più verificare se sei già a mercato.
Se esegui BUY quanto sei short o SELLSHORT quando sei long ti fa automaticamente uno Stop & Reverse.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = true// Posizioni cumulate attivate
//Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l’orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 230100
//Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
DEFPARAM FLATAFTER = 230000
//
TIMEFRAME(default)
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
//
//////////////////////////////////////////////////////////////////////////////////
ONCE risk = 50 //max. capitale da rischiare
ONCE PipNum = risk / pipvalue //Numero di Pips in base al rischio
ONCE lotti = 1 //1 lotto per difetto
//ONCE MinLotti = 0.5 //Numero minimo di lotti
MyATR = (AverageTrueRange[7](close) / pipsize) * 1.75
Pips = max(0,min(PipNum,MyATR))
Lotti = PipNum / Pips
//////////////////////////////////////////////////////////////////////////////////
//
// Condizioni per entrare su posizioni long
indicator1 = Average[3](Stochastic[5,3](close))
c1 = (indicator1 CROSSES OVER 20)
//
TIMEFRAME(1 hour,default)
indicator2 = ExponentialAverage[9](close)
indicator3 = ExponentialAverage[21](close)
c2 = (indicator2[1] > indicator3[1])
//
TIMEFRAME(default)
IF (c1 AND c2) AND not daysForbiddenEntry AND Not OnMarket THEN
BUY Lotti SHARES AT MARKET
SET STOP pLOSS Pips
SET TARGET pPROFIT (Pips * 3)
ENDIF
// Condizioni per entrare su posizioni short
indicator4 = Average[3](Stochastic[5,3](close))
c3 = (indicator4 CROSSES UNDER 80)
//
TIMEFRAME(1 hour,default)
indicator5 = ExponentialAverage[9](close)
indicator6 = ExponentialAverage[21](close)
c4 = (indicator5[1] < indicator6[1])
//
TIMEFRAME(default)
IF (c3 AND c4) AND not daysForbiddenEntry AND Not OnMarket THEN
SELLSHORT Lotti SHARES AT MARKET
SET STOP pLOSS Pips
SET TARGET pPROFIT Pips * 3
ENDIF
TIMEFRAME (5minute,upDateOnClose)
//************************************************************************
//trailing stop function
trailingstart = 200 //trailing will start @trailinstart points profit
trailingstep = 5 //trailing step to move the "stoploss"
//reset the stoploss value
IF NOT ONMARKET THEN
newSL=0
ENDIF
//manage long positions
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
newSL = tradeprice(1)+trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
newSL = newSL+trailingstep*pipsize
ENDIF
ENDIF
//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
newSL = tradeprice(1)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF
//stop order to exit the positions
IF newSL>0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF
//
graph MyATR
graph Lotti
graph Pips
graph NewSL
L ho inserito ma non cambia niente non me lo fa, in queste due foto che ho postato si vede che su una entra a mercato ma sula seconda quando si presentano le stesse condizioni di prima non entra. Perchè?
Come ti ho scritto, NON devi più verificare di essere a mercato!
Togli la verifica di OnMarket dalle righe 32 e 47, altrimenti non ti fa nessun accumulo.
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = true// Posizioni cumulate attivate
//Il sistema cancellerà tutti gli ordini in attesa e chiuderà tutte le posizioni a 0:00. Dopo l’orario "Flat Before" non saranno piazzati nuovi ordini o posizioni.
DEFPARAM FLATBEFORE = 230100
//Cancellare tutti gli ordini in attesa e chiudere tutte le posizioni all’orario "Flat After"
DEFPARAM FLATAFTER = 230000
//
TIMEFRAME(default)
// Impedisce al sistema di tradare in giorni specifici della settimana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
//
//////////////////////////////////////////////////////////////////////////////////
ONCE risk = 50 //max. capitale da rischiare
ONCE PipNum = risk / pipvalue //Numero di Pips in base al rischio
ONCE lotti = 1 //1 lotto per difetto
//ONCE MinLotti = 0.5 //Numero minimo di lotti
MyATR = (AverageTrueRange[7](close) / pipsize) * 1.75
Pips = max(0,min(PipNum,MyATR))
Lotti = PipNum / Pips
//////////////////////////////////////////////////////////////////////////////////
//
// Condizioni per entrare su posizioni long
indicator1 = Average[3](Stochastic[5,3](close))
c1 = (indicator1 CROSSES OVER 20)
//
TIMEFRAME(1 hour,default)
indicator2 = ExponentialAverage[9](close)
indicator3 = ExponentialAverage[21](close)
c2 = (indicator2[1] > indicator3[1])
//
TIMEFRAME(default)
IF (c1 AND c2) AND not daysForbiddenEntry THEN
BUY Lotti SHARES AT MARKET
SET STOP pLOSS Pips
SET TARGET pPROFIT (Pips * 3)
ENDIF
// Condizioni per entrare su posizioni short
indicator4 = Average[3](Stochastic[5,3](close))
c3 = (indicator4 CROSSES UNDER 80)
//
TIMEFRAME(1 hour,default)
indicator5 = ExponentialAverage[9](close)
indicator6 = ExponentialAverage[21](close)
c4 = (indicator5[1] < indicator6[1])
//
TIMEFRAME(default)
IF (c3 AND c4) AND not daysForbiddenEntry THEN
SELLSHORT Lotti SHARES AT MARKET
SET STOP pLOSS Pips
SET TARGET pPROFIT Pips * 3
ENDIF
TIMEFRAME (5minute,upDateOnClose)
//************************************************************************
//trailing stop function
trailingstart = 200 //trailing will start @trailinstart points profit
trailingstep = 5 //trailing step to move the "stoploss"
//reset the stoploss value
IF NOT ONMARKET THEN
newSL=0
ENDIF
//manage long positions
IF LONGONMARKET THEN
//first move (breakeven)
IF newSL=0 AND close-tradeprice(1)>=trailingstart*pipsize THEN
newSL = tradeprice(1)+trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND close-newSL>=trailingstep*pipsize THEN
newSL = newSL+trailingstep*pipsize
ENDIF
ENDIF
//manage short positions
IF SHORTONMARKET THEN
//first move (breakeven)
IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THEN
newSL = tradeprice(1)-trailingstep*pipsize
ENDIF
//next moves
IF newSL>0 AND newSL-close>=trailingstep*pipsize THEN
newSL = newSL-trailingstep*pipsize
ENDIF
ENDIF
//stop order to exit the positions
IF newSL>0 THEN
SELL AT newSL STOP
EXITSHORT AT newSL STOP
ENDIF
//
graph MyATR
graph Lotti
graph Pips
graph NewSL
Si l ho tolto ma cosi mi da posizioni perse anche di 200 euro come mai? non cumulava quelle da 50 euro?
I gap…. ci sono i gap. Normalmente si verificano alla riapertura settimanale, se guardi il grafico vedrai che ci sono degli spazi, più o meno grandi, a volte.
Inoltre i 50 € sono aggiuntivi ogni volta che aggiungi un ordine.
Si ma come è possibile che se non metto la funzione cumulativa, con i gap mi da al massimo 49-49.50 euro di stop e 149.-149.50 euro di profit , mentre se le cumulo supera anche i 200 di stop? La differenza mi sembra esagerata
Se fosse uguale che differenza ci sarebbe tra accumulare posizioni e non accumularle?
Sia sul forum che sul canale YouTube di ProRealTime ci sono vari video che spiegano alcune cose, anche sulla programmazione.
Se fai una ricerca qui sul forum troverai anche molti esempi e riferimenti.
Per arrivare a comprendere e padroneggiare l’argomento occorre un grosso impegno di tempo, purtroppo.
Si adesso ho capito, pensavo che l accumulo delle posizioni sia perse che vinte si vedeva in modo separate, nel senso che se perdevo 3 posizioni che si erano cumulate io vedo 3 stop da 50 invece si vede un valore unico di 150. Ma invece per quanto riguarda lo spread ho visto che su gbp/Usd il minimo è 0.9 ma ho visto che a volte è 1.5 ma arriva anche a 2.5,c’è un modo per modularlo in base a quanto sta, cioè perché la mia essendo una strategia sui 5 minuti se una volta è 2.5 e altre 0.9 mi sballa tutti i risultati,quindi non posso posizionare uno stop o un profit uguali per tutte e due, non posso ad esempio aggiungere quel valore allo stop loss e invece toglierlo dal profit così facendo sposto i valori del profit e dello stop però mi percorre la stessa distanza da me voluta, ti faccio un esempio se lo spread è 1 pip e io entro Long e compro a 10 il mio stop sta a 7 e il mio profit sta a 19, ovviamente con lo spread quando entro in posizione entro a 9 non a 10 quindi il mio stop a quel punto diventa 2 pips e il profit a 10 pips (non rispettando il mio rischio 1:3) non ce un modo per aggiungere questo valore di spread allo stop loss e toglierlo dal profit per avere la stessa distanza, intendo che se prima entrava a 9 per lo spread il mio stop stava a 7 ma aggiungendo il valore dello spread in quel momento allo stop si sposta a 6 pips e non più 7 e la stessa cosa con il profit che si sposta a 18 non più a 19 avendo sempre il mio rischio rendimento 1:3 è possibile farlo?
No, purtroppo non è possibile sapere lo spread.
Devi vederlo manualmente, magari poi cerchi di fare una media. Meglio se lo metti un pò più alto.
Io sul DAX metto fisso 2 pip, anche se dalle 8 alle 17:30 è 1 pip (opero dalle 8 alle 19-20, quindi 2 pip li pago per poco tempo, ma con 2 fisso sono certo che non avrò sorprese).