Richiesta di delucidazione

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #94864 quote
    othelloothello
    Participant
    Senior
    // trade criteria extra
    min1 = MIN(dhigh(0),dhigh(1))
    min2 = MIN(dhigh(1),dhigh(2))
     
    max1 = MAX(dlow(0),dlow(1))
    max2 = MAX(dlow(1),dlow(2))
     
    If ExtraTradeCriteria then
     tcxLong = high < MIN(min1,min2)
     tcxShort = low > MAX(max1,max2)
    else
     tcxLong = high
     tcxShort = low
    endif

    Salve.

    Sto studiando il linguaggio della piattaforma ProRealTime e,  quando mi imbatto in codici che hanno scritto altri forumer (presumo bravi) cerco di capire, di interpretare, per poter crescere e, spero presto, poter dare anch’io un contributo a questa comunità.

    Lo spezzone di codice che qui riporto si riferisce ad una strategia che è stata proposta da Paul nel forum in lingua inglese. Probabilmente qualcuno di voi la conoscerà certamente.

    Comunque, spiego cosa ho capito e cosa non ho capito.

    Supponiamo che il codice venga eseguito all’ora in cui scrivo: 9:30 del 28/03/2019.

    La prima istruzione calcola il minore tra il massimo della giornata del 27/03/2019 ed il massimo battuto nella giornata odierna fino a quest’ora.

    La seconda istruzione calcola il minore tra il massimo della giornata del 26/03/2019 ed il massimo battuto nella giornata di ieri, 27/03/2019.

    La terza istruzione calcola il maggiore tra il minimo della giornata del 27/03/2019 ed il minimo battuto nella giornata odierna fino a quest’ora.

    La quarta istruzione calcola il maggiore tra il minimo della giornata del 26/03/2019 ed il minimo battuto nella giornata di ieri, 27/03/2019.

    Le sette istruzioni successive sono un ciclo IF-ELSE-ENDIF. La condizione di test fa riferimento ad una variabile logica (o booleana) di nome “ExtraTradeCriteria”: se tale variabile è VERA (cioè se vale 1) allora vengono eseguite le due istruzioni successive.

    Se, invece, tale variabile è FALSA (cioè se vale 0), vengono eseguite le due istruzione successive alla parola chiave ELSE.

    Ora, se ExtraTradeCriteria” è VERA, vengono eseguite le istruzioni:

    tcxLong = high < MIN(min1,min2)

    tcxShort = low > MAX(max1,max2)

    Ognuna di queste istruzioni esegue un’assegnazione logica. La prima assegna alla variabile tcxLong il valore 1 (VERA) se il massimo della barra appena trascorsa è inferiore al minore tra min1 e min2. In soldoni, se il massimo della barra appena trascorsa è inferiore a ciascuno dei massimi della giornata odierna, del 27/03/2019 e del 26/03/2019, allora tale variabile viene posta ad 1.

    Analogamente, la seconda assegna alla variabile tcxShort il valore 1 (VERA) se il minimo della barra appena trascorsa è superiore al maggiore tra max1 e max2. In parole povere, se il minimo della barra appena trascorsa è superiore a ciascuno dei minimi della giornata odierna, del 27/03/2019 e del 26/03/2019, allora tale variabile viene posta ad 1.

    Se, invece, ExtraTradeCriteria” è FALSA, vengono eseguite le istruzioni successive ad ELSE:

    tcxLong = high

    tcxShort = low

    Anche qui vengono eseguite due assegnazioni; ma non si tratta di assegnazioni logiche: la variabile tcxLong viene posta eguale al valore del massimo della barra appena terminata. E, alla variabile tcxShort, viene assegnato il valore del minimo della barra appena terminata.

    E qui nasce il mio dubbio e la conseguente richiesta di chiarimento: queste due variabili vengono trattate come variabili logiche nella prima parte del ciclo e poi come semplici variabili numeriche nella seconda parte. E’ corretto così? Che cosa significa? Che cosa non ho capito?

    Lo chiedo perchè poi, più avanti nel codice, queste due variabili vengono testate come variabili logiche. Ma se esse contengono valori numerici, come potranno avvenire, correttamente, tali test?

    // long entry
    …
    if lx and tcLong and tcxLong then

    …

    endif
    // short entry
    …
    if sx and tcShort and tcxShort then

    …

    endif

     

    Grazie a chiunque voglia illuminarmi.

    🙂

    #94865 quote
    NicolasNicolas
    Keymaster
    Legend

    Dipende dalla logica del programma completo, quindi non posso dirlo con precisione. Ma finché una variabile non è uguale a 0, è VERA, non importa se è un valore di prezzo o qualsiasi altra cosa! Quindi è possibile che Paul usi anche questo tipo di logica, ma non posso esserne sicuro.

    #94868 quote
    robertogozzirobertogozzi
    Moderator
    Legend

    Prova a chiedere a Paul nel topic dove l’hai letto, oppure posta il link dove l’hai trovato, per darci un’occhiata.

    Le righe 2-3 (ma anche le 5-6) possono essere scritte in un’unica riga:

    minimum = MIN(dhigh(0),MIN(dhigh(1),dhigh(2)))

    questo solo per farti vedere come le cose possono essere scritte/combinate in molti modi.

    #94893 quote
    othelloothello
    Participant
    Senior

    Il fatto che una variabile è sempre vera, qualunque sia il valore che essa abbia, escluso lo zero, non lo sapevo. Proverò, a questo punto, a rileggere il programma seguendo questa logica interpretativa.

    Grazie molte, Nicolas.

    #94909 quote
    othelloothello
    Participant
    Senior

    Si Roberto, hai ragione, ma il mio inglese non mi ha “spronato” a chiedere: sicuramente sarebbe stata la cosa migliore. Comunque, cerco il link con un po’ di calma e lo sottopongo.

    Per il momento ti ringrazio anche per il tuo suggerimento in merito alla funzione MIN: ero convinto che non potesse avere più di due argomenti. Grazie a te ho imparato un’altra cosa!

    Ancora grazie.

Viewing 5 posts - 1 through 5 (of 5 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

Richiesta di delucidazione


ProOrder: Trading Automatico & Backtesting

New Reply
Author
author-avatar
othello @othello Participant
Summary

This topic contains 4 replies,
has 3 voices, and was last updated by othelloothello
7 years, 6 months ago.

Topic Details
Forum: ProOrder: Trading Automatico & Backtesting
Language: Italian
Started: 03/28/2019
Status: Active
Attachments: No files
ProRealCode ProRealCode
Loading...