problemi con l'unire due TS in uno solo

Collapse
X
 
  • Ora
  • Show
Clear All
new posts
  • TFiutoT384
    Senior Member
    • Oct 2009
    • 566

    #1

    problemi con l'unire due TS in uno solo

    Pensando che questo post possa essere di aiuto non solo a me, vi espongo il seguente problema:
    unire due o più TS in uno solo.

    Il sistema che voglio fare, derivante dall\'unione di 2 TS, ha i seguenti segnali:
    quando
    1) entrambi i due TS long: Long;
    2) entrambi i due TS short: Short
    3) un TS long e l’altro short; Stop Long o Stop Short (exit trade)

    Il codice dei due sistemi è il seguente:
    Premetto che:
    MOlowmark, Mohighmark sono i margini superiore e inferiore per il Momentum Oscillator inverso
    UOlowMark, UOhighMark sono i margini superiore e inferiore per l’Ultima Oscillator
    (ho preso l’abitudine di inserire un paio di lettere davanti ai parametri da configurare di ogni indicatore per avere sempre presente a quale indicatore appartengono tali parametri).


    codice Ultimate Oscillator

    Buy script
    INPUTS:@cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
    CROSSOVER(A, @UOlowMark)

    Sell script
    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
    CROSSOVER(@UOhighMark, A)

    codice Momentum Oscillator inverso (inverso perché il codice è speculare al Momentum Oscillator che c’è in BT: non è un’errore; sul TS che stò costruendo mi serve così).

    Buy script
    INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101)

    SET A = MomentumOscillator(@price, @MOperiods)
    CROSSOVER(@MOhighMark, A)

    Sell script
    SET A = MomentumOscillator(@price, @MOperiods)
    CROSSOVER(A, @MOlowMark)

    Unione dei due TS: Momentum Oscillator inverso + Ultimate Oscillator

    Buy script
    INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

    SET A = MomentumOscillator(@price, @MOperiods)
    SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
    CROSSOVER(A, @UOlowMark) AND CROSSOVER(@MOhighMark, B)


    Sell script
    SET A = MomentumOscillator(@price, @MOperiods)
    SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
    CROSSOVER(A, @MOlowMark) AND CROSSOVER(@UOhighMark, B)


    Exit Long Script
    SET A = MomentumOscillator(@price, @MOperiods)
    SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
    CROSSOVER(A, @MOlowMark) OR CROSSOVER(@UOhighMark, B)


    Exit Short Script
    SET A = MomentumOscillator(@price, @MOperiods)
    SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
    CROSSOVER(A, @UOlowMark) OR CROSSOVER(@MOhighMark, B)

    Tuttavia il risultato non da quanto voluto.

    Per finire allego tre immagini; mentre le prime due, sono relative ai trade dei due TS effettuati su MSFT (Microsoft, ho preso un titolo a caso) con TF = 2h, a partire dal 25 ottobre h. 16:
    - la prima figura riguarda il TS del Momentum Oscillator Inverso
    - la seconda figura riguarda il TS dell\'Ultimate Oscillator.
    - la terza mostra il calcolo fatto a mano del risultato che dovrei ottenere unendo i due TS.



    Non riesco proprio a capire dove sbaglio.
    File Allegati
    Last edited by TFiutoT384; 28-11-13, 15:55.
  • Apocalips
    Senior Member

    • May 2011
    • 2630

    #2
    Ciao,

    il signal che hai costruito che unisce i 2 sistemi non ho capito se non genera alcun segnale oppure se li genera in maniera errata rispetto a quello che dovrebbe essere a rigor di logica.

    ciao
    ....non si desidera ciò che è facile ottenere (Ovidio)....

    Comment

    • TFiutoT384
      Senior Member
      • Oct 2009
      • 566

      #3
      Originariamente Scritto da Apocalips
      Ciao,

      il signal che hai costruito che unisce i 2 sistemi non ho capito se non genera alcun segnale oppure se li genera in maniera errata rispetto a quello che dovrebbe essere a rigor di logica.

      ciao
      Ciao Apo e grazie per aver risposto.
      Il signal a volte mi genera qualche segnale e altre volte no.
      Altri signal, costruiti unendo 2 signal diversi mi hanno dato risultati diversi da quelli che poi ho ottenuto con calcoli fatti a mano. E non so perché.
      "OR" nell\'Exit long script o nell\'exit short script lo uso per uscire dal trade quando uno dei due signal/TS si inverte e "AND" lo uso per far scattare il segnale quando entrambi i signal/TS si trovano nella stssa dirzione, cioè long o short. Non capisco perché non lavorino come sperato.

      Comment

      • Smash
        Senior Member

        • Feb 2012
        • 351

        #4
        Originariamente Scritto da TFiutoT384
        Pensando che questo post possa essere di aiuto non solo a me, vi espongo il seguente problema:
        unire due o più TS in uno solo.

        Il sistema che voglio fare, derivante dall\'unione di 2 TS, ha i seguenti segnali:
        quando
        1) entrambi i due TS long: Long;
        2) entrambi i due TS short: Short
        3) un TS long e l’altro short; Stop Long o Stop Short (exit trade)

        Il codice dei due sistemi è il seguente:
        Premetto che:
        MOlowmark, Mohighmark sono i margini superiore e inferiore per il Momentum Oscillator inverso
        UOlowMark, UOhighMark sono i margini superiore e inferiore per l’Ultima Oscillator
        (ho preso l’abitudine di inserire un paio di lettere davanti ai parametri da configurare di ogni indicatore per avere sempre presente a quale indicatore appartengono tali parametri).


        codice Ultimate Oscillator

        Buy script
        INPUTS:@cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

        SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
        CROSSOVER(A, @UOlowMark)

        Sell script
        SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
        CROSSOVER(@UOhighMark, A)

        codice Momentum Oscillator inverso (inverso perché il codice è speculare al Momentum Oscillator che c’è in BT: non è un’errore; sul TS che stò costruendo mi serve così).

        Buy script
        INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101)

        SET A = MomentumOscillator(@price, @MOperiods)
        CROSSOVER(@MOhighMark, A)

        Sell script
        SET A = MomentumOscillator(@price, @MOperiods)
        CROSSOVER(A, @MOlowMark)

        Unione dei due TS: Momentum Oscillator inverso + Ultimate Oscillator

        Buy script
        INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

        SET A = MomentumOscillator(@price, @MOperiods)
        SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
        CROSSOVER(A, @UOlowMark) AND CROSSOVER(@MOhighMark, B)


        Sell script
        SET A = MomentumOscillator(@price, @MOperiods)
        SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
        CROSSOVER(A, @MOlowMark) AND CROSSOVER(@UOhighMark, B)


        Exit Long Script
        SET A = MomentumOscillator(@price, @MOperiods)
        SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
        CROSSOVER(A, @MOlowMark) OR CROSSOVER(@UOhighMark, B)


        Exit Short Script
        SET A = MomentumOscillator(@price, @MOperiods)
        SET B = UltimateOscillator(@cycle1, @cycle2, @cycle3)
        CROSSOVER(A, @UOlowMark) OR CROSSOVER(@MOhighMark, B)

        Tuttavia il risultato non da quanto voluto.

        Per finire allego tre immagini; mentre le prime due, sono relative ai trade dei due TS effettuati su MSFT (Microsoft, ho preso un titolo a caso) con TF = 2h, a partire dal 25 ottobre h. 16:
        - la prima figura riguarda il TS del Momentum Oscillator Inverso
        - la seconda figura riguarda il TS dell\'Ultimate Oscillator.
        - la terza mostra il calcolo fatto a mano del risultato che dovrei ottenere unendo i due TS.



        Non riesco proprio a capire dove sbaglio.

        Ciao,
        non so se interpreto male, ma forse il problema sta nel fatto che sia la condizione di buy

        Codice:
        CROSSOVER(A, @UOlowMark) AND CROSSOVER(@MOhighMark, B)
        e sia la condizione di sell

        Codice:
        CROSSOVER(A, @MOlowMark) AND CROSSOVER(@UOhighMark, B)
        così come le hai scritte, si possono verificare solamente se entrambi i crossover si verificano sulla stessa identica barra!
        Mentre per le condizioni di uscita, per le quali hai usato OR, basta che una sola delle 2 si sia verificata.

        Quindi, se non ho frainteso, è sbagliato usare la funzione CROSSOVER !
        Last edited by Smash; 28-11-13, 22:59.

        Comment

        • TFiutoT384
          Senior Member
          • Oct 2009
          • 566

          #5
          Originariamente Scritto da Smash
          Ciao,
          non so se interpreto male, ma forse il problema sta nel fatto che sia la condizione di buy

          Codice:
          CROSSOVER(A, @UOlowMark) AND CROSSOVER(@MOhighMark, B)
          e sia la condizione di sell

          Codice:
          CROSSOVER(A, @MOlowMark) AND CROSSOVER(@UOhighMark, B)
          così come le hai scritte, si possono verificare solamente se entrambi i crossover si verificano sulla stessa identica barra!
          Mentre per le condizioni di uscita, per le quali hai usato OR, basta che una sola delle 2 si sia verificata.

          Quindi, se non ho frainteso, è sbagliato usare la funzione CROSSOVER !
          Ciao. Grazie per la risposta. Pensando a quanto hai scritto, hai ragione sul fatto che "così come le hai scritte, si possono verificare solamente se entrambi i crossover si verificano sulla stessa identica barra!" .
          Tuttavia la funzione CROSSOVER serve.

          Infatti il buy avviene quando:
          1) il Momentum Oscillator (MO) ha incrociato al ribasso il suo margine superiore (MOhighMark) e
          2) l\'Ultimate Oscillator (UO) ha incrociato al rialzo il suo limite inferiore (UOlowMark).

          Questo può avvenire
          a) sia contemporaneamente con 1) e 2) nello stesso momento
          b) sia separatamente ovvero prima avviene la fase 1) e poi avviene la fase 2) o viceversa in modo che si arrivi ad un momento in cui si avverano contemporaneamente 1) e 2).

          Per il buy script quindi si deve mettere a punto ancora il punto b), mentre il punto a) è realizzato con CROSSOVER(A, @UOlowMark) AND CROSSOVER(@MOhighMark, B)

          Il sell avviene quando:
          1) il Momentum Oscillator (MO) ha incrociato al rialzo il suo margine inferiore (MOlowMark) e
          2) l\'Ultimate Oscillator (UO) ha incrociato al ribasso il suo limite superiore (UOhighMark).

          Questo può avvenire
          a) sia contemporaneamente con 1) e 2) nello stesso momento
          b) sia separatamente ovvero prima avviene la fase 1) e poi avviene la fase 2) o viceversa in modo che si arrivi ad un momento in cui si avverano contemporaneamente 1) e 2).

          Per il sell script quindi si deve mettere a punto ancora il punto b), mentre il punto a) è realizzato con CROSSOVER(A, @MOlowMark) AND CROSSOVER(@UOhighMark, B).

          Per cui ora manca lo script per la fase a) del sell script e del buy script. Ma come fa il signal a capire che, ad esempio, l\'UO Ultimate Oscillator (UO) si trova sotto il suo limite superiore (UOhighMark) perchè qualche barra prima l\'ha incrociato al ribasso oppure perché ha incrociato al rialzo il suo limite inferiore (UOLowMark) in modo da distinguere tra un UO che indica long e un UO che indica short?
          Chiedo aiuto anche allo staff di playoptions dato che questo dilemma prima o poi si presenterà anche ad altri utenti
          Last edited by TFiutoT384; 29-11-13, 00:44.

          Comment

          • Smash
            Senior Member

            • Feb 2012
            • 351

            #6
            Originariamente Scritto da TFiutoT384
            ......
            Ma come fa il signal a capire che, ad esempio, l\'UO Ultimate Oscillator (UO) si trova sotto il suo limite superiore (UOhighMark) perchè qualche barra prima l\'ha incrociato al ribasso oppure perché ha incrociato al rialzo il suo limite inferiore (UOLowMark) in modo da distinguere tra un UO che indica long e un UO che indica short?
            Chiedo aiuto anche allo staff di playoptions dato che questo dilemma prima o poi si presenterà anche ad altri utenti
            Potresti provare con qualcosa del genere:

            Codice:
            INPUTS:@cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)
            
            SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
            SET SignalLong = CROSSOVER(A, @UOlowMark)
            SET SignalShort = CROSSOVER(@UOhighMark, A)
            SET Signal = SignalLong - SignalShort
            SET Position = CHANGEIF (Signal <> 0, Signal)
            Il vettore finale "Position" (sempre se non ho compreso male le tue intenzioni, si intende! ) dovrebbe valere sempre +1 quando il sistema indica Long e sempre -1 quando il sistema indica Short. Quindi lo potresti utilizzare per le condizioni di Buy Script e Sell Script.

            Poi potresti fare lo stesso ragionamento anche con l\'altro sistema del Momentum Oscillator, e combinare le condizioni risultanti.
            Last edited by Smash; 29-11-13, 10:33.

            Comment

            • Francario Massimiliano
              Administrator
              • Jul 2008
              • 1033

              #7
              Salve,
              Originariamente Scritto da Smash
              Potresti provare con qualcosa del genere:

              Codice:
              INPUTS:@cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)
              
              SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
              SET SignalLong = CROSSOVER(A, @UOlowMark)
              SET SignalShort = CROSSOVER(@UOhighMark, A)
              SET Signal = SignalLong - SignalShort
              SET Position = CHANGEIF (Signal <> 0; Signal)
              Il vettore finale "Position" (sempre se non ho compreso male le tue intenzioni, si intende! ) dovrebbe valere sempre +1 quando il sistema indica Long e sempre -1 quando il sistema indica Short. Quindi lo potresti utilizzare per le condizioni di Buy Script e Sell Script.

              Poi potresti fare lo stesso ragionamento anche con l\'altro sistema del Momentum Oscillator, e combinare le condizioni risultanti.
              soluzione geniale ! Complimenti !



              C\'è solo un piccolo errore, penso di battitura, nell\'ultima riga, dove al posto della virgola c\'è un punto e virgola.
              L\'ultima riga dovrebbe essere così:

              Codice:
              SET Position = CHANGEIF (Signal <> 0, Signal)

              Max Francario
              Last edited by Francario Massimiliano; 29-11-13, 10:25.
              Manuale di beeTrader
              Manuale di Fiuto Beta

              Comment

              • TFiutoT384
                Senior Member
                • Oct 2009
                • 566

                #8
                Originariamente Scritto da Smash
                Potresti provare con qualcosa del genere:

                Codice:
                INPUTS:@cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)
                
                SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                SET SignalLong = CROSSOVER(A, @UOlowMark)
                SET SignalShort = CROSSOVER(@UOhighMark, A)
                SET Signal = SignalLong - SignalShort
                SET Position = CHANGEIF (Signal <> 0; Signal)
                Il vettore finale "Position" (sempre se non ho compreso male le tue intenzioni, si intende! ) dovrebbe valere sempre +1 quando il sistema indica Long e sempre -1 quando il sistema indica Short. Quindi lo potresti utilizzare per le condizioni di Buy Script e Sell Script.

                Poi potresti fare lo stesso ragionamento anche con l\'altro sistema del Momentum Oscillator, e combinare le condizioni risultanti.
                Grazie per la tua risposta. La posso testare solo oggi pomeriggio perché ora non sono davanti al PC dove gira BT.
                Nel frattempo, visto che ci ho lavorato, voglio postare un\'immagine che riassume il problema. Così se la tua soluzione è corretta, vedendo un\'immagine del quesito, altri possono usufruirne.
                File Allegati

                Comment

                • Smash
                  Senior Member

                  • Feb 2012
                  • 351

                  #9
                  Originariamente Scritto da Francario Massimiliano
                  Salve,


                  soluzione geniale ! Complimenti !



                  C\'è solo un piccolo errore, penso di battitura, nell\'ultima riga, dove al posto della virgola c\'è un punto e virgola.
                  L\'ultima riga dovrebbe essere così:

                  Codice:
                  SET Position = CHANGEIF (Signal <> 0, Signal)

                  Max Francario

                  Grazie Max !

                  (ho corretto anche l\'errore !)

                  Comment

                  • TFiutoT384
                    Senior Member
                    • Oct 2009
                    • 566

                    #10
                    Basandomi sul listato "approvato" ho provato a costruire due script, signal 1 e signal 2, ma, pur dando risultati diversi, sono ancora diversi dal risultato che vorrei ottenere. Il non essere un programmatore comporta inevitabilmente degli errori.
                    Dove stà il mio errore?

                    SIGNAL 1


                    BUY SCRIPT

                    INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    SET SignalLongA = CROSSOVER(A, @UOlowMark)
                    SET SignalShortA = CROSSOVER(@UOhighMark, A)
                    SET SignalA = SignalLongA - SignalShortA
                    SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                    SET SignalLongB = CROSSOVER(@MOhighMark, B)
                    SET SignalShortB = CROSSOVER(B, @MOlowMark)
                    SET SignalB = SignalLongB - SignalShortB
                    SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                    SignalA > 0 AND SignalB >0


                    SELL SCRIPT


                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    SET SignalLongA = CROSSOVER(A, @UOlowMark)
                    SET SignalShortA = CROSSOVER(@UOhighMark, A)
                    SET SignalA = SignalLongA - SignalShortA
                    SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                    SET SignalLongB = CROSSOVER(@MOhighMark, B)
                    SET SignalShortB = CROSSOVER(B, @MOlowMark)
                    SET SignalB = SignalLongB - SignalShortB
                    SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                    SignalA < 0 AND SignalB <0


                    EXIT LONG SCRIPT


                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    CROSSOVER(B, @MOlowMark) OR CROSSOVER(@UOhighMark, A)


                    EXIT SHORT SCRIPT

                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    CROSSOVER(B, @UOlowMark) OR CROSSOVER(@MOhighMark, A)



                    SIGNAL 2


                    BUY SCRIPT
                    INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    SET SignalLongA = CROSSOVER(A, @UOlowMark)
                    SET SignalShortA = CROSSOVER(@UOhighMark, A)
                    SET SignalA = SignalLongA - SignalShortA
                    SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                    SET SignalLongB = CROSSOVER(@MOhighMark, B)
                    SET SignalShortB = CROSSOVER(B, @MOlowMark)
                    SET SignalB = SignalLongB - SignalShortB
                    SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                    PositionA > 0 AND PositionB >0


                    SELL SCRIPT

                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    SET SignalLongA = CROSSOVER(A, @UOlowMark)
                    SET SignalShortA = CROSSOVER(@UOhighMark, A)
                    SET SignalA = SignalLongA - SignalShortA
                    SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                    SET SignalLongB = CROSSOVER(@MOhighMark, B)
                    SET SignalShortB = CROSSOVER(B, @MOlowMark)
                    SET SignalB = SignalLongB - SignalShortB
                    SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                    PositionA < 0 AND PositionB <0


                    EXIT LONG SCRIPT

                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    CROSSOVER(B, @MOlowMark) OR CROSSOVER(@UOhighMark, A)


                    EXIT SHORT SCRIPT

                    SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                    SET B = MomentumOscillator(@price, @MOperiods)
                    CROSSOVER(B, @UOlowMark) OR CROSSOVER(@MOhighMark, A)
                    Last edited by TFiutoT384; 29-11-13, 18:56.

                    Comment

                    • Smash
                      Senior Member

                      • Feb 2012
                      • 351

                      #11
                      Originariamente Scritto da TFiutoT384
                      Basandomi sul listato "approvato" ho provato a costruire due script, signal 1 e signal 2, ma, pur dando risultati diversi, sono ancora diversi dal risultato che vorrei ottenere. Il non essere un programmatore comporta inevitabilmente degli errori.
                      Dove stà il mio errore?

                      SIGNAL 1


                      BUY SCRIPT

                      INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      SET SignalLongA = CROSSOVER(A, @UOlowMark)
                      SET SignalShortA = CROSSOVER(@UOhighMark, A)
                      SET SignalA = SignalLongA - SignalShortA
                      SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                      SET SignalLongB = CROSSOVER(@MOhighMark, B)
                      SET SignalShortB = CROSSOVER(B, @MOlowMark)
                      SET SignalB = SignalLongB - SignalShortB
                      SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                      SignalA > 0 AND SignalB >0


                      SELL SCRIPT


                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      SET SignalLongA = CROSSOVER(A, @UOlowMark)
                      SET SignalShortA = CROSSOVER(@UOhighMark, A)
                      SET SignalA = SignalLongA - SignalShortA
                      SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                      SET SignalLongB = CROSSOVER(@MOhighMark, B)
                      SET SignalShortB = CROSSOVER(B, @MOlowMark)
                      SET SignalB = SignalLongB - SignalShortB
                      SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                      SignalA < 0 AND SignalB <0


                      EXIT LONG SCRIPT


                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      CROSSOVER(B, @MOlowMark) OR CROSSOVER(@UOhighMark, A)


                      EXIT SHORT SCRIPT

                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      CROSSOVER(B, @UOlowMark) OR CROSSOVER(@MOhighMark, A)



                      SIGNAL 2


                      BUY SCRIPT
                      INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      SET SignalLongA = CROSSOVER(A, @UOlowMark)
                      SET SignalShortA = CROSSOVER(@UOhighMark, A)
                      SET SignalA = SignalLongA - SignalShortA
                      SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                      SET SignalLongB = CROSSOVER(@MOhighMark, B)
                      SET SignalShortB = CROSSOVER(B, @MOlowMark)
                      SET SignalB = SignalLongB - SignalShortB
                      SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                      PositionA > 0 AND PositionB >0


                      SELL SCRIPT

                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      SET SignalLongA = CROSSOVER(A, @UOlowMark)
                      SET SignalShortA = CROSSOVER(@UOhighMark, A)
                      SET SignalA = SignalLongA - SignalShortA
                      SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                      SET SignalLongB = CROSSOVER(@MOhighMark, B)
                      SET SignalShortB = CROSSOVER(B, @MOlowMark)
                      SET SignalB = SignalLongB - SignalShortB
                      SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                      PositionA < 0 AND PositionB <0


                      EXIT LONG SCRIPT

                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      CROSSOVER(B, @MOlowMark) OR CROSSOVER(@UOhighMark, A)


                      EXIT SHORT SCRIPT

                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      CROSSOVER(B, @UOlowMark) OR CROSSOVER(@MOhighMark, A)

                      Ciao,
                      il primo è sicuramente sbagliato;
                      Il secondo invece è corretto, ma c\'è soltanto un errore nell\'EXIT SHORT SCRIPT dove gli argomenti dei 2 CROSSOVER mi sembrano invertiti.

                      EXIT SHORT SCRIPT:
                      Codice:
                      SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                      SET B = MomentumOscillator(@price, @MOperiods)
                      CROSSOVER(@MOhighMark, B) OR CROSSOVER(A, @UOlowMark)
                      Last edited by Smash; 30-11-13, 11:43.

                      Comment

                      • TFiutoT384
                        Senior Member
                        • Oct 2009
                        • 566

                        #12
                        Originariamente Scritto da Smash
                        Ciao,
                        il primo è sicuramente sbagliato;
                        Il secondo invece è corretto, ma c\'è soltanto un errore nell\'EXIT SHORT SCRIPT dove gli argomenti dei 2 CROSSOVER mi sembrano invertiti.

                        EXIT SHORT SCRIPT:
                        Codice:
                        SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                        SET B = MomentumOscillator(@price, @MOperiods)
                        CROSSOVER(@MOhighMark, B) OR CROSSOVER(A, @UOlowMark)
                        Lo provero appena funziona la quick trade. Grazie

                        Comment

                        • TFiutoT384
                          Senior Member
                          • Oct 2009
                          • 566

                          #13
                          FUNZIONA!

                          Lo riporto per intero.

                          BUY SCRIPT
                          INPUTS:@price(CLOSE), @MOperiods(12), @MOlowMark(99.8), @MOhighMark(101), @cycle1(7), @cycle2(6), @cycle3(10), @UOlowMark(45), @UOhighMark(65)

                          SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                          SET B = MomentumOscillator(@price, @MOperiods)
                          SET SignalLongA = CROSSOVER(A, @UOlowMark)
                          SET SignalShortA = CROSSOVER(@UOhighMark, A)
                          SET SignalA = SignalLongA - SignalShortA
                          SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                          SET SignalLongB = CROSSOVER(@MOhighMark, B)
                          SET SignalShortB = CROSSOVER(B, @MOlowMark)
                          SET SignalB = SignalLongB - SignalShortB
                          SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                          PositionA > 0 AND PositionB >0


                          SELL SCRIPT
                          SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                          SET B = MomentumOscillator(@price, @MOperiods)
                          SET SignalLongA = CROSSOVER(A, @UOlowMark)
                          SET SignalShortA = CROSSOVER(@UOhighMark, A)
                          SET SignalA = SignalLongA - SignalShortA
                          SET PositionA = CHANGEIF (SignalA <> 0, SignalA)
                          SET SignalLongB = CROSSOVER(@MOhighMark, B)
                          SET SignalShortB = CROSSOVER(B, @MOlowMark)
                          SET SignalB = SignalLongB - SignalShortB
                          SET PositionB = CHANGEIF (SignalB <> 0, SignalB)

                          PositionA < 0 AND PositionB <0


                          EXIT LONG SCRIPT
                          SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                          SET B = MomentumOscillator(@price, @MOperiods)
                          CROSSOVER(B, @MOlowMark) OR CROSSOVER(@UOhighMark, A)

                          EXIT SHORT SCRIPT
                          SET A = UltimateOscillator(@cycle1, @cycle2, @cycle3)
                          SET B = MomentumOscillator(@price, @MOperiods)
                          CROSSOVER(@MOhighMark, B) OR CROSSOVER(A, @UOlowMark)

                          Comment

                          Working...