Announcement

Collapse
No announcement yet.

Price Flip Che Non Funziona...ora funziona

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Price Flip Che Non Funziona...ora funziona

    Alex ciao

    ho fatto con il wizard il mio Price flip.Il tutto non funziona.... dovrebbe colorare la barra di maroon e alla prima andare long alla seconda e colorare la barra di Gold e andare short alla seconda (ps. come mai non c'è open, mid, hlc/3 etc...?)
    invece disegna la porcheria ceh vedi in accluso . puoi dirmi cosa non va? e perche le barre dibventano bianche?



    Wizard_Description
    //
    // This formula was generated by the Alert Wizard
    //
    //}}EFSWizard_Description 7532


    //{{EFSWizard_Declarations

    var vLastAlert = -1;

    //}}EFSWizard_Declarations 2482


    function preMain() {
    /**
    * This function is called only once, before any of the bars are loaded.
    * Place any study or EFS configuration commands here.
    */
    //{{EFSWizard_PreMain
    setPriceStudy(true);
    setStudyTitle("Price Flip");
    //}}EFSWizard_PreMain 6513

    }

    function main() {
    /**
    * The main() function is called once per bar on all previous bars, once per
    * each incoming completed bar, and if you don't have 'setComputeOnClose(true)'
    * in your preMain(), it is also called on every tick.
    */

    //{{EFSWizard_Expressions
    //{{EFSWizard_Expression_1
    if (
    close() >= close(-4) &&
    close() <= close(-4)
    ) onAction1();
    //}}EFSWizard_Expression_1 12072

    //}}EFSWizard_Expressions 21693


    //{{EFSWizard_Return
    return null;
    //}}EFSWizard_Return 2256

    }

    function postMain() {
    /**
    * The postMain() function is called only once, when the EFS is no longer used for
    * the current symbol (ie, symbol change, chart closing, or application shutdown).
    */
    }

    //{{EFSWizard_Actions
    //{{EFSWizard_Action_1
    function onAction1() {
    setPriceBarColor(Color.RGB(155,0,0));
    setPriceBarColor(Color.RGB(128,128,0));
    if (vLastAlert != 1) Strategy.doLong("", Strategy.CLOSE, Strategy.NEXTBAR, Strategy.DEFAULT, 0);
    if (vLastAlert != 1) Strategy.doShort("", Strategy.CLOSE, Strategy.NEXTBAR, Strategy.DEFAULT, 0);
    vLastAlert = 1;
    }
    //}}EFSWizard_Action_1 40352

    //}}EFSWizard_Actions 53244
    Attached Files
    Last edited by ACM; 05-10-2003, 08:49 AM.
    Fabrizio L. Jorio Fili

  • #2
    Fabrizio
    Nel frattempo che scarico e mi guardo cosa tu abbia fatto nella formula ti passo un suggerimento su come postare il listato per le formule.
    Quando vuoi postare il listato usa il prefisso [p h p] (senza spazi fra le lettere che io inserisco qui soltanto per non creare io stesso un listato) e poi dopo l'ultimo rigo del listato inserisci il suffisso di chiusura [/p h p] (anche qui sempre senza spazi).
    In sostanza e' la stessa cosa che con le immagini soltanto che con php dai istruzioni che quanto segue e' un listato di una formula. Questo fa si che la formula appaia con la formattazione corretta anziche allineata a sinistra come nel tuo esempio.
    Allo scopo vedi l'esempio che segue che e' il tuo Long Tail Reverse. Nota che appare qui nel messaggio nello stesso modo in cui ti appare quando apri la formula in Editor.
    Alex

    PHP Code:
    /********************************
    Alexis C. Montenegro ® May 2003  
    *********************************/


    var vDonchian = new DonchianStudy(30);
    var 
    vLastAlert = -1;

    function 
    preMain() {
     
        
    setPriceStudy(true);
        
    setStudyTitle("Long Tail Rev");
        
    setShowCursorLabel(false);
        
    setComputeOnClose();
    }

    function 
    main() {
     
            if (
                
    open() >= close() &&
                
    high()-open() > (close()-low())*&&
                
    high()-open() > (open()-close())*2
            
    onAction1()
       
            else if (
                
    open() <= close() &&
                
    high()-close() > (open()-low())*&&
                
    high()-close() > (close()-open())*&&
                
    high() == vDonchian.getValue(DonchianStudy.UPPER)
            ) 
    onAction2();

        return 
    null;
    }


        function 
    onAction1() {
            
    drawShapeRelative(0high(), Shape.SQUARE""Color.redShape.BOTTOM|Shape.LEFT|Shape.ONTOP);
            
    vLastAlert 1;
        } 
        function 
    onAction2() {
            
    drawShapeRelative(0high(), Shape.SQUARE""Color.redShape.BOTTOM|Shape.LEFT|Shape.ONTOP);
            
    vLastAlert 2;
        } 
    Last edited by ACM; 05-10-2003, 09:21 AM.

    Comment


    • #3
      Fabrizio

      Credo che questa sia una buona occasione per avere uno scambio che potra servire poi ad altri per creare formule per cui se non ti dispiace preferirei proseguire passo passo.
      Ecco come appare la tua formula in Formula Wizard



      In primis nota che ragruppi due condizioni diverse e contrastanti

      SE il close(attuale) e' maggiore o uguale al close(4 barre fa) E
      SE il close(attuale) e' inferiore o uguale al close(4barre fa)

      Dopodiche saltando per un attimo la parte sul colorare le barre procedi a fornire le operazioni che verranno effettuate al verificarsi delle condizioni
      E qui dai due ordini da eseguire allo stesso momento (nuovamente contrastanti pero) una volta che la condizione sia verificata
      Infatti tu dai un ordine di andare Long e Short sul medesimo segnale cosa che non e' possibile.
      Inoltre gli dici di farlo soltanto la prima volta in cui queste condizioni si verificano e poi mai piu.

      Ergo se posso dare un suggerimento prima costruisci in lingua la formula specificando separatamente una ad una le condizioni e le corrispondenti azioni. Nel fare questo devi anche specificare quando vuoi che siano eseguiti gli ordini.

      Attendo tua risposta

      Alex
      Last edited by ACM; 05-10-2003, 04:16 PM.

      Comment


      • #4
        Alex

        La formla è semplicissima quando la sviluppo in linguaggio CQG
        Price Flip :
        Tutte le volte che:
        C>=(C-4) allora paint la barra di maroon [condizione 1]
        C<=(C-4) allora paint la barra di Gold [condizione 2]
        Strategy ( o custom study in CQG)
        Se [condizione 1] succede alla prima barra : GO LONG
        Se[condiziopne 2] succede alla prima barra GO SHORT
        questo in CQG è leggeremente piu' difficile perchè devo utilizzare bar since oppure Count bar o altra funzione. Il tutto per BT il segnale e vedere l'efficacia di questa semplicissima regoletta che io uso costantemente quale mio personale XTL Demarkiano.

        dalla tua spiegazione è evidente che nella mia sintassi di wizard ho dato istruzioni contestuali sia nelle condizioni sia nella strategia.
        Allora come dovrrei fare per separare nel Wizard i due momenti oppure come unire due condizioni che normalmente unisco con gli operatori logici "AND" "OR" "IF" "WHEN" "XABOVE" "XBELOW" "TURNSUP" "TURNSDWN" ?(cmq non è questo il caso)
        devo separare le istuzioni in due Set ? ovvero devo usare due efs differenti e combinarli?
        Grazie
        PS. Venerdi' abbiamo aspettato....ma oggi è come raccogliere i verdoni da 50 per terra!!!
        Last edited by fabrizio; 05-12-2003, 04:04 AM.
        Fabrizio L. Jorio Fili

        Comment


        • #5
          Fabrizio

          In Formula Wizard tutte le condizioni all'interno di un stesso Set (ad es Set1) sono concatenate quindi AND, mentre I Set rappresentano ELSE IF
          Quindi
          IF (Set1)
          condizione A AND condizione B
          THEN
          Do this every time (se vuoi vedere una azione eseguita su tutte le barre con quella conditio) oppure
          THEN
          Do this the first time (se vuoi vedere soltanto una azione eseguita soltanto sulla prima barra che corrisponde alla conditio)
          ELSE IF (Set2)
          THEN
          come sopra

          Detto questo devo necessariamente ritornare su di una cosa che ho detto un po di tempo fa e cioe' che questa e' la prima iterazione di Formula Wizard e che quindi soffre di alcune limitazioni.
          Una di queste e' che quando pittura le barre omette di inserire alcuni comandi necessari. Una volta capito come funziona diventa facile aggiungerli in Editor.
          Nella fattispecie mi riferisco alla tua domanda sulle barre bianche.
          I comandi che mancano sono due e vanno inseriti in preMain() e sono:

          setDefaultPriceBarColor(Color.black);
          setColorPriceBars(true)

          Quello che succede nel tuo caso con le barre bianche e' che trovata una condizione pittura la prima barra del colore appropriato dopodiche non avendo un default non sa come pitturare le altre fino a che una seconda condizione non si verifica ergo usa il primo nelle lista dei colori e cioe' il white.
          Se tu invece proponi il colore di default (SetDefaultPriceBarColor() allora sa come dipingere le barre successive alla condizione.

          Fammi sapere cosa ne viene fuori ora.

          Alex

          PS. S'era detto che 35.50 rappresentava lo stop no? Ancora valido.
          Last edited by ACM; 05-12-2003, 05:14 AM.

          Comment


          • #6
            Alex

            Charissimo Grazie

            Una richiesta fors efutile: su elite trader c'è uno spell checker che mi eviterebbe di scrivere delle castronerie per la velocità: so che è priorità 81 ma potrebbe essere implementato anche qui.....

            P.S. 2 minuti al via .....e poi son fochi davvero!
            Fabrizio L. Jorio Fili

            Comment


            • #7
              Fabrizio

              Posta la formula una volta che tu l'abbia completata cosi possono provarla anche altri - e vedere come e' stata costruita tra l'altro.

              Quanto allo spell checker non sarebbe male averne uno e passero la richiesta agli amministratori del sito. Non so pero se possa essere adattato per lingue al di fuori dell'inglese.

              Alex

              Comment


              • #8
                PRICE FLIP FUNZIONANTE

                Dopo aver raccolto stamattina un paio di K di $ e avergleli ridati tutti piu' altri nel pomeriggio per "infatuazione -da -short - anche-se- ha -rotto-il-935.75-" ho messo mano alla formuletta che grazie alle CHIARISSIME spiegazioni di Mr. Montenegro ho realizzato .

                Il PRICE Flip prevede che ci sia un REVERSE quando :
                La barra attuale chiude minore o maggiore della chiisura di 4 Barre precedenti.
                Pertanto la Formula come già esposto nelò post aprecedente è semplicemente:
                CL ora >= di CL (-4)
                CL ora<= di CL(-4)
                dove il (-4) indica "l'OFFSET" ossia il decalage negativo dunque INDIETRO nel tempo della barra. Un (4) sarebbe offset positivo quindi AVANTI nel TEMPO di 4 barre( attenzione perchè questa è un a drammatica pitfall nei TS ossia dare delle condizioni che significano "prevedere il futuro".....

                Il price Flip3.efs colorera' dunque le barre di reversal long in maroon e quelle di reversal (o trend) short di Kaki
                Inoltre dara' un segnale al sistema di andare Lungo o corto al presentarsi delle rispettive Prime barre dei rispettivi colori.

                Comunque qui dui seguito il listato

                PHP Code:
                //{{EFSWizard_Description
                //
                //    This formula was generated by the Alert Wizard
                //
                //}}EFSWizard_Description 7532


                //{{EFSWizard_Declarations

                var vLastAlert = -1;

                //}}EFSWizard_Declarations 2482


                function preMain() {
                   
                /**
                    *  This function is called only once, before any of the bars are loaded.
                    *  Place any study or EFS configuration commands here.
                    */
                //{{EFSWizard_PreMain
                    
                setPriceStudy(true);
                    
                setStudyTitle("PRICE FLIP");
                    
                setCursorLabelName("Long"0);
                    
                setCursorLabelName("Short"1);
                    
                setDefaultBarStyle(PS_SOLID0);
                    
                setDefaultBarStyle(PS_SOLID1);
                    
                setDefaultBarFgColor(Color.maroon0);
                    
                setDefaultBarFgColor(Color.khaki1);
                    
                setDefaultBarThickness(10);
                    
                setDefaultBarThickness(11);
                    
                setPlotType(PLOTTYPE_LINE0);
                    
                setPlotType(PLOTTYPE_LINE1);
                //}}EFSWizard_PreMain 51990

                }

                function 
                main() {
                   
                /**
                    *  The main() function is called once per bar on all previous bars, once per
                    *  each incoming completed bar, and if you don't have 'setComputeOnClose(true)'
                    *  in your preMain(), it is also called on every tick.
                    */

                //{{EFSWizard_Expressions
                    //{{EFSWizard_Expression_1
                        
                if (
                            
                close() >= close(-4)
                        ) 
                onAction1()
                    
                //}}EFSWizard_Expression_1 6343
                    
                    //{{EFSWizard_Expression_2
                        
                else if (
                            
                close() <= close(-4)
                        ) 
                onAction2();
                    
                //}}EFSWizard_Expression_2 8432
                    
                //}}EFSWizard_Expressions 36463


                //{{EFSWizard_Return
                    
                return new Array(
                        
                null,
                        
                null
                    
                );
                //}}EFSWizard_Return 6563

                }

                function 
                postMain() {
                   
                /**
                    *  The postMain() function is called only once, when the EFS is no longer used for
                    *  the current symbol (ie, symbol change, chart closing, or application shutdown).
                    */
                }

                //{{EFSWizard_Actions
                    //{{EFSWizard_Action_1
                    
                function onAction1() {
                        if (
                vLastAlert != 1Strategy.doLong(""Strategy.CLOSEStrategy.THISBARStrategy.DEFAULT, 0);
                        
                setPriceBarColor(Color.RGB(128,0,0));
                        
                vLastAlert 1;
                    }
                    
                //}}EFSWizard_Action_1 23480
                    
                    //{{EFSWizard_Action_2
                    
                function onAction2() {
                        
                setPriceBarColor(Color.RGB(128,128,0));
                        if (
                vLastAlert != 2Strategy.doShort(""Strategy.CLOSEStrategy.THISBARStrategy.DEFAULT, 0);
                        
                vLastAlert 2;
                    }
                    
                //}}EFSWizard_Action_2 23864
                    
                //}}EFSWizard_Actions 66042 
                Attached Files
                Last edited by ACM; 05-12-2003, 10:21 AM.
                Fabrizio L. Jorio Fili

                Comment


                • #9
                  Riposto il grafo che non si è visto

                  Fabrizio L. Jorio Fili

                  Comment


                  • #10
                    Fabrizio

                    In primis complimenti per la formula.

                    Deinde quando posti il listato devi copiare la formula da Editor e poi incollarla nel messaggio racchiusa da php e /php (qui senza quadre).

                    Vedo che hai eletto di dipingere tutte le barre che riflettono le condizioni.
                    Vedo anche che hai giustamente separato la colorazione delle barre dagli ordini che infatti vanno eseguiti soltanto alla prima barra.

                    Una cosa interessante da fare in backtest sarebbe di vedere se valga metter l'ordine di Buy/Sell non al close della barra che fornisce il segnale ma al breakout del high/low di quella barra.

                    Alex
                    Last edited by ACM; 05-12-2003, 10:37 AM.

                    Comment


                    • #11
                      Alex
                      grazie per il complimento scusa per il listato ma non ricordavo esattamente la procedura e ho seguito la strada piu' rapida.

                      Il tuo suggerimento è perfetto: come pero' indicare in Wizard il B.O ? dovrei scriverlo in javascript e il mio studio del tomo è ancora alle basi.

                      Ciao

                      Ps . ancora una cosa. Cosa ne pensi.- se la conosci- di Xpresstrade solo per il FOREX? propongonol eva dal 50:1 a 100:1 e "0" commisioni sulle operazioni: loro trader sul floor riescono a piazzare proposte bid/ask a d altri con un miglior margine per loro....un po' fishy no?
                      Last edited by fabrizio; 05-12-2003, 11:43 AM.
                      Fabrizio L. Jorio Fili

                      Comment


                      • #12
                        Fabrizio
                        Come sempre preferisco andare avanti un passo alla volta cosi da vedere che reazioni si hanno ogni volta che si modifica il listato.
                        Eccoti in allegato la tua stessa formula con aggiunta la logica per l'entrata in breakout/breakdown.
                        Avendo pero fatto queste aggiunte appare ora un errore nelle esecuzioni dei trades dovuto alla nuova logica che pure non e' sbagliata di per se.
                        Come indicazione ti suggerirei di fare un backtest usando il daily per ES M3 e capire perche non c'e' un Long al 4/30 (anche se il colore delle barre lo indicherebbe).
                        Alex

                        PS. Commento stilistico - Capisco ed apprezzo che maroon e kaki e' una combinazione di colori oltremodo elegante, ma non e' che si potrebbe passare a piu mondani e garruli rosso e blu che io qui sto diventando matto a capire quale e' il long e quale il short? <G>
                        Attached Files

                        Comment


                        • #13
                          Yes Sir Yes ( Fort Bragg non è lontano da te )

                          Alex
                          cambio i colori ( uso quelli perche' in CQG ho altri segnali sul verde e il rosso. All'inizio avevo sticker sullo schermo per ricordare il long e lo short!

                          Ok , faccio e vado in BT.
                          pero': usando il mio solito TF per BT: 15 Min, ES#F mi da' risultati strani. La mia assumption per la exit è che sia un SAR. ma lui lo sa?

                          PS. Pls, puoi cambiare il titolo del thread con......"Che funziona" ?Grazie Mille!
                          Last edited by fabrizio; 05-14-2003, 01:29 AM.
                          Fabrizio L. Jorio Fili

                          Comment


                          • #14
                            Fabrizio

                            Si, la formula lo sa che e' un SAR pero una volta cambiato il metodo di entrata (ora in breakout/breakdown) bisogna anche accertarsi che l'ordine venga eseguito.
                            Ecco di seguito il Set1 delle condizioni come esempio



                            Se fai il back test con il daily come da me suggerito e vai a vedere la barra del 4/30 che pure segnala il Long come colore vedrai che il trade non appare nel report del backtest.
                            Il perche e' dovuto al fatto che la barra successiva non prende lo stop messo nelle condizioni. Siccome nelle condizioni le istruzioni sono di eseguire il trade soltanto la PRIMA volta, se la condizione non si verifica all prima barra dopo il segnale l'ordine non viene piu emesso.
                            Ergo mettendo uno stop ora bisogna assicurarsi che l'ordine venga eseguito TUTTE le volte in cui la condizione esiste.
                            La linea che si trova ora in This will happen only the first time va ora spostata a This will happen every time.

                            Una volta che faremo questo vedrai che apparira un nuovo problema all'orizzonte.

                            Alex

                            Comment


                            • #15
                              Fabrizio
                              Mi sono dimenticato di aggiungere che avevo fatto anche un altro cambio alla tua formula originale.
                              Apri entrambe le versioni usando Formula Wizard. Dopodiche clicca il tasto Edit in alto nella sezione Formula Configuration e osserva le differenze nella finestra che si aprira.
                              Nella tua tu davi le istruzioni per plottare (Return) due linee. In realta siccome non hai nulla da plottare (tipo medie mobili ecc) non e' necessario inserire alcunche'.
                              Alex

                              Comment

                              Working...
                              X