Close giornata precedente

Viewing 15 posts - 1 through 15 (of 15 total)
  • Author
    Posts
  • #116171 quote
    Daniele
    Participant
    Average

    Cia a tutti

    Mi servirebbe un aiuto a scrivere un codice che preveda di entrare al superamento del close della giornata procedente, e se non  si sono verificate certe condizioni di tp o sl, di uscire ad esempio 15 min prima della chiusura del mercato.

     

    Grazie in anticipo

    #116173 quote
    robertogozzi
    Moderator
    Master

    Provalo:

    Defparam flatafter 210000
    Once TradeON = 1
    If IntraDayBarIndex = 0 then
       TradeON = 1
    Endif
    If OnMarket Or STRATEGYPROFIT <> STRATEGYPROFIT[1] then
       TradeON = 0
    Endif
    If TradeON = 1 THEN
       Buy 1 contract at Dclose(1) + 1 * pipsize Limit
       Set Target pProfit 50
       Set Stop    pLoss   30
    Endif
    #116174 quote
    robertogozzi
    Moderator
    Master

    Metti te la data che desideri per l’uscita, invece delle 210000.

    #116347 quote
    Daniele
    Participant
    Average

    Innanzitutto grazie. Ho provato a replicare il tuo codice, testando la funzione di ingresso e l’uscita. Senza TP o SL.

    I livelli in cui entra non mi tornano. Un esempio nell’immagine allegata

     

    DEFPARAM CumulateOrders = FALSE
    Defparam flatafter= 163000
    
    
    Once TradeON = 1
    If IntraDayBarIndex = 0 then
    TradeON = 1
    Endif
    If OnMarket Or STRATEGYPROFIT <>STRATEGYPROFIT[1] then
    TradeON = 0
    Endif
    
    
    If TradeON = 1   THEN
    Buy 100 shares at Dclose(1) + 1 * pipsize Limit
    
    Endif
    
    Cattura.png Cattura.png
    #116350 quote
    robertogozzi
    Moderator
    Master

    Ho bisogno di sapere li strumento, il TF e l’orario della candela.

    Devo poterlo replicare.

    #116357 quote
    Daniele
    Participant
    Average

    il TF è a 10 minuti. L’orario della candela 09 e 10.

    Ho provato anche con altri TF. ed in tutti non entra mai  nella candela di apertura se si creano le condizioni.

    Lo strumento è azionario tedesco.

    #116396 quote
    robertogozzi
    Moderator
    Master

    Intanto il mio è un esempio generico, devi verificare se l’ordine è di tipo LIMIT o STOP, quindi usa questo:

    DEFPARAM CumulateOrders = FALSE
    Defparam flatafter= 163000
    Once TradeON = 1
    If IntraDayBarIndex = 0 then
       TradeON = 1
    Endif
    If OnMarket Or STRATEGYPROFIT <>STRATEGYPROFIT[1] then
       TradeON = 0
    Endif
    If TradeON = 1 THEN
       IF close < Dclose(1) then
          Buy 100 shares at Dclose(1) + 1 * pipsize stop
       else
          Buy 100 shares at Dclose(1) + 1 * pipsize limit
       endif
       set target pprofit 20
       set stop   ploss   20
    Endif

    in ogni caso andrebbe verificato che il prezzo d’entrata non sia inferiore alla distanza minima eventualmente richiesta dal broker.

    Tieni presente che gli ordini pendenti, se il prezzo non è alla distanza corretta, oppure l’ordine è di tipo svagliato (LIMIT invece che STOP o viceversa), l’ordine può essere inserito a mercato, al prezzo corrente o rifiutato.

    Una soluzione potrebbe essere l’entrata a mercato quando il prezzo supera DCLOSE(1), ma rischi che l’entrata avvenga vari pips dopo il superamento.

    Comunque questo è il codice per l’entrata a mercato:

    DEFPARAM CumulateOrders = FALSE
    Defparam flatafter= 163000
    Once TradeON = 1
    If IntraDayBarIndex = 0 then
       TradeON = 1
    Endif
    If OnMarket Or STRATEGYPROFIT <>STRATEGYPROFIT[1] then
       TradeON = 0
    Endif
    If TradeON = 1 THEN
       IF close >= Dclose(1) + (1 * pipsize) then
          Buy 100 shares at market
          set target pprofit 20
          set stop   ploss   20
       Endif
    Endif
    #116397 quote
    robertogozzi
    Moderator
    Master

    Quando devi evidenziare un’operazione che ritieni sbagliata, indica sempre lo strumento esatto, il time frame, la data e l’ora della candela incriminata. Grazie 🙂

    #116466 quote
    Daniele
    Participant
    Average

    Grazie per il codice.

    A questo punto un’altra domanda.  Come detto il livello l’entrata è data dalla chiusura della giornata precedente. I segnali di entrata però sono a loro volta costruiti sulla base di un time frame giornaliero.

    A questo punto però come faccio a far funzionare insieme il modello che definisce i segnali di entrata che funzionano su base giornaliera, e l’uscita che è forzata ad un certo orario e quindi opera su base intraday ? di fatto anche le condizioni di sl e tp che vorrei mettere si basano su un indice di volatilità sempre  calcolato su base giornaliera.

    E’ necessario costruire un modello  con due time frame diversi ?

    #116469 quote
    robertogozzi
    Moderator
    Master

    Si, da oltre un anno è disponibile il supporto MTF, Multiple Time Frame, che permette di usare più unità di tempo combinate tra loro.

    #116514 quote
    Daniele
    Participant
    Average

    Grazie Roberto a riguardo ho visto quanto da te postato https://www.prorealcode.com/topic/cowabunga-on-dax-with-multiple-time-frames/

    Però non mi  riesce far funzionare in una strategia di fatto interamente basata su candele giornaliere, l’unico comando intraday che l’uscita ad una certa ora.

    Anche sulla base del codice dei post di sopra potresti farmi un’esempio.

    Grazie

    #116517 quote
    robertogozzi
    Moderator
    Master

    Dimmi tu una semplice strategia che vuoi usare su più time frame ed io te la codifico.

    #116532 quote
    Daniele
    Participant
    Average

    Segnale su  candele giornaliere  Heikin Ashi positive e con close e open (candele standard) sempre giornaliere maggiori di media semplice a 15 gg.

    Dati questi segnali entrare nella candela successive al superamento del max(close, open)  della candela del giorno prima.

    Uscire ad esempio alle 1645.

    SL e TP  da decidere quindi per ora non importa

    #116885 quote
    Daniele
    Participant
    Average

    Ciao Roberto se possibile  potresti indicarmi, a titolo di esempio,  in questa strategia daily, cosa devo modificare /inserire per forzare l’uscita ad un orario, tipo  le 1700 ?

    Grazie

    DEFPARAM CumulateOrders = FALSE
    //timeframe(1 day,updateonclose)
    
    MediaH=exponentialaverage[15](close)
    
    trend =0
    IF HIGH > MediaH THEN
    TREND = 1
    MioPrezzo=close
    ENDIF
      
    
    IF TREND = 1 THEN
    BUY 100 shares AT MioPrezzo stop
    SET STOP %LOSS 2
    SET TARGET %PROFIT 3
    ENDIF
    #116901 quote
    robertogozzi
    Moderator
    Master

    Basta che tu inserisca immediatamente prima, o subito dopo, la riga:

    DEFPARAM FaltAfter = 170000

    ed ogni operazione aperta verrà chiusa alle 17.

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

Close giornata precedente


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Daniele @daniele Participant
Summary

This topic contains 14 replies,
has 2 voices, and was last updated by robertogozzi
6 years ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 01/07/2020
Status: Active
Attachments: 1 files
Logo Logo
Loading...