Come fare a leggere colori e valori di un oscillatore (e inserirli nel codice)

Viewing 15 posts - 1 through 15 (of 18 total)
  • Author
    Posts
  • #91100 quote
    Albert FX
    Participant
    Average

    Buonasera a tutti,

    scrivo il mio primo post per richiedere il Vostro gentile aiuto su come fare per identificare il colore ed il valore di un oscillatore ed inserire tali informazioni nel codice di PRT.

    Mi spiego meglio facendo un brevissimo esempio:

    Come indicato nell’immagine allegata, vorrei riuscire ad identificare una sequenza di 4 barre consecutive (in questo caso ROSSA-VERDE-VERDE-VERDE) tutte aventi un valore  minore di zero.

    Vorrei quindi impostare un ordine LONG al superamento del massimo della candela corrispondente alla terza barra verde, ovviamente mantenendo invariato il livello di ingresso per tutte le candele successive senza variare tale livello di candela in candela. Ho letto a tal proposito che bisogna inserire il valore di ingresso nei parametri per “fissarlo” ed evitare che venga spostato/aggiornato ad ogni nuova candela… ma non ho capito come fare 🙁

    Ringrazio tutti per l’aiuto che mi vorrete fornire.

    Buon trading!

    oscillatore.png oscillatore.png
    #91110 quote
    robertogozzi
    Moderator
    Master

    Se cerchi nel forum, utilizzando l’apposita finestra di ricerca che si apre quando passi col mouse sopra il tuo avatar (in alto a destra) potrai trovare la documentazione ufficiale ed un sacco di esempi da cui sprendere spunto, nel tu caso mi sembra si tratti di un MACD.

    Per ottenerne il valore devi semplicemente scriverlo ed utilizzarlo al momento o, preferibilmente, assegnarlo ad una variabile per poi poterlo riutilizzare anche più volte:

    IF Macd[12,26,9](close) > 0 THEN
     .
    ELSIF Macd[12,26,9](close) < 0 THEN
      
     .
    ENDIF
    //     oppure
    MioMacd = Macd[12,26,9](close)
    IF MioMacd > 0 THEN
     .
    ELSIF MioMacd < 0 THEN
     .
    ENDIF

    Il cambio di colore NON esiste, è solo un effetto visivo. Una barra dell’istogramma, oppure la linea di una media, passa da ROSSO a VERDE semplicemente perché il valore dell’indicatore/oscillatore di quella candela è > di quello della precedente. Se invece è < allora passa da VERDE a ROSSO, ma è il programmatore che partendo da questa relazione stabilisce il colore da visualizzare per rendere più evidente la variazione, come pr le candele giapponesi o heikin-ashi.

    Che significa vuoi vedere una sequanza di 4 barre tutte minori di 0, non t’interessa il loro colore, basta che siano 4 < 0?

    #91130 quote
    Albert FX
    Participant
    Average

    Ok grazie, adesso penso di aver capito.

    Se quindi il colore delle barre è, giustamente, solo un effetto visivo per migliorarne la comprensione, per identificare la sequenza che mi interessa dovrò quindi prendere in esame 5 barre consecutive, impostando una formula del tipo:

    barra 5 < barra 4 (per essere sicuro che la quarta sia rossa)

    barra 3 < barra 4 (per essere sicuro che la terza sia la prima di colore verde)

    barra 2 < barra 3

    barra 1 < barra 2

    tutte ovviamente con un valore < di zero.

    E’ corretto il mio ragionamento ?

    (contemporaneamente a queste domande sto ovviamente leggendo decine di post per cercare  di capire le basi delle programmazione in PRT ed evitare di chiedere cose che riguardano argomenti già ampiamente trattati).

    Grazie mille.

    #91153 quote
    robertogozzi
    Moderator
    Master

    Si, va bene.

    #91646 quote
    Albert FX
    Participant
    Average

    Buongiorno,

    ho provato a richiamare a video l’oscillatore AWESOME OSCILLATOR di Bill Williams riuscendo a visualizzarlo correttamente ma quando provo a creare automaticamente una condizione che richiama questo oscillatore ottengo il massaggio che non è disponibile su ProBuilder.

    ho provato anche a richiamare il MACD, che mi è stato proposto come esempio ma anche qui, a sorpresa, non sono riuscito ad inserirlo in una eventuale formula.

    suppongo che si debba a questo punto procedere manualmente al suo inserimento all’interno del codice.

    mi potete dire cortesemente quale nome è stato assegnato in ProBuilder/Order al AWESOME OSCILLATOR, in modo da poterlo scrivere direttamente nel programma.

    inoltre, sempre riferendomi al mio ultimo post qui sopra,  dovendo analizzarne 5 valori consecutivi, dove devo mettere i valori tra parentesi quadra che mi identificano la varie giornate ?

    Grazie mille.

    #91655 quote
    robertogozzi
    Moderator
    Master

    Per quanto riguarda le candele, si, devi indicare tra parentesi quadra quella che desideri, tenenendo presente che [1] sta per la PRIMA precedente quella corrente, [2] per la SECONDA precedente, ecc…

    L’indicatore AWESOME OSCILLATOR predefinito non è accessibile da ProOrder, devi usare quello custom che trovi nella libreria, cioè https://www.prorealcode.com/prorealtime-indicators/awesome-oscillator/ e che puoi richiamare così:

    Segnale, Istogramma  = CALL "AWESOME OSCILLATOR"

    ovviamente con i valori predenfiniti nel codice, se vuoi poterli cambiare di volta i volta devi imparare a modificare il codice dell’indicatore e predisporre le variabili che t’interessano.

    Per il Macd, con la creazione assistita riesci a crearlo:

    MioMacd     = MACD[21,23,8](close)
    SegnaleMacd = ExponentialAverage[8](MACDline[21,23,8](close))
    #91692 quote
    Albert FX
    Participant
    Average

    sto provando a fare qualche ragionamento sul Awesome Oscillator, per poter successivamente programmare la strategia completa dei Fractals di Bill Williams.

    penso di essere riuscito ad individuare correttamente la sequenza delle barre dell’istogramma ROSSA-VERDE-VERDE-VERDE ma non riesco come al solito :(( ad impostare i corretti livelli di Entry, SL e TP che dovrebbero corrispondere rispettivamente al max della candela corrispondente alla terza barra verde, al minimo della candela corrispondente alla terza barra verde e al range proiettato verso l’altro sempre della terza candela…

    allego un’immagine che potrà sicuramente chiarire come si dovrebbe comportare il programma.

    potete cortesemente darmi un’indicazione su come sistemare il codice ?

    grazie a tutti.

     

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = True // Posizioni cumulate disattivate
    
    //DEFPARAM FlatAfter = 220000
    //DEFPARAM FLATBEFORE = 090000
    
    // Condizioni per entrare su posizioni long
    //indicator6 = CurrentDayOfWeek = 1
    
    AO=Average[5](MedianPrice)-Average[34](MedianPrice)
    Cond1 = AO[1]>AO[2] AND AO[1]<0
    Cond2 = AO[2]>AO[3] AND AO[2]<0
    Cond3 = AO[3]>AO[4] AND AO[3]<0
    Cond4 = AO[4]<AO[5] AND AO[4]<0
    Cond5 = AO[5]<0
    CondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5
    MyStop = LOW[1]
    MyHigh = HIGH[1]
    MySize = 100
    
    IF not onmarket AND OPEN>LOW[1] AND OPEN<HIGH[1] AND CondTOT THEN
    BUY MySize SHARES AT (MyHigh+0.0000) STOP
    ENDIF
    
    
    SET STOP pLOSS MyStop
    SET TARGET PROFIT MyHigh+(MyHigh-MyStop)
    Prova-AO.png Prova-AO.png
    #91694 quote
    Albert FX
    Participant
    Average

    l’immagine allegata si riferisce alla coppia EURGBP e le date prese come esempio sono 1,2,3 e 6 ottobre 2014.

    #91746 quote
    robertogozzi
    Moderator
    Master

    La candela di SETUP (quella dove TUTTE le condizioni sono verificate) è quella del 7, infatti alla chiusura entra in posizione e ti viene indicato con la freccia sotto la candela del giorno 8.

    Tu gli hai detto di esaminare le condizioni delle 5 candela prima del 7, quindi 6-5-4-3-2, più altre condizioni alla riga 21.

    Non va bene, cosa vuoi fare esattamente?

    #91750 quote
    Albert FX
    Participant
    Average

    sto incominciando a capire…

    il fatto che alla riga 21 abbia inserito una condizione che richiama l’OPEN (riferito alla candela del 7) mi fa slittare tutto on avanti di una candela, corretto?

    io alla riga 21 ho detto semplicemente che vorrei evitare dei gap in apertura della candela del 7, ovvero se apre sotto il minimo della candela del 6 (linea rossa) oppure sopra il massimo (linea azzurra) io non vorrei più entrare LONG (perché il gap down mi darebbe un segnale di potenziale debolezza ed il gap up mi segnalerebbe che il titolo è già “scappato”).

    come posso fare per piazzare un ordine di acquisto pagandolo esattamente al prezzo del massimo della candela del 6 ?

    evitando contemporaneamente il gap-up e di comprarlo mentre il prezzo sta tornando indietro…

    (sono quasi certo che la soluzione che mi proporrai risolverà anche il mio altro problema sul pattern 123 di Ross 🙂  )

    Grazie mille.

    #91756 quote
    robertogozzi
    Moderator
    Master

    come posso fare per piazzare un ordine di acquisto pagandolo esattamente al prezzo del massimo della candela del 6 ?
    scrivendo il riferimento a quel massimo, che è quello della prima candela precedente, identificato con [1]:

    BUY MySize SHARES AT (MyHigh[1]+0.0000) STOP

     

    #91758 quote
    Albert FX
    Participant
    Average

    e se la candela apre sopra il valore MyHigh[1] e poi torna indietro me lo compra oppure è un ordine che risulterebbe ormai ininfluente/inattivo ?

     

    Grazie

    #91785 quote
    Albert FX
    Participant
    Average

     

    // Definizione dei parametri del codice
    DEFPARAM CumulateOrders = True // Posizioni cumulate disattivate
    
    //DEFPARAM FlatAfter = 220000
    //DEFPARAM FLATBEFORE = 090000
    
    // Condizioni per entrare su posizioni long
    //indicator6 = CurrentDayOfWeek = 1
    
    AO=Average[5](MedianPrice)-Average[34](MedianPrice)
    Cond1 = AO[1]>AO[2] AND AO[1]<0
    Cond2 = AO[2]>AO[3] AND AO[2]<0
    Cond3 = AO[3]>AO[4] AND AO[3]<0
    Cond4 = AO[4]<AO[5] AND AO[4]<0
    Cond5 = AO[5]<0
    CondTOT = Cond1 AND Cond2 AND Cond3 AND Cond4 AND Cond5
    MyStop = LOW[1]
    MyHigh = HIGH[1]
    MySize = 10000
    
    IF not onmarket AND CondTOT THEN
    BUY MySize SHARES AT (MyHigh+0.0000) STOP
    ENDIF
    
    
    SET STOP pLOSS MyStop*pipsize
    SET TARGET pPROFIT MyHigh+RANGE[1]*pipsize

    per ovviare allo slittamento in avanti di una candela per ogni operazione, quando si procede con il controllo dei gap di apertura (tenuto conto che vorrei operare essenzialmente sulla valute che in pratica non hanno gap tra un giorno a l’altro) ho tolto il controllo sul valore di OPEN[0] rispetto al massimo della candela precedente HIGH[1].

    nonostante l’assenza di questa condizione continuo a trovare dei comportamenti piuttosto strani (che dipendono sicuramente dai miei errori di programmazione e che vorrei proprio capire come risolvere).

    allego una videata con alcune operazioni in sequenza per le quali vorrei avere cortesemente un chiarimento.

    prima operazione: sequenza barre oscillatore rossa-verde-verde-verde in data 10, 11,12 e 15 ottobre 2018. Ingresso al superamento del massimo della candela 15. l’ingresso long doveva avvenire in data 16 e chiudersi con lo stop loss posto a livello del minimo della candela del 15. Non avvenuto e non segnalato dalle frecce.

    seconda operazione: sequenza barre oscillatore rossa-verde-verde-verde in data 31 ottobre, 1, 2 e 5 novembre 2018. Ingresso al superamento del massimo della candela 5 novembre. l’ingresso long doveva avvenire in data 6 novembre e chiudersi il 7 novembre con il TP posto al livello del massimo della candela del 5 novembre addizionato al suo stesso range. Operazione indicata ma non chiusa correttamente.

    terza operazione: sequenza barre oscillatore rossa-verde-verde-verde in data 15, 16, 19 e 20 novembre 2018. Ingresso al superamento del massimo della candela del 20 novembre. l’ingresso long correttamente non avvenuto e non segnalato.

    quarta operazione: sequenza barre oscillatore rossa-verde-verde-verde in data 29, 30 novembre e 3 e 4 dicembre 2018. Ingresso al superamento del massimo della candela 4 dicembre. l’ingresso long doveva avvenire in data 7 dicembre e chiudersi con SL in data 11 dicembre con lo sfondamento del minimo della candela di ingresso del 4 dicembre. Operazione non avvenuta e non segnalata.

    Potete per favore correggermi il codice che allego al fine di considerare correttamente le 4 operazioni sopra elencate ?

    allego anche una immagine del grafico con le candele+oscillatore delle 4 operazioni.

    Grazie mille.

    Prove-Entry-AO.png Prove-Entry-AO.png
    #91822 quote
    robertogozzi
    Moderator
    Master

    e se la candela apre sopra il valore MyHigh[1] e poi torna indietro me lo compra oppure è un ordine che risulterebbe ormai ininfluente/inattivo ?
    L’ordine diventerebbe A MERCATO perché il prezzo d’entrata è inferiore (non diventa LIMIT perché tu hai scritto STOP, quindi ProOrder non può eseguirlo STOP e lo fa entrare a mercato, quindi al valore di apertura della candela del gap).

    #91823 quote
    robertogozzi
    Moderator
    Master

    Perché mi parli di 4 candele, mentre te ne analizzi 5 (+ quella corrente), tu non guardi quelle del 10-11-12-15, ma quelle del 9-10-11-12-15 (o 10-11-12-15-16)?

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

Come fare a leggere colori e valori di un oscillatore (e inserirli nel codice)


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
Albert FX @albert-fx Participant
Summary

This topic contains 17 replies,
has 2 voices, and was last updated by Albert FX
6 years, 11 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 02/11/2019
Status: Active
Attachments: 3 files
Logo Logo
Loading...