entrare ed uscire dal mercato ad un dato livello di prezzo
Forums › ProRealTime forum Italiano › Supporto ProOrder › entrare ed uscire dal mercato ad un dato livello di prezzo
- This topic has 26 replies, 4 voices, and was last updated 5 years ago by tradingpro.
-
-
06/02/2018 at 11:07 AM #72032
Buongiorno a tutti e grazie in anticipo per la vostra pazienza.
Vorrei scrivere il mio primo TS ma nonostante la lettura di svariati topic qui presenti non riesco nell’impresa
Quello che vorrei impostare è qualcosa del genere:
A– Se il prezzo supera di 40 pips il prezzo fatto registrare alle ore 14:00 il sistema dovrebbe aprire long con stop e limiti prefissati al raggiungimento del prezzo
e non in chiusura di barra
B– Fare in modo che il sistema non effettui più di una operazione al giorno
C– Per questo tipo di sistema il time frame deve essere giornaliero?(e non funziona per nulla)
oppure ad 1 h? ( funziona ma a volte da più di un trade giornaliero)
12345678910111213141516171819202122232425defparam cumulateorders=falseDEFPARAM Flatbefore = 140000DEFPARAM Flatafter = 220000once tradare = 1if intradaybarindex = 0 thentradare = 1endifif onmarket thentradare = 0endif//individuo apertura ore 14once prezzoore8 = 0if time = 130000 thenprezzoore8=closeendifif not onmarket and tradare thenbuy 10 contract at prezzoore8 + 40 * pipsize stopbuy 10 contract at prezzoore8 + 40 * pipsize limitSET STOP pLOSS 40SET TARGET pPROFIT 20endifDove sono gli errori?
Grazie !
06/02/2018 at 3:09 PM #72056Se usi il giornaliero non può funzionare, perché la strategia viene eseguita SEMPRE alla chiusura della candela, appena prima che si apra quella successiva.
Per rilevare il prezzo delle ore 14 non puoi mettere 13, non so se hai sbagliato a scrivere nel post o nella strategia.
Può fare anche più operazioni anche se alla prima riga hai messo false, perché con gli ordini pendenti ProOrder viene a sapere delle posizioni aperte solo alla chiusura della candela e se nel frattempo ne sono state aperte due…. non c’è niente da fare, restano aperte!
Ho inserito una riga dopo la 6 ed una dopo la 9 per azzerare il prezzo, in modo da non rientrare più volte.
1234567891011121314151617181920212223defparam cumulateorders=falseDEFPARAM Flatbefore = 140000DEFPARAM Flatafter = 220000once tradare = 1if intradaybarindex = 0 thentradare = 1prezzoore8=0endifif onmarket thentradare = 0prezzoore8=0endif//individuo apertura ore 14once prezzoore8 = 0if time = 140000 thenprezzoore8=closeendifif not onmarket and tradare thenbuy 10 contract at prezzoore8 + 40 * pipsize stopbuy 10 contract at prezzoore8 + 40 * pipsize limitSET STOP pLOSS 40SET TARGET pPROFIT 20endif06/02/2018 at 5:46 PM #72066Grazie Roberto per il tuo tempo, ho provato il TS che mi hai corretto ma mi fa ancora più operazioni durante la medesima giornata.
Ho provato con eur/usd e TF 1 ora.
avevo messo ore 13:00 pensando che mi rivelasse il prezzo in chiusura di barra oraria ovvero 13:59:59
Ti faccio anche un’altra domanda : volendo imparare il linguaggio ProBuilder si trovano altri manuali? ( oltre quello in pdf sul sito?)
Si può raggiungere un buon livello di conoscenza della programmazione pur non avendo studi informatici alle spalle?
Spero di non essere andato fuori tema ,
buon trading e buon fine settimana
06/04/2018 at 1:11 PM #72209Se puoi allegarmi uno screenshot (immagine di una schermata) di EurUsd h1, dove ci sono cose che non ti tornano posso verificarle.
TIME restituisce l’ora corrente alla chiusura della candela, per cui se aggiungi GRAPH TIME alla fine del codice vedrai, nella finestra delle variabili che ProBackTest aprirà per il debugging, restando con il mouse sulla candela delle 13 che ti verrà visualizzato 14 nell’apposito riquadro delle variabili.
OPENTIME, invece, restituisce l’ora di apertura della candela.
Per imparare il linguaggio ProBuilder (che è lo stesso di ProOrder e ProScreener, con la sola differenza nelle istruzioni peculiari di ciascuna applicazione, ProOrder ha BUY oppure SELL ecc… che le altre due applicazioni non hanno, come ProScreener ha il multitimeframe non presente negli altri, ecc…), oltre al manuale che hai citato puoi guardare alcuni video sul canale youtube di ProRealTime Italia https://www.youtube.com/channel/UCj1ZsVjiKQQH1XzIMENQTyQ.
La cosa migliore è, dopo avere visto qualche video e letto il manuale, osservare il codice tra la marea presenti su questo forum e provare a scopiazzare qualcosa, partendo da strategie o indicatori o screener semplici ed aggiungendoci qualcosa di tuo poco a poco finché non hai assimilato i concetti e le modalità.
Il linguaggio ProRealTime, specialmente se sai un minimo d’inglese di base, è molto intuitivo, IF…ENDIF o FOR…NEXT o BUY sono frasi autoesplicative.
Siccome il linguaggio PRT è una versione ultraridotta del linguaggio BASIC, se trovi qualcosa online sul Basic puoi studiarlo e andrà bene, la logica è quella.
Combinare insieme le varie istruzioni tra loro, è un pò più difficile, ma una volta conosciute le istruzioni devi semplicemente seguire la logica facendo fare al codice quello che tu fai manualmente nel trading!
06/04/2018 at 8:44 PM #72271Ti ringrazio per i consigli per l’apprendimento del linguaggio anche perchè mi conferma che sono sulla buona strada.
Per quanto riguarda cio che non mi torna ti allego 3 screenshot relativamente al TS, la relativa lista ordini e la lista posizioni chiuse.
Da queste risultano aperte più di una posizione nelle giornate del 30mnovembre,13 e 20 dicembre, 25 gennaio.
A presto e buona serata!
06/04/2018 at 9:36 PM #72280fai questo tentivo:
in alto vai su opzioni—opzioni della piattaforma-fuso orario e ori di trading.
imposta tutti e 4 imercati delle currency in questo modo (vedi allegato)
chiudi prt e SALVA la piattaforma prima di chiudere.
riapri prt e ricontrolla se il problema della doppia operazione è scomparso.
facci sapere
ciao!
06/04/2018 at 11:49 PM #72309E’ del tutto regolare, DEFPARAM CUMULATEORDERS=FALSE impedisce che ProOrder esegua più di UN trade contemporaneamente, però ProOrder SA che un trade è stato aperto solo dalla barra successiva (perché la strategia viene eseguita solamente alla chiusura di ogni barra, non prima).
Nei primi 3 trade del 25 Gennaio essi si aprono e si chiudono PRIMA che la barra si chiuda, infatti GRAPH dimostra che la variabile TRADARE è sempre settata ad 1, perché ONMARKET non è vero nel momento in cui ProOrder esegue la strategia alla chiusura della barra. Quando fa il 4° trade, invece, poiché si prolunga per più di una barra, azzera TRADARE in quanto è ONMARKET e NON fa ulteriori operazioni.
I prezzi di entrata, per le operazioni successive sono dovute al tipo di ordine pendente, per quello LIMIT viene assicurata l’esecuzione al prezzo indicato o MIGLIORE, quindi può anche non essere eseguito, mentre per quello STOP è garantita l’esecuzione, ma non il prezzo che può essere PEGGIORE (e di solito lo è, raramente può essere migliore a causa di slippage positivi, a me è capitato solo una volta, in trading manuale) come nel caso delle operazioni del 25/1 successive alla prima.
E’ un comportamento un pò bizzarro, che niente ha a che vedere con gli orari, che necessita di una maggiore interazione tra PRT ed il BROKER, in modo che ProOrder venga a sapere, in ogni caso, quando un’operazione si apre e si chiude in corso di formazione della candela.
Ad ogni modo il problema (non so se è già stato segnalato nei suggerimenti della piattaforma, versione inglese https://www.prorealcode.com/topic/centralization-of-queries-and-suggestions-on-prorealtime/#post-23211) si risolve salvando l’ammontare del guadagno/perdita della strategia all’inizio di ogni giorno (quando IntraDayBarIndex=0) ed aggiungere, alle condizioni per operare, che la STRATEGYPROFIT sia uguale a quella salvata, perché se è diversa significa che c’è stata almeno un’operazione.
123456789101112131415161718192021222324252627282930defparam cumulateorders=falseDEFPARAM Flatbefore = 140000DEFPARAM Flatafter = 220000once tradare = 0once Profitto=0if intradaybarindex = 0 thenProfitto=StrategyProfittradare = 1prezzoore8=0endifif onmarket thentradare = 0prezzoore8=0endif//individuo apertura ore 14once prezzoore8 = 0if time = 140000 thenprezzoore8=closeendifif not onmarket and tradare and StrategyProfit=Profitto thenbuy 10 contract at prezzoore8 + 40 * pipsize stopbuy 10 contract at prezzoore8 + 40 * pipsize limitSET STOP pLOSS 40SET TARGET pPROFIT 20endifgraph closegraph prezzoore8graph prezzoore8 + 40 * pipsizegraph onmarketgraph tradareL’uso di GRAPH (purtroppo consente un massimo di 5 variabili da tenere d’occhio) è utilissimo, nel momento dell’uso sembra faccia perdere tempo, in realtà, a conti fatti, lo fa guadagnare perché ti può aiutare a risolvere problemi, come in tal caso, difficilmente comprensibili.
Ti allego le 4 schermate con evidenziate le 4 operazioni del 25 Gennaio ed i valori che ad ogni barra, assumono le variabili messe sotto controllo.
Ovviamente con la versione corretta di cui sopra spariscono le operazioni oltre la prima.
E’ un comportamento un pò bizzarro di PRT, perché lascia a noi dovere controllare se c’è stata un’operazione, mentre potrebbe farlo ProOrder direttamente, anche perché se aggiorna il risultato di STRATEGYPROFIT significa che un’operazione è avvenuta nel corso della formazione della candela, non è certo stato un bonus (se è positivo) da parte di IG!
06/05/2018 at 1:59 PM #72355Ora si che funziona come dovrebbe, grazie Roberto!
Spero di poter raggiungere un giorno il tuo grado di conoscenza della materia.
Per quanto riguarda il tentativo consigliato da Geronima proverò non appena avrò tempo.
Grazie a tutti e buon trading!
11/04/2018 at 10:41 AM #84112Buona domenica .
Ho bisogno di un ulteriore aiuto (ammetto che in questi ultimi mesi ho potuto studiare molto poco).
Nell’invio del codice a ProOrder mi da una segnalazione di errore riferita all’istruzione Graph,
dicendomi che può non essere usata in modalità trading automatico.
Allego screenshot
11/04/2018 at 10:59 AM #84114GRAPH si può usare solo nel backtest, in reale non ha nessun senso e ProOrder non la supporta.
Per evitare di eliminare quelle righe è sufficiente che all’inizio to metta le doppie barre, così diventano commenti e sono ignorate.
12/17/2018 at 2:08 PM #87290Buongiorno, tutto ok con GRAPH , ora ho altre 2 questioni in sospeso
A- come posso fare a far si che prorder mi esegua l’ordine di acquisto solo nel momento in cui si verificano le condizioni dettate,
e non mi inserisca invece gia dalle 14 un “ordine in lavorazione” ?
La differenza è notevole in quanto utilizzando il sistema sia per il long che lo short alle 14 mi rimane impegnato un doppio margine anche se durante il prosieguo della giornata il sistema non effettua trade
B- come si fa a racchiudere in un unico ts le due possibilità (long e short)?
12/17/2018 at 4:08 PM #87302Così com’è NON può entrare prima delle 14, sia perché c’è la limitazione oraria delle prime righe, sia perché entrerebbe a d un prezzo di 0,0040 o 40 (secondo lo strumento), impossibile da raggiungere! Ad ogni modo puoi aggiungere alla riga 20 la condizione
1AND prezzoore8così non entra quando è 0.
Per entrare SHORT metti le stesse righe dei LONG, solo on le condizioni previste per gli SHORT, immagino un prezzo diverso.
03/14/2019 at 3:16 PM #93641salve
su questo codice vorrei che il TS entrasse appena toccase di nuovo il prezzo 11458 perche senno cosi entra alla chiusura
1234567891011121314// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivateONCE TradeOn = 1 //abilitare il trading per defaultIF IntradayBarIndex = 0 THENTradeOn = 1 //abilitare il trading all’inizio di ogni giornoENDIF// Condizioni per entrare su posizioni longIF close crosses over 11458 and tradeon THENBUY 1 CONTRACT AT MARKETtradeon=0endifSET TARGET pPROFIT 2003/14/2019 at 3:40 PM #93646Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, in modo da rendere il codice più leggibile. Grazie.
03/14/2019 at 3:45 PM #93648Devi usare un ordine pendente:
1234567891011121314// Definizione dei parametri del codiceDEFPARAM CumulateOrders = False // Posizioni cumulate disattivateONCE TradeOn = 1 //abilitare il trading per defaultIF IntradayBarIndex = 0 THENTradeOn = 1 //abilitare il trading all’inizio di ogni giornoENDIFIF OnMarket THENtradeon=0ENDIF// Condizioni per entrare su posizioni longBUY 1 CONTRACT AT 11458 STOP //o LIMIT se il prezzo attuale fosse maggioreSET TARGET pPROFIT 20 -
AuthorPosts
Find exclusive trading pro-tools on