Richiesta di delucidazione

Forums ProRealTime forum Italiano Supporto ProOrder Richiesta di delucidazione

Viewing 5 posts - 1 through 5 (of 5 total)
  • #94864

    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

    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

    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:

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

    #94893

    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

    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)

Create your free account now and post your request to benefit from the help of the community
Register or Login