Think or Swim script conversion to ProReal Time

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #134633 quote
    Alessandro99
    Participant
    New

    Ciao a tutti!

    Sono in possesso di uno script che viene utilizzato per una strategia di trading swing ma è stato originariamente concepito per la piattaforma di trading Think o Swim.
    Sfortunatamente, non posso accedere a TD ameritrade nel mio paese, quindi non sono in grado di usare questo script!
    Mi chiedevo se potreste aiutarmi a tradurre questo codice per ProReal Time.
    Lo scopo della sceneggiatura è di cercare tutti gli stock sul mercato che presentano alcune caratteristiche, principalmente determinate medie mobili e indicatori.
    Ecco il codice (si basa su 3 diverse “strategie”: con MA a 18 giorni, MA a 50 giorni e MA a 100 giorni).
    Lascerò anche nei file allegati lo script completo (si basa anche su brevi tattiche, ma mi concentro principalmente sulle lunghe strategie di seguito; lo lascerò lì se ne hai bisogno).
    GRAZIE di cuore per il vostro aiuto, sono assolutamente d’accordo, ma per me è una sceneggiatura molto importante!

    18 Bounce Long

    MovAvgExponential(“length” = 18) is greater than MovAvgExponential(“length” = 50) and MovAvgExponential(“length” = 50) is greater than MovAvgExponential(“length” = 100) and MovAvgExponential(“length” = 100) is greater than MovAvgExponential(“length” = 200) and low from 1 bars ago crosses below MovAvgExponential(“length” = 18) and MACDHistogramCrossover(“fast length” = 18, “slow length” = 50, “crossing type” = “Negative to Positive”) is true within 15 bars and MACDHistogramCrossover(“fast length” = 50, “slow length” = 100, “crossing type” = “Negative to Positive”) is true within 15 bars and StochasticFull(“over bought” = 70, “over sold” = 30, “k period” = 5, “d period” = 3, “average type” = “EXPONENTIAL”).”FullK” is less than or equal to 30 within 3 bars and open from 1 bars ago is greater than MovAvgExponential(“length” = 18) and close from 1 bars ago is greater than MovAvgExponential(“length” = 18) and close is greater than high from 1 bars ago and close is greater than open

    50 Bounce Long

    MovAvgExponential(“length” = 18) is greater than MovAvgExponential(“length” = 50) and MovAvgExponential(“length” = 50) is greater than MovAvgExponential(“length” = 100) and MovAvgExponential(“length” = 100) is greater than MovAvgExponential(“length” = 200) and low from 1 bars ago crosses below MovAvgExponential(“length” = 50) and StochasticFull(“over bought” = 70, “over sold” = 30, “k period” = 5, “d period” = 3, “average type” = “EXPONENTIAL”).”FullK” is less than or equal to 30 within 3 bars and open from 1 bars ago is greater than MovAvgExponential(“length” = 50) and close from 1 bars ago is greater than MovAvgExponential(“length” = 50) and close is greater than high from 1 bars ago and close is greater than open

    100 Bounce Long

    MovAvgExponential(“length” = 18) is greater than MovAvgExponential(“length” = 50) and MovAvgExponential(“length” = 50) is greater than MovAvgExponential(“length” = 100) and MovAvgExponential(“length” = 100) is greater than MovAvgExponential(“length” = 200) and low from 1 bars ago crosses below MovAvgExponential(“length” = 100) and StochasticFull(“over bought” = 70, “over sold” = 30, “k period” = 5, “d period” = 3, “average type” = “EXPONENTIAL”).”FullK” is less than or equal to 30 within 3 bars and open from 1 bars ago is greater than MovAvgExponential(“length” = 100) and close from 1 bars ago is greater than MovAvgExponential(“length” = 100) and close is greater than high from 1 bars ago and close is greater than open

    Thinkorswim-script-for-Bounce-System.txt
    #134644 quote
    robertogozzi
    Moderator
    Master

    Qui ne puoi trovare alcuni, poi mi sono fermato a causa del tempo:

    https://www.prorealcode.com/topic/conversione-screener-catch-trend-da-piattaforma-thinkorswim/

    Per favore scrivi in italiano nel forum italiano. Grazie 🙂

    Alessandro99 thanked this post
    #134653 quote
    Alessandro99
    Participant
    New

    Wow fantastico grazie mille! Non avevo trovato quella discussione con la barra di ricerca.

    Nel caso avessi qualche dubbio ti riscrivo qui nella discussione, grazie ancora!

    #135212 quote
    Alessandro99
    Participant
    New

    Qui ne puoi trovare alcuni, poi mi sono fermato a causa del tempo:

    https://www.prorealcode.com/topic/conversione-screener-catch-trend-da-piattaforma-thinkorswim/

    Per favore scrivi in italiano nel forum italiano. Grazie 🙂

    Ciao Roberto scusa se ti disturbo di nuovo, ho provato a creare uno screener mio su proreal time che seguisse le direttive del codice originale per think or swim, ecco il risultato:

    indicator1 = ExponentialAverage[18](close)
    indicator2 = ExponentialAverage[50](close)
    c1 = (indicator1 > indicator2)
    
    indicator3 = ExponentialAverage[50](close)
    indicator4 = ExponentialAverage[100](close)
    c2 = (indicator3 > indicator4)
    
    indicator5 = ExponentialAverage[100](close)
    indicator6 = ExponentialAverage[200](close)
    c3 = (indicator5 > indicator6)
    
    indicator7 = ExponentialAverage[50](close)
    c4 = (DLow(0) < indicator7)
    
    indicator8 = ExponentialAverage[50](close)
    c5 = (DOpen(0) > indicator8)
    
    indicator9 = ExponentialAverage[50](close)
    c6 = (DClose(0) > indicator9)
    
    indicator10 = ExponentialAverage[3](Stochastic[5,1](close))
    indicator11 = ExponentialAverage[3](ExponentialAverage[3](Stochastic[5,1](close)))
    c7 = (indicator10 CROSSES OVER indicator11)
    
    indicator12 = MACDline[50,100,9](close)
    indicator13 = MACDSignal[50,100,9](close)
    c8 = (indicator12 > indicator13)
    
    SCREENER[c1 AND c2 AND c3 AND c4 AND c5 AND c6 AND c7 AND c8] ((close/DClose(1)-1)*100 AS "% Var ieri")

     

     

    Sapresti dirmi perché viene così diverso da quello da te proposto nell’altra discussione per la 50 bounce long strategy ? Sembrano due codici diversi a un profano come me ma non ne comprendo il motivo. Ecco il codice da te redatto così da poterli visualizzare contemporaneamente:

    ONCE MaxBars   = 3
    ONCE LongCondX = 0
    ONCE Bars1     = 0
    ONCE Count     = 0
    //
    ONCE AvgType   = 1                    //1=ema
    Ema18   = average[18,AvgType](close)  //18
    Ema50   = average[50,AvgType](close)  //50
    Ema100  = average[100,AvgType](close) //100
    Ema200  = average[200,AvgType](close) //200
    //
    StocOB  = 70                          //70 - 30
    StocOS  = 100 - StocOB
    StocK   = Stochastic[5,1](close)      //5,1,3
    //StocD = Average[3,1](StocK)
    //
    // LONG conditions
    a1      = Ema18    > Ema50
    a2      = ema50    > Ema100
    a3      = Ema100   > Ema200
    a4      = low[1] CROSSES UNDER Ema50
    a5      = open[1]  > Ema50
    a6      = close[1] > Ema50
    a7      = close    > high[1]
    a8      = close    > open
    ax      = a1 AND a2 AND a3 AND a4 AND a5 AND a6 AND a7 AND a8
    a9a    = StocK <= StocOS
    a9b    = StocK > StocOS
    IF LongCondX = 0 THEN
    IF ax > 0 THEN
    LongCondX = 1
    ENDIF
    ENDIF
    IF LongCondX > 0 THEN
    Count = Count + 1
    IF Count > MaxBars THEN
    LongCond  = 0
    LongCondX = 0
    Bars1     = 0
    Count     = 0
    ax        = 0
    ENDIF
    ENDIF
    IF LongCondX > 0 THEN
    IF Bars1 = 0 THEN
    IF Count > MaxBars THEN
    LongCond  = 0
    LongCondX = 0
    Bars1     = 0
    Count     = 0
    ax        = 0
    ELSIF a9a > 0 THEN
    Bars1 = 1
    ENDIF
    ELSIF a9b THEN
    LongCond  = 0
    LongCondX = 0
    Bars1     = 0
    Count     = 0
    ax        = 0
    ENDIF
    ENDIF
    LongCond = Bars1
    SCREENER [LongCond]

     

    Ti lascio anche i rispettivi file in itf allegati. Grazie!

    Il-Mio-ProScreener-Bounce-50-L-scritta-da-Roberto.itf Bounce-strategy-long-50-scritta-da-Alessandro.itf
    #135364 quote
    robertogozzi
    Moderator
    Master

    Ce ne sono diversi:

    1. Io ho un controllo su 3 barre per lo Stocastico (non ricordo bene come sia la regola pubblicata)
    2. alle righe (del tuo esempio) 14, 17 e 20 tu fai riferimento al giorno/barra corrente, mentre io al precedente
    3. tu non hai usato l’incrocio ribassista del minimo (LOW) con la Ema50
    4. tu hai usato l’incrocio rialzista con lo Stocastico, mentre io no
    5. tu hai usato il Macd ad io no.

    Il perché sono diversi devi dirmelo tu. Io ricordo di averlo fatto il più aderente possibile alle spiegazioni (a volte un pò criptiche). Se tu hai voluto aggiungere o togliere qualcosa avrai avuto le tue buone ragioni. Ogni idea è rispettabile, ma tutte sono ugualmente importanti. Può darsi che modificando qualcosa possa migliorare il risultato.

    Da parte mia io lo usai in demo per 2-3 mesi come strategia, poi l’ho tolto e messo tra le cose scartate perché non mi piaceva, magari se avessi avuto voglia di perderci del tempo cambiando qualcosa avrebbe potuto migliorare, ma non m’interessava molto perderci troppo tempo (e non ne avevo, né ne ho ancora, da dedicarci).

    Anch la discussione da cui partì l’iniziativa mi pare si sia bloccata, evidentemente anche gli altri si sono arresi.

    Alessandro99 thanked this post
    #135384 quote
    Alessandro99
    Participant
    New

    Ti ringrazio per la tua risposta così dettagliata!

    In realtà sono sicuro che il tuo codice è migliore semplicemente perché io sono appena entrato in questo campo e sullo scrivere degli script per degli screener non so quasi nulla. Di fatto ho seguito il corso dal quale proviene lo screener (non è trading automatico, i risultati che si hanno vanno poi analizzati ad occhio e guardando altre cose come i candlestick patterns) e ho voluto provare a fare lo screener su proreal time. Di fatto però non riuscivo a capire perché il mio codice fosse così diverso, anche in lunghezza, rispetto al tuo dato che appunto siamo partiti dalla stessa fonte. Ora ho scoperto perché, grazie molte per il tuo tempo!

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

Think or Swim script conversion to ProReal Time


ProScreener: Scansione Mercati & Screener

New Reply
Author
Summary

This topic contains 5 replies,
has 2 voices, and was last updated by Alessandro99
5 years, 9 months ago.

Topic Details
Forum: ProScreener: Scansione Mercati & Screener
Language: Italian
Started: 06/05/2020
Status: Active
Attachments: 3 files
Logo Logo
Loading...