non comprare se una variabile entro un tot di giorni non si evrifica

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #69373 quote
    carlius404
    Participant
    Average

    Salve a tutti, mi serve creare un codice che compra solo se il prezzo ha raggiunto il massimo degli ultimi 10 giorni peró se entro 5 giorni non lo raggiunge allora non compra

    #69375 quote
    robertogozzi
    Moderator
    Master

    Se deve comprare quando ha raggiunto il prezzo, a cosa serve verificare che lo raggiunga entro 5 giorni?

    #69390 quote
    carlius404
    Participant
    Average

    Mi serve per una parte di un programma in cui si compra se: la media mobile veloce incrocia quella quella lenta a rialzo e se il prezzo è maggiore o uguale al prezzo maggiore degli ultimi 10 periodi, però se entro 5 giorni il prezzo non raggiunge il massimo allora non entro.

    Spero di essere stato chiaro.

    #69398 quote
    robertogozzi
    Moderator
    Master

    Hai grosso modo ripetuto, in modo leggermente diverso, quanto detto nel tuo primo post.

    Ad ogni modo cerco di spiegarti quello che penso tu intendessi dire:

    1. cercare un incrocio rialzista tra medua veloce e lenta (io ho fatto un esenpio con due esponenziali, a 8 e 30) e, contemporaneamente,
    2. che la candela abbia fatto il nuovo MASSIMO delle ultime 10 candele
    3. supponendo che la CHIUSURA sia inferiore al MASSIMO di cui al punto precedente (altrimenti tutta la procedura non serve), entrare quando il prezzo supererà detto MASSIMO, purché avvenga entro 5 candele dall’incrocio

    Nella foto ho evidenziato un rettangolo che va dall’incrocio alle 10 precedenti candele.

    La freccia ARANCIO indica il prezzo di CHIUSURA e quella VERDE il MASSIMO di cui al punto 2. Quindi la strategia dovrebbe fare entrare LONG al superamento di detto massimo purché avvenga entro le 5 candele successive).

    Ho capito bene?

    xMedie.jpg xMedie.jpg
    #69559 quote
    carlius404
    Participant
    Average

    Si, hai capito bene.

    #69670 quote
    carlius404
    Participant
    Average

    Mi potreste aiutare a scrive il codice della scadenza entro i 5 giorni?

    #69675 quote
    robertogozzi
    Moderator
    Master

    Ecco fatto, provala e fammi sapere:

    DEFPARAM CumulateOrders = false
    
    ONCE Condizione = 0
    
    MediaVeloce = Average[8,1](close)
    MediaLenta  = Average[30,1](close)
    
    IF OnMarket OR summation[5](Condizione[1]) THEN
       Condizione = 0
    ENDIF
    
    IF Condizione = 0 AND Not OnMarket THEN
       Incrocio   = MediaVeloce CROSSES OVER MediaLenta
       Massimo    = (high = highest[10](high))
       Prezzo     = high
       Condizione = Incrocio AND Massimo
    ENDIF
    
    IF Condizione AND not OnMarket THEN
       BUY 1 CONTRACTS AT Prezzo STOP
    ENDIF
    #69887 quote
    carlius404
    Participant
    Average

    Ho provato il programma e per vedere se funzionasse ho messo anche un modo per uscire dalle posizioni long ma non so perché entra ed esce a mercato in modo impreciso o non entra proprio; forse ho sbagliato a programmare. Il programma è il seguente

    DEFPARAM CumulateOrders = false
     
    ONCE Condizione = 0
     
    MediaVeloce = Average[8,1](close)
    MediaLenta  = Average[30,1](close)
     
    IF OnMarket OR summation[5](Condizione[1]) THEN
    Condizione = 0
    ENDIF
     
    IF Condizione = 0 AND Not OnMarket THEN
    Incrocio   = MediaVeloce CROSSES OVER MediaLenta
    Massimo    = (high = highest[10](high))
    Prezzo     = high
    Condizione = Incrocio AND Massimo
    ENDIF
     
    IF Condizione AND not OnMarket THEN
    BUY 1 CONTRACTS AT Prezzo STOP
    ENDIF
    //
    MediaVeloce = Average[8,1](close)
    MediaLenta = Average[30,1](close)
    c1= MediaVeloce[1]< MediaLenta[1]
    
    IF c1 THEN
    SELL AT MARKET
    ENDIF

    Ho messo l’immagine di dove dovrebbe entrare long ma non entra. In oltre non ho capito nel programma che hai scritto cosa vuol dire       ONCE Condizione = 0       e      

    IF OnMarket OR summation[5](Condizione[1]) THEN
       Condizione = 0
    ENDIF
    cattura-prorealtime.png cattura-prorealtime.png
    #69890 quote
    robertogozzi
    Moderator
    Master

    La prima entrata NON doveva esserci, in quanto entro le 5 barre il massimo non è stato raggiunto.

    La seconda NON doveva esserci perché ha fatto il massimo, ma non in presenza d’incrocio.

    Le tue modifiche vanno bene.

    #70221 quote
    carlius404
    Participant
    Average

    Salve volevo chiederti se è corretto questo programma fatto con MACD e sempre con la scadenza entro 5 giorni. Perché alcune volte entra a mercato ma non dopo i 5 giorni ( foto).

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = False // Posizioni cumulate disattivate
    ONCE Condizione = 0
    // Condizioni per entrare su posizioni long
    indicator1 = MACD[12,26,9](close)
    
    IF Condizione = 0 THEN
    Massimo    = (high = highest[10](high))
    c1 = (indicator1 > 0)
    Prezzo     = high
    Condizione = c1 AND Massimo
    ENDIF
    IF OnMarket OR summation[5](Condizione[1]) THEN
    Condizione = 0
    ENDIF
    
    IF Condizione THEN
    BUY 1 CONTRACTS AT Prezzo STOP
    ENDIF
    
    // Condizioni per uscire da posizioni long
    indicator2 = MACD[12,26,9](close)
    c2 = (indicator2 < 0)
    
    IF c2 THEN
    SELL AT MARKET
    ENDIF
    // Definizione dei parametri del codice
    ONCE Condizione1 = 0
    // Condizioni per entrare su posizioni long
    indicator3 = MACD[12,26,9](close)
    
    IF Condizione1 = 0 THEN
    Minimo    = (low = lowest[10](low))
    c3 = (indicator3 < 0)
    Prezzo1     = low
    Condizione1 = c3 AND Minimo
    ENDIF
    IF OnMarket OR summation[5](Condizione1[1]) THEN
    Condizione1 = 0
    ENDIF
    
    IF Condizione1 THEN
    SELLSHORT 1 CONTRACTS AT Prezzo1 STOP
    ENDIF
    
    // Condizioni per uscire da posizioni long
    indicator4 = MACD[12,26,9](close)
    c4 = (indicator4 > 0)
    
    IF c4 THEN
    EXITSHORT AT MARKET
    ENDIF
    
    MACD-entro-5-giorni.png MACD-entro-5-giorni.png
Viewing 10 posts - 1 through 10 (of 10 total)
  • You must be logged in to reply to this topic.

non comprare se una variabile entro un tot di giorni non si evrifica


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
carlius404 @carlius404 Participant
Summary

This topic contains 9 replies,
has 2 voices, and was last updated by carlius404
7 years, 10 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 04/29/2018
Status: Active
Attachments: 3 files
Logo Logo
Loading...