Sistema di spostamento di take profit. Problema.
Forums › ProRealTime forum Italiano › Supporto ProOrder › Sistema di spostamento di take profit. Problema.
- This topic has 5 replies, 2 voices, and was last updated 4 years ago by Matteo MC.
-
-
08/03/2020 at 10:26 PM #140798
Salve a tutti. Mi sono appena iscritto al forum, ma “uso” la piattaforma di Prorealtime da un pò di tempo e recentemente ho aperto un conto con IG per iniziare a testare dal vivo alcuni miei sistemi.
Oggi però mi sono accorto di un problema sul backtest di un codice.
Questa è la porzione di codice che, sono in alcuni casi, genera il problema, chiudendo senza motivo la posizione appena aperta.
123456789101112131415161718192021222324if ((BarIndex – TradeIndex)>2) thenC03=1elseC03=2endifif c03=1 thenC04= (HIGHEST[(BarIndex – TradeIndex)](high))endif//TORO —————————————————————————-IF A1=1 AND A4=2 AND A5=1 and c1=1 and c2=1 and c3=1 and c4=1 THENBUY 1 SHARES AT MARKETENDIFIf c04>(tradeprice*100.6/100) and C04<= (TRADEPRICE*100.9/100) and c03=1 thensell at (tradeprice*100.4/100) stopelsif c04>(tradeprice*100.9/100) and C04<= (TRADEPRICE*101.2/100) and c03=1 thensell at (tradeprice*100.7/100) stopelsif c04>(tradeprice*101.2/100) and C04<= (TRADEPRICE*101.5/100) and c03=1 thensell at (tradeprice*101.0/100) stopelsif c04>(tradeprice*101.5/100) and C04<= (TRADEPRICE*101.8/100) and c03=1 thensell at (tradeprice*101.3/100) stopelsif c04>(tradeprice*101.8/100) and C04< (TRADEPRICE*102.1/100) and c03=1 thensell at (tradeprice*101.6/100) stopendifIl sistema ha anche un take profit e uno stoploss fissi, ma il codice precedente lo uso per “proteggere” il profitto a modo mio, in maniera simile a un trailing stop.
Nella maggioranza dei casi il codice funziona bene, ma ogni tanto, come ho detto prima, mi chiude subito la posizione e non riesco a capire perchè. Lo sto testando sul DAX con grafico a candele di 5 minuti. Di seguito una immagine con due ordini chiusi senza motivo. Se cancello questa parte di codice, e lascio solo tp ed sl fissi, il primo dei due ordini prosegue tranquillo, anche se ovviamente il rendimento totale cala non poco.
08/03/2020 at 11:10 PM #140804Usa sempre il pulsante “Insert PRT code” quando inserisci il codice nei tuoi post per facilitare la lettura degli altri.
Grazie 🙂
08/03/2020 at 11:19 PM #140806Nelle righe da 14 a 24 non puoi essere sicuro che il prezzo corrente (CLOSE) sia > del tuo Stop Loss. Se non lo è perché magari è lontano dal massimo più alto, invece di essere eseguito come STOP il tuo ordine pendente di uscita può essere eseguito LIMIT o addirittura a MERCATO se non rispetta il minimo richiesto dal broker.
Questo è quello che posso dirti vedendo il codice che hai postato.
08/04/2020 at 1:15 AM #140807Ciao Roberto.
Ti ringrazio per la risposta! Effettivamente quello che dici mi sembra corretto, però affinchè quegli ordini stop vengano eseguiti devono essere trascorse almeno 2 candele (condizione definita sulla riga 2), mentre invece gli ordini che mi chiude in maniera inaspettata, li chiude sulla stessa candela di apertura.
08/04/2020 at 9:39 AM #140821Perché C04 è vero solo dopo 2 barre, però quella condizione viene riportata barra dopo barra senza essere MAI azzerata, per cui dopo la prima ooerazione sarà sempre vera, per questo esce subito.
Prima della riga 1 inserisci queste:
1234If STRATEGYPROFIT <> STRATEGYPROFIT[1] ThenC03 = 0C04 = 0Endifche azzera le due variabili alla chiusura di ogni operazione (in profitto o meno).
08/04/2020 at 10:12 AM #140824Buongiorno Roberto.
Ti ringrazio per il tuo aiuto. Questa sera ristudierò l’azzeramento delle condizioni.
Ho fatto una prova inserendo le righe che mi hai suggerito, ma il risultato non cambia. Tra l’altro lo fa solo in alcuni casi, magari si “comporta bene” per 2 o 3 operazioni, inseguendo il massimo come previsto, e poi ne sbaglia una.
-
AuthorPosts
Find exclusive trading pro-tools on