Eseguire un ordine e fare una pausa

Viewing 11 posts - 1 through 11 (of 11 total)
  • Author
    Posts
  • #76845 quote
    ironshirowironshirow
    Participant
    Average

    Ciao,

    Qualcuno può fornirmi il codice per attendere x barre dopo la conclusione  di un ordine in modo tale di evitare di fare ordini che si aprono e che si chiudono uno dopo l’altro anche se ci sono le condizioni?

    Grazie

    #76846 quote
    papero76papero76
    Participant
    Senior

    ciao in pratica non è chiara la tua domanda

    comunque devi attendere X barre dopo un ingresso a mercato (long o short) dovresti

    1 iniziare il conteggio delle barre da ingresso a mercato

    CONTEGGIOBARRE= BARINDEX-TRADEINDEX

    CONDIZIONE PER CALCOLO E METTERE USCITA A MERCATO

    IF CONTEGGIOBARRE=5 (ad esempio ho inserito 5 barre) AND (altrecondizioni per uscita long o short) THEN
    sell 1 contracts al market ///se vuoi vendere un long
    endif

    SPERO DI ESSERE STATO CHIARO

    SALUTI

    #76849 quote
    ironshirowironshirow
    Participant
    Average

    Ciao,

    Grazie ma io avrei bisogno del contrario ovvero dopo che eseguo un ordine vorrei fare una pausa prima di rientrare a mercato.

    Spero di essere stato chiaro.

    Ciao

    #76862 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Devi innanzitutto inzializzare un contatore (il nome della variabile è ininfluente, puoi anche chiamarla X o ABCD, basta non sia un nome già utilizzato) con:

    ONCE Contatore = 0

    Poi devi iniziare a contare quando un’operazione viene chiusa, come si fa? Basta verificare che tu NON sia  a mercato adesso, ma tu lo sia stato la barra precedente, così saprai che l’operazione si è appena conclusa e potrai cominciare a contare:

    IF Not OnMarket AND OnMarket[1] THEN
       Contatore = 1
    ENDIF

    Adesso bisogna incrementare il contatore ad ogni barra in cui NON sei a mercato (purché tu lo sia stato precedentemente, quindi se CONTATORE non sarà 0):

    IF Not OnMarket AND Contatore THEN
       Contatore = Contatore + 1
    ENDIF

    Però queste ultime 3 righe devi metterle subito dopo ONCE o comunque PRIMA di quelle che ho scritto in precedenza, altrimenti la prima volta il contatore parte da 2, anziché da 1.

    A questo punto, dove verifichi le condizioni per entrare a mercato, LONG o SHORT che sia, devi aggiungere la condizione:

    AND Contatore = 0

    In modo da non entrare quando il conteggio è iniziato.

    Se tutto finisse qui, però, dopo la prima operazione NON entreresti più a mercato, perché contatore non torna mai a ZERO. Quindi devi decidere, tu, quando vuoi che torni a 0.

    Puoi farlo ad inizio di ogni giornata con:

    IF IntraDayBarIndex = 0 THEN  //quando siamo alla prima candela del nuovo giorno...
       Contatore = 0              //...azzera il contatore per operare di nuovo
    ENDIF

    oppure puoi decidere di farlo dopo un certo numero, di tua scelta, di barre con:

    IF Contatore = 10 THEN
       Contatore = 0       //azzerare il contatore dopo 10 barre
    ENDIF

    Vedi tu cosa preferisci.

    #76875 quote
    ironshirowironshirow
    Participant
    Average

    Ciao Roberto,

    ti ringrazio.

    Ho inserito i codici come li hai descritti ma il sistema continua a comprare di seguito su ogni barra che si crea.

    ONCE Contatore = 0

    IF Not OnMarket AND OnMarket[1] THEN
    Contatore = 1
    ENDIF

    IF Not OnMarket AND Contatore THEN
    Contatore = Contatore + 1
    ENDIF

    IF Contatore = 10 THEN
    Contatore = 0 //azzerare il contatore dopo 10 barre

    ENDIF

    HO messo questi codici prima delle condizioni di entrata.

    è giusto?
    Ciao

    #76877 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Hai aggiunto la condizione

    AND Contatore = 0

    ?

    #76878 quote
    ironshirowironshirow
    Participant
    Average

    IF c1 AND Contatore=0 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN

    così, giusto?

    #76883 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Si, prova.

    #76887 quote
    ironshirowironshirow
    Participant
    Average

    Provato ma come vedi dallo screen con TF 15 min le operazioni si susseguono

    Schermata-2018-07-27-alle-14.44.30.png Schermata-2018-07-27-alle-14.44.30.png
    #76908 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    A me funziona, probabilmente hai fatto qualche errore da altre parti:

    ONCE Contatore = 0
    IF Not OnMarket AND Contatore THEN
       Contatore = Contatore + 1
    ENDIF
    IF Not OnMarket AND OnMarket[1] THEN
       Contatore = 1
    ENDIF
    IF Contatore = 10 THEN
       Contatore = 0        //azzerare il contatore dopo 9 barre
    ENDIF
    c1 = close > average[100](close)
    IF c1 AND Not OnMarket AND Contatore = 0 THEN
       BUY 1 CONTRACT AT MARKET
       set target pprofit 250
       set stop   ploss   180
    ENDIF
    graph Contatore
    graph OnMarket
    graph OnMarket[1]

    questo l’ho provato sul DAX daily, dall’1/1/2018 ad oggi.

    Può darsi che tu metta un target/stop di pochi pips e l’operazione si chiuda nella stessa barra, in questo caso ProOrder non la vede perché gli occorre una barra per verificare che si ONMARKET.

    #76910 quote
    ironshirowironshirow
    Participant
    Average

    Ciao Roberto,

    svelato il mistero.

    La mia strategia si chiude nella stessa barra quindi dovrò rinunciare a questa cosa.

    Grazie

Viewing 11 posts - 1 through 11 (of 11 total)
  • You must be logged in to reply to this topic.
ProRealAI ProRealAI New

Stuck on this ProBuilder code?

Describe what this topic is trying to build, in plain English, and ProRealAI writes the ProRealTime™ indicator, screener or system for you.

Available in 7 languages
Try ProRealAI

Eseguire un ordine e fare una pausa


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
ironshirow @ironshirow Participant
Summary

This topic contains 10 replies,
has 3 voices, and was last updated by ironshirowironshirow
8 years, 2 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 07/26/2018
Status: Active
Attachments: 1 files
ProRealCode ProRealCode
Loading...