Info su codice – distanza dall’apertura della candela
Forums › ProRealTime forum Italiano › Supporto ProOrder › Info su codice – distanza dall’apertura della candela
- This topic has 14 replies, 3 voices, and was last updated 6 years ago by beppe8949.
-
-
03/20/2018 at 1:58 PM #65856
Ciao!
Vorrei gentilmente capire una cosa, cosa significa questa dicitura nel codice:12c1 = (close +2 > open)c2 = (close -2 < openLo chiedo perchè ho notato che su backtest, così mi da un risultato 10 volte superiore rispetto a:
12c1 = (close > open)c2 = (close < open03/20/2018 at 2:57 PM #65864Immagino che
1(close +2 > open) //o -2significhi, per chi l’ha scritto, 2 pips sopra/sotto il prezzo di chiusura.
E’ comunque scritto in modo logicamente scorretto, può andare bene col Dax o SP500 o simili indici o azioni, ma NON funzionerebbe con le coppie valutarie.
Se si somma/sottrae 2 al DAX si ottiene un risultato corretto perché non c’è bisogno di una conversione, ma se si fa con Eur/Usd, ad esempio, sommare 2 al prezzo di chiusura somma 20.000 pips, non 2, in quanto 1.2350 non darebbe 1.2352, ma 3.2350!
Quindi è bene usare PIPSIZE in modo che la conversione, quando necessaria, la faccia il sistema internamente, in modo che il codice funzioni su tutti gli strumenti, quindi la riga di cui sopra dovrebbe essere scritta così:
1(close + 2*pipsize > open) //o -2*pipsize03/20/2018 at 3:08 PM #65865Ok Roberto ti ringrazio, però ho fatto entrambe le prove, con entrambi i codici e ho notato che comunque non apre la posizione a 2 pips di distanza dall’apertura della nuova candela, come mai? Guarda, ti inoltro i due trading system con entrambi i codici che ho usato, riusciresti gentilmente a provarli e a spiegarmi il motivo? Il TF che ho usato è 1 ora e i trading system sono per il DAX LONG.
Grazie mille!03/20/2018 at 5:04 PM #6588203/20/2018 at 5:13 PM #65883Le variabili sono SEMPRE vere, perché CLOSE+2 sarà sempre maggiore (o minore nel caso di -2) di CLOSE da solo! La sola utilità delle due variabili è di stabilire se andare LONG o SHORT, non influiscono sul prezzo.
A parte questo, una volta verificata la suddetta condizione entra al prezzo di MERCATO, come gli hai detto tu, quindi a qualunque prezzo ci sia in quel preciso istante in cui l’ordine viene piazzato.
Se vuoi che apra la posizione a quel prezzo specifico devi mettere un ordine pendente, tipo
12BUY size CONTRACTS AT Close + 2 * pipsize STOPSELLSHORT size CONTRACTS AT Close - 2 * pipsize STOP03/20/2018 at 7:08 PM #6589603/21/2018 at 9:12 AM #6592903/21/2018 at 9:16 AM #65930Oppure, ancora meglio.. Se quando torna al prezzo d’apertura chiude la posizione e la apre nel verso opposto.. (se non si può fare sul prezzo d’apertura va bene anche che la apre al contrario una volta preso lo stop) Grazie mille!!
03/21/2018 at 10:27 AM #65941Per chiuderla al prezzo d’apertura basta mettere un’ordine STOP pendente, SELL se eri Long oppure EXITSHORT se eri Short, il prezzo d’apertura te lo fornice TRADEPRICE(1):
12345SELL AT TRADEPRICE(1) STOP //esci dal LongSELLSHORT AT TRADEPRICE(1) STOP //entra Short per il reverse//EXITSHORT AT TRADEPRICE(1) STOP //esci dallo ShortBUY AT TRADEPRICE(1) STOP //entra Long per il reverseDovrai mettere tu le condizioni per fare queste operazioni, nell’ordine in cui sono scritte finiresti per uscire in SL dal long, entrare Short, Uscire subito dallo Short e rientrare immediatamente Long (da dove eri uscito in SL). Sono solo esempi di codice, sta a te utilizzarli nel modo più appropriato per te.
Se, invece, non vuoi usare ordini pendenti, puoi fare una verifica alla chiusura della candela:
123456789IF close <= TRADEPRICE(1) THENSELL AT MARKET //per i LongSELLSHORT 1 CONTRACT AT MARKET //ReverseENDIF//IF close >= TRADEPRICE(1) THENEXITSHORT AT MARKET //per gli ShortBUY 1 CONTRACT AT MARKET //ReverseENDIF03/21/2018 at 10:30 AM #6594403/21/2018 at 10:39 AM #65950Ok l’ho provato, ma secondo me.. Non va bene ahah Mi perde tutto nel giro di qualche giorno!
1234567891011121314151617181920212223242526DEFPARAM FLATBEFORE = 090000DEFPARAM FLATAFTER = 180000c1 = (close[0] > open[0])c2 = (close[0] < open[0])IF c1 AND NOT LONGONMARKET THENBUY 1 CONTRACT AT MARKETENDIFIF close <= TRADEPRICE(1) AND LONGONMARKET THENSELL AT MARKETSELLSHORT 1 CONTRACT AT MARKETENDIFIF c2 AND NOT SHORTONMARKET THENSELLSHORT 1 CONTRACT AT MARKETENDIFIF close >= TRADEPRICE(1) AND SHORTONMARKET THENEXITSHORT AT MARKETBUY 1 CONTRACT AT MARKETENDIFset stop ploss 10set target profit 1503/21/2018 at 10:46 AM #65953Su questo non c’è dubbio!
Il codice è neutro, non fa né guadagnare, né perdere. Dipende da come lo usi.
Nel caso sopra entri long appena una candela chiude Long e viceversa per gli short, ma anche una lunga pin bar di una solo pip di corpo può essere long o short, quindi è molto probabile che tu entri nel verso sbagliato!
Dovrai usare il codice in una tua strategia, è ovvio che un esempio tanto per fare non da risultati positivi.
03/21/2018 at 11:21 AM #65968Guarda ti spiego subito la strategia dell’autotrading che sto testando in demo e che sta dando ottimi risultati, ma vorrei ottimizzarlo.. In pratica entro su ogni candela da un’ora appena aprono, nel verso in cui si muove il prezzo.. però vorrei appunto che se il prezzo torna indietro, me la chiude subito a 0 in modo da pagarci solo lo spread al massimo, e quando chiude vorrei appunto si aprisse al contrario come ti dicevo.. Non so se mi sono spiegato bene 🙂
03/21/2018 at 11:46 AM #65975Il problema è che se metti un ordine pendente subito, ad esempio fai il BUY a mercato e metti subito un pendente SELL al prezzo d’entrata rischi di uscire immediatamente!
Se verifichi il prezzo alla chiusura della candela, rischi, col DAX ad 1 ora, di essere ben oltre lo SL desiderato!
Un’alternativa è quella di usare il pendente SELL sul prezzo d’entrata, ma metterlo alla candela successiva, cioè quando sei già LongOnMarket, sperando che, in quell’ora, il DAX non ti sia andato troppo contro!
Se hai seguito questo recentissimo topic di Nicolas (https://www.prorealcode.com/topic/betatesting-multitimeframe-support-automatic-trading/), oppure lo leggi adesso, vedrai che la versione MTF (Multi Time Frame) è già in beta test agli sviluppatori e Nicolas la sta provando, quindi a breve (forse non troppo breve… speriamo entro fine estate!) il problema sarà risolto, perché tu potrai usare parti di codice Daily, alcune h4, altre h1 ed infine scegliere il TF di default, 1 minuto o magari inferiore, che verrà utilizzato per i controlli da fare nell’immediato!
03/21/2018 at 11:48 AM #65976 -
AuthorPosts