Quali sono i valori errati?
Usa le istruzioni GRAPH che ho aggiunto in fondo per verificare certi valori (puoi aggiungerne altre).
Un gap è quando un’apertura è maggiore del massimo precedente (al rialzo), o minore del minimo precedente (al ribasso). Contrario significa che sei Long eg hai un gap al ribasso o viceversa.
Sulle due foto postate prima, c’era una posizione che si è chiusa in profit ma il guadagno è stato di 25 euro e no di 150, è per colpa di questo gap? come funziona cioè se è long e una candela ha un apertura più bassa della chiusura precedente perchè chiude la posizione se non è arrivata a target che sarebbe di 150 euro?come posso risolverlo?
Per informarti sui GAP e LAP puoi trovare un sacco di spiegazioni su internet.
I GAP/LAP non si risolvono, capitano e non c’è modo di evitarli.
Le uscite prima di 150 saranno dovute al trailing stop, l’hai verificato con GRAPH?
Si era quello il problema finalmente siamo arrivati al risultato, ti volevo chiedere, ho provato a mettere le posizioni cumulative ma mi da sempre lo stesso risultato, non può fare questa funzione o sull’ultimo anno non si sovrappone nessuna posizione ?(anche se credo che sia un po improbabile)
Posta il codice, per favore.
Spiegami meglio come le vuoi accumulare le posizioni?
Cambiano varie cose, perché lo stop ed il target devono essere unici e ProPrder fa una media dei prezzi d’entrata e del numero dei lotti.
A quel punto il limite di 50 euro (o dollari che siano) cosa deve fare?
// Definizione dei parametri del codice
DEFPARAM CumulateOrders = false // 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) * 2.2
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
Questo è il codice, sotto ti ho postato due foto dove su uno entra in posizione short come da condizioni, ma per me anche sulla foto successiva dovrebbe entrare short come la prima dato che ci sono le giuste condizioni di entrata come sulla posizione aperta prima (l entrata è quando la line dello stocastico incrocia verso il basso il valore 80) e questo si verifica in tutte e due i casi ma dato che già c’è una posizione aperta non la apre, ma per me la deve aprire, dopo che lo stop e il profit devono rimanere sempre 50 euro di SL e 150 euro di TP, vorrei che il programma considerasse le due posizioni indipendenti l’una dall’altra devono essere due cose separate, ognuna ha il suo sl e tp anche se sono aperte contemporaneamente . Lo stesso vale ovviamente se ce ne sono 3 o più vorrei che se già sono aperte 2-3 posizioni, se ci sono le giuste condizioni di ingresso come già inserito sia in long che in short, si aprano ulteriori posizioni indipendenti dalle altre
Alle riga 2 gli hai detto di NON aggiungere posizioni, quindi non le aggiunge.
In ogni caso se apri più posizioni puoi solo andare nella stessa direzione (accumulo), non possono essere aperte posizioni contrarie (manualmente si, ma non con il trading automatico).
Si per sbaglio ho copiato le istruzioni quella con “false”, ma già avevo provato con true e mi da lo stesso risultato come se fosse false, non cambia niente. Prova tu stesso
Spiegami cosa vuoi fare con precisione.
Lo stop loss ed il take profit sono unici per tutte le posizioni.
Lo stop loss deve essere ricalcolato ogni volta oppure va bene il primo?
Il limite di 50 dollari non potrà essere rispettato.
Se consideriamo che una posizione già è stata aperta,la posizione successiva che si apre deve avere il suo stop e profit ovviamente sarà diverso da quell’altra posizione perché è una posizione nuova come se l altra già aperta non ci fosse e vorrei che fosse sempre di 50euro SL e 150 euro TP
Rileggi gli ultimi miei post.
Non sono posizioni indipendenti, ad ogni aggiunta viene calcolata una posizione media, come da foto allegata.
E non si possono chiudere posizioni parzialmente, alla chiusura vengono chiuse tutte.