entrare ed uscire dal mercato ad un dato livello di prezzo

Viewing 15 posts - 1 through 15 (of 27 total)
  • Author
    Posts
  • #72032 quote
    seandsun12345
    Participant
    Junior

    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)

    defparam cumulateorders=false
    DEFPARAM Flatbefore = 140000
    DEFPARAM Flatafter = 220000
    once tradare = 1
    if intradaybarindex = 0 then
    tradare = 1
    endif
    if onmarket then
    tradare = 0
    endif
    //individuo apertura ore 14
    once prezzoore8 = 0
    if time = 130000 then
    prezzoore8=close
    endif
    if not onmarket and tradare then
    buy 10 contract at prezzoore8 + 40 * pipsize stop
    buy 10 contract at prezzoore8 + 40 * pipsize limit
    
     
    
    SET STOP pLOSS 40
    SET TARGET pPROFIT 20
     
    endif
    

    Dove sono gli errori?

    Grazie !

    #72056 quote
    robertogozzi
    Moderator
    Master

    Se 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.

    defparam cumulateorders=false
    DEFPARAM Flatbefore = 140000
    DEFPARAM Flatafter = 220000
    once tradare = 1
    if intradaybarindex = 0 then
       tradare = 1
       prezzoore8=0
    endif
    if onmarket then
       tradare = 0
       prezzoore8=0
    endif
    //individuo apertura ore 14
    once prezzoore8 = 0
    if time = 140000 then
       prezzoore8=close
    endif
    if not onmarket and tradare then
       buy 10 contract at prezzoore8 + 40 * pipsize stop
       buy 10 contract at prezzoore8 + 40 * pipsize limit
       SET STOP pLOSS 40
       SET TARGET pPROFIT 20
    endif
    #72066 quote
    seandsun12345
    Participant
    Junior

    Grazie 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

    #72209 quote
    robertogozzi
    Moderator
    Master

    Se 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!

    #72271 quote
    seandsun12345
    Participant
    Junior

    Ti 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!

    ts-forum-prc-0.jpg ts-forum-prc-0.jpg ts-forum-prc-1.jpg ts-forum-prc-1.jpg ts-forum-prc-2.jpg ts-forum-prc-2.jpg
    #72280 quote
    Geronima Ortiz
    Participant
    Average

    fai 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!

    Cattura-1.jpg Cattura-1.jpg
    #72309 quote
    robertogozzi
    Moderator
    Master

    E’ 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.

    defparam cumulateorders=false
    DEFPARAM Flatbefore = 140000
    DEFPARAM Flatafter = 220000
    once tradare = 0
    once Profitto=0
    if intradaybarindex = 0 then
       Profitto=StrategyProfit
       tradare = 1
       prezzoore8=0
    endif
    if onmarket then
       tradare = 0
       prezzoore8=0
    endif
    //individuo apertura ore 14
    once prezzoore8 = 0
    if time = 140000 then
       prezzoore8=close
    endif
    if not onmarket and tradare and StrategyProfit=Profitto then
       buy 10 contract at prezzoore8 + 40 * pipsize stop
       buy 10 contract at prezzoore8 + 40 * pipsize limit
       SET STOP pLOSS 40
       SET TARGET pPROFIT 20
    endif
    graph close
    graph prezzoore8
    graph prezzoore8 + 40 * pipsize
    graph onmarket
    graph tradare

    L’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!

    EurUsd1.jpg EurUsd1.jpg EurUsd2.jpg EurUsd2.jpg EurUsd3.jpg EurUsd3.jpg EurUsd4.jpg EurUsd4.jpg
    #72355 quote
    seandsun12345
    Participant
    Junior

    Ora 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!

    #84112 quote
    seandsun12345
    Participant
    Junior

    Buona 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

    problemi-con-istruzione-graph.jpg problemi-con-istruzione-graph.jpg
    #84114 quote
    robertogozzi
    Moderator
    Master

    GRAPH 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.

    #87290 quote
    seandsun12345
    Participant
    Junior

    Buongiorno, 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)?

    #87302 quote
    robertogozzi
    Moderator
    Master

    Così 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

    AND prezzoore8

    così 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.

    #93641 quote
    tradingpro
    Participant
    Senior

    salve

    su questo codice vorrei che il TS entrasse appena toccase di nuovo il prezzo 11458 perche senno cosi entra alla chiusura

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    ONCE TradeOn = 1 //abilitare il trading per default
    IF IntradayBarIndex = 0 THEN
    TradeOn = 1 //abilitare il trading all’inizio di ogni giorno
    ENDIF
    // Condizioni per entrare su posizioni long
    
    IF close crosses over 11458 and tradeon THEN
    BUY 1 CONTRACT AT MARKET
    tradeon=0
    endif
    
    SET TARGET pPROFIT 20
    #93646 quote
    robertogozzi
    Moderator
    Master

    Per scrivere il codice , utilizza il pulsante <> “insert PRT code”, in modo da rendere il codice più leggibile. Grazie.

    #93648 quote
    robertogozzi
    Moderator
    Master

    Devi usare un ordine pendente:

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    ONCE TradeOn = 1 //abilitare il trading per default
    IF IntradayBarIndex = 0 THEN
    TradeOn = 1 //abilitare il trading all’inizio di ogni giorno
    ENDIF
    IF OnMarket THEN
    tradeon=0
    ENDIF
    // Condizioni per entrare su posizioni long
    
    BUY 1 CONTRACT AT 11458 STOP   //o LIMIT se il prezzo attuale fosse maggiore
    
    SET TARGET pPROFIT 20
Viewing 15 posts - 1 through 15 (of 27 total)
  • You must be logged in to reply to this topic.

entrare ed uscire dal mercato ad un dato livello di prezzo


ProOrder: Trading Automatico & Backtesting

New Reply
Author
Summary

This topic contains 26 replies,
has 4 voices, and was last updated by tradingpro
6 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 06/02/2018
Status: Active
Attachments: 12 files
Logo Logo
Loading...