CUMULO DI POSIZIONI

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #97642 quote
    Lamberto
    Participant
    Average

    Buonasera,

    sto testando un sistema che, nelle mie intenzioni, dovrebbe cumulare posizioni (short) secondo la sequenza di lotti 2-4-7.

    al verificarsi di evento ( esempio incrocio di due supertrend) identifico il livello del prezzo base e da questo tre  ulteriori livelli : 2 livelli di uscita a 20 pip ( in guadagno o in perdita ) e un livello di ingresso in short.

    il sistema l’ho testato su eur/usd time frame 15 min.

    dopo l’apertura della prima posizione short con due lotti, la successiva operazione dovrebbe essere uno short con 4 lotti al verificarsi però di una condizione precisa e cioè il prezzo deve prima superare quello che ho chiamato livello di prezzo base e poi nuovamente ridiscendere ad incrociare al ribasso il livello di entryshort.

    il problema che ho riscontrato è che il sistema continua ad entrare sul mercato con lotti da 4 e poi ancora lotti da 4 e così via.

    ho anche qualche difficoltà ad entrare short con lotti da 7 ( probabilmente sbaglio il contatore di posizioni..).

    spero di essere stato chiaro e allego anche il sistema

    ringrazio anticipatamente per la collaborazione e saluto

    Lamberto

    grigliaIN-SHORT.itf
    #98091 quote
    Nicolas
    Keymaster
    Master

    Per ricevere assistenza, si prega di incollare il codice nel messaggio successivo e con il tasto 'inserisci codice PRT' per favore. Non ho letto il tuo codice, ma tieni presente che se si utilizza l'istruzione COUNTOFPOSITION, restituisce valori negativi quando conta ordini CORTI.

    Lamberto thanked this post
    #98110 quote
    Lamberto
    Participant
    Average

    Nicolas buona sera,

    grazie per il suggerimento. Ho provato ad inserire valori negativi del COUNTOFPOSITION e ottengo una serie di ordini non come vorrei 2 – 4 -7 , ma 2-4-4- etc: non riesco ad evitare che il sistema esegua ordini “doppi”.

    allego il codice e saluto.

    Lamberto

    // Condizioni per entrare su posizioni long
    DEFPARAM CUMULATEORDERS=TRUE
    
    //TIMES = TIME > 070000 AND TIME < 210000
    
    A= TIME=070000//SUPERTREND[2,5]  CROSSES OVER SUPERTREND[5,10]
    ONCE COUNT=0
    ONCE COUNT = 1
    once count=2
    once count=3
    IF A     THEN
    count=1
    
    
    TRADEPRICES = CLOSE
    LONGEXIT= (TRADEPRICES+0.0020)
    ENTRYSELL = (TRADEPRICES -0.0007)
    SHORTEXIT = (ENTRYSELL-0.0020)
    
    ENDIF
    
    IF  NOT ONMARKET AND  close CROSSES UNDER  ENTRYSELL  and coUNT =1THEN
    SELLSHORT 2 LOT AT MARKET
    ENDIF
    
    IF  shortonmarket and  CLOSE CROSSES OVER TRADEPRICES AND    CLOSE CROSSES OVER ENTRYSELL and countofposition=-2 THEN
    COUNT = 2
    ENDIF
    
    IF SHORTonmarket and  CLOSE CROSSES UNDER ENTRYSELL AND COUNT = 2 THEN
    SELLSHORT 4 LOT AT MARKET
    ENDIF
    
    
    IF  CLOSE CROSSES OVER TRADEPRICES  AND CLOSE CROSSES OVER ENTRYSELL AND COUNTOFPOSITION=-6 THEN
    COUNT = 3
    ENDIF
    
    
    IF SHORTonmarket and  CLOSE CROSSES UNDER ENTRYSELL  AND COUNT = 3  THEN
    SELLSHORT 7 LOT AT MARKET
    ENDIF
    
    
    IF SHORTONMARKET AND CLOSE CROSSES OVER LONGEXIT THEN
    EXITSHORT AT MARKET
    ENDIF
    
    IF SHORTONMARKET AND CLOSE CROSSES UNDER SHORTEXIT THEN
    EXITSHORT AT MARKET
    
    ENDIF
    #98422 quote
    robertogozzi
    Moderator
    Master

    Alle righe 7-10, che significano quelle diverse assegnazioni alla stessa variabile COUNT?

    ONCE Count = … garantisce che il sistema inizializzerà quella variabile, con il valore da te indicato, solo la prima volta che viene eseguito. Tu potrai cambiarlo quando vorrai, ma il sistema, alle candele successive ignorerà l’istruzione ONCE.

    Nel tuo caso COUNT avrà inizialmente valore 3 perché l’hai indicato per ultimo (il sistema legge il codice in ordine sequenziale, dall’inizio alla fine) e poi non lo cambierà più, a meno che lo cambi tu come hai fatto alla riga 12.

    Inoltre, alla riga 12 (come alle altre che la seguono), tu hai scritto:

    LONGEXIT= (TRADEPRICES+0.0020)

    e formalmente va bene, però funziona solo sul Forex, perché, ad esempio, su indici come il DAX non funziona, perché non ha così tanti decimali, ti consiglio di indicando i Pips che t’interessano e di convertirli utilizzando PIPSIZE, in tal modo lo stesso codice funzionerà con qulunque strumento, che sia Forex, Indici, Azioni ecc…, così:

    LONGEXIT= (TRADEPRICES+20*pipsize)   //aggiunge 20 pips al prezzo desiderato e lo assegna alla variabile LONGEXIT

    Un altro paio di suggerimenti:

    1) cerca di usare un misto di lettere minuscole e maiuscole, saranno più leggibili, sia le istruzioni che le variabili. Prova vedere quale di questi due codici uguali si legge meglio:

    ORARIOINIZIO=090000
    ORARIOFINE=173000
    ORARIOCHIUSURA=220000
    MEDIA=AVERAGE[20]
    IF TIME=>ORARIOINIZIO THEN
    IF CLOSE CROSSES OVER MEDIA THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF
    OrarioInizio   = 090000
    OrarioFine     = 173000
    OrarioChiusura = 220000
    Media          = Average[20]
    If Time >= OrarioInizio Then
       Buy 1 Contract at Market
    Endif

    2) meglio se cerchi di allineare (anche se non sempre è possibile) i dati, se indenti i blocchi IF…ENDIF ed i cicli di qualche spazio (io uso 3 spazi, ma va bene anche solo uno) verso destra e se per le variabili e nomi in generale usi nomi significativi che ti aiutino a capire subito di cosa si tratta, questo ulteriore esempio (è lo stesso del n. 1, ma molto meno leggibile):

    A=090000
    B=173000
    C=220000
    D=AVERAGE[20]
    IF TIME=>A THEN
    IF CLOSE CROSSES OVER D THEN
    BUY 1 CONTRACT AT MARKET
    ENDIF

    Sono solo esempi, se li inserisci così ti viene segnalato errore per variabili inutilizzate.

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

CUMULO DI POSIZIONI


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Lamberto @lamberto Participant
Summary

This topic contains 3 replies,
has 3 voices, and was last updated by robertogozzi
6 years, 9 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 05/03/2019
Status: Active
Attachments: 1 files
Logo Logo
Loading...