scrivo approfittando della pagina, perche ho bisogno di aiuto….. sto ultimando una strategia per pro order molto buona (a mio giudizio) provata in reale con ottimi risultati….per Migliorarla (sullo strumento da me scelto) avrei bisogno di aiuto per formulare un codice che a fronte di una diminuzione nel giorno precedente o in corso di piu di 250pips dia solo ordini long e viceversa per un aumento di piu di 250pips dia solo ordini short. (la condizione deve essere valida solo in queste occasioni, in situazioni normali ( cioe sotto la soglia dei 250pips) gli ordini limite vengono messi secondo le metodologie proprie del sistema
grazie
Ho scritto questo codice, ma non l’ho testato. Aggiungilo alla tua strategia e fammi sapere.
All’inizio ho messo due righe vuote con dei punti perché li avrai altre tue variabili/costanti o i vari DEFPARAM…
Alla fine ho messo altre linee vuote con dei punti perché da li metterai il resto della tua strategia.
Tu dovrai solo verificare che la variabile OPERATIVITA abbia valore 0 per operare normalmente, oppure 1 per andare solo LONG o 2 per andare solo SHORT.
.
.
//
// inizializzazione variabili e costanti
//
ONCE PuntiMassimi = 250 * pipsize //250 pips limite per operazioni solo Long o solo SHort
ONCE DcloseIeri = 0 //indica la chiusura di ieri
ONCE DloseOggi = 0 //indica la chiusura di oggi
ONCE Operativita = 0 //0=operatività Normale, 1=solo Long, 2=solo Short
//
// operazioni preliminari da fare all'inizio di ogni nuovo giorno
//
IF IntraDayBarIndex = 0 THEN
IF DcloseIeri = 0 THEN
DcloseIeri = DCLOSE(1) //assegna il primo valore a DcloseIeri
ENDIF
DcloseOggi = DCLOSE(1) //salva il valore della chiusura della chiusura di ieri
IF (DcloseIeri - DcloseOggi) >= PuntiMassimi THEN
Operativita = 1 //solo LONG se ieri ha perso più di un certo numero di Pips
ENDIF
IF (DcloseOggi - DcloseIeri) >= PuntiMassimi THEN
Operativita = 2 //solo SHORT se ieri ha guadagnato più di un certo numero di Pips
ENDIF
DcloseIeri = DcloseOggi //considera VECCHIO il valore dell'ultima chiusura Daily
ENDIF
//
// inizio operatività consueta
//
IF (DcloseIeri - Dclose(0)) >= PuntiMassimi THEN
Operativita = 1 //solo LONG se oggi ha perso più di un certo numero di Pips
ENDIF
IF (Dclose(0) - DcloseIeri) >= PuntiMassimi THEN
Operativita = 2 //solo SHORT se oggi ha guadagnato più di un certo numero di Pips
ENDIF
.
.
Ha ragione Nicolas, non ci avevo fatto caso. Ho cambiato il titolo rendendolo più significativo.
Scusa per aver urlato, ma non hai idea di quante volte al giorno sto cambiando il titolo degli argomenti sui forum 👿
Ciao Roberto gozzi, grazie infinite per il tuo post lo tester il prima possibile e ti farò sapere‼️‼️‼️‼️
Ciao Roberto, grazie innanzitutto, ho inserito il tuo codice nel mio, sicuramente il trading system ha avuto un miglioramento dal punto di vista delle perdite ma il problema è che mentre ad esempio oggi 9/4 in backtest avrebbe fatto 4 trade in reale demo e non, non è scattato neppure una volta, hai un idea del perché?
Per fare vrifiche occorre il codice completo e sapere su quale strumento e TF l’hai utilizzato.
Ciao Roberto, certo come faccio ad inviarti il tutto?
grazie
O fai un copia e incolla, oppura, più semplicemente, esporti il file .ITF creato da ProRealTime e lo alleghi al tuo post.
E’ ovvio che il tutto sarà visibile a chiunque (che poi è lo scopo di questo forum).
ciao roberto ecco il codice, sto testando su dax 1h contratto da 1 euro con IG , come potrai vedere si basa sui rimbalzi di doc trading
grazie
DEFPARAM CumulateOrders = false
// posizione money management
REINV = 1 // 0 no rinvestimento
levier = 1
IF REINV = 0 THEN
n = levier // non reivestire
ENDIF
IF REINV = 1 THEN // réinvestissement
capital = 10000 + strategyprofit
n = (capital / 10000) *levier
ENDIF
// inizializzazione variabili e costanti
//
ONCE PuntiMassimi = 250 * pipsize //250 pips limite per operazioni solo Long o solo SHort
ONCE DcloseIeri = 0 //indica la chiusura di ieri
ONCE DcloseOggi = 0 //indica la chiusura di oggi
ONCE Operativita = 0 //0=operatività Normale, 1=solo Long, 2=solo Short
//
// operazioni preliminari da fare all’inizio di ogni nuovo giorno
//
IF IntraDayBarIndex = 0 THEN
IF DcloseIeri = 0 THEN
DcloseIeri = DCLOSE(1) //assegna il primo valore a DcloseIeri
ENDIF
DcloseOggi = DCLOSE(1) //salva il valore della chiusura della chiusura di ieri
IF (DcloseIeri – DcloseOggi) >= PuntiMassimi THEN
Operativita = 1 //solo LONG se ieri ha perso più di un certo numero di Pips
ENDIF
IF (DcloseOggi – DcloseIeri) >= PuntiMassimi THEN
Operativita = 2 //solo SHORT se ieri ha guadagnato più di un certo numero di Pips
ENDIF
DcloseIeri = DcloseOggi //considera VECCHIO il valore dell’ultima chiusura Daily
ENDIF
//
// inizio operatività consueta
//
IF (DcloseIeri – Dclose(0)) >= PuntiMassimi THEN
Operativita = 1 //solo LONG se oggi ha perso più di un certo numero di Pips
ENDIF
IF (Dclose(0) – DcloseIeri) >= PuntiMassimi THEN
Operativita = 2 //solo SHORT se oggi ha guadagnato più di un certo numero di Pips
ENDIF
// indicatori
MM3LOW = Average[1](low[0])
MM3HIGH = Average[2](high[0])
IndicMACD = MACD[16,18,4](close)
// acquisto 0.001 0.0004
c1a = (IndicMACD > 0)
NivOuverturePasse = Open[6]
IF operativita =1 and c1a and nivouverturepasse < MM3LOW THEN
BUY n SHARES AT (MM3LOW-0) limit
ENDIF
// chiusura long
SELL AT (MM3HIGH+0.005) limit
//vendita allo scoperto
c1v = (IndicMACD < 0)
NivOuverturePasse2 = Open[4]
IF operativita =2 and c1v AND NivOuverturePasse2 > MM3HIGH THEN
sellshort n SHARES AT (MM3HIGH+0.0038) limit
ENDIF
exitshort AT (MM3LOW+0) limit
Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, al fine di render epiù leggibile il codice. Grazie.
Non saprei davvero da cosa può dipendere, a me il backtest ha fatto 2 operazioni ieri, come si vede dall’immagine, però non ho potuto verificarlo in demo ed in reale.
A questo punto l’unica soluzione è compilare la richiesta d’assistenza tramite la piattaforma e chiedere direttamente a PRT.
Ciao Roberto grazie per la risposta, si, infatti il problema nn é il backtest ma il funzionamento in demo o reale che sia…
Devo comunque segnalarti che tre ordini li ha eseguiti in demo, può essere che il tuo codice deve caricare un po’ di storico prima di partire?
Se puoi mi puoi spiegare brevemente come inserire le condizioni operatività dentro il mio ordine di acquisto?
Grazie infinite