Announcement

Collapse
No announcement yet.

FVE_Katsanos wedded to Jurik MA

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • FVE_Katsanos wedded to Jurik MA

    I might have posted this previously to the wrong area and got no response, so I thought I'd try here as well.

    I wanted to try out the FVE_Katsanos (finite volume elements indicator from the file area) indicator smoothed by the Jurik MA. I have spent quite a few hours on previous .efs attempts with not much to show. :-(

    If anyone could script this experiment up I would be most appreciated. I have a hunch it might be an interesting and useful .efs study. Adjustable length via edit studies would be icing on the cake!

    Thanks for any help...Neil
    Attached Files

  • #2
    Hello Neil,

    I think you were in the right place originally. We're not able to pass a custom price source or external EFS to the Jurik MA study. Mark Jurik would have to do some custom programming for this since their JMA study is proprietary.
    Jason K.
    Project Manager
    eSignal - an Interactive Data company

    EFS KnowledgeBase
    JavaScript for EFS Video Series
    EFS Beginner Tutorial Series
    EFS Glossary
    Custom EFS Development Policy

    New User Orientation

    Comment


    • #3
      Ah....bummer. Thanks for the reply though.

      I thought it showed promise, as it seemed to show divergences well toward the end of a move. I thought it might be a nice trading indicator along with the Jurik RSX and JMA that I use daily.

      Comment


      • #4
        Still wanting to pursue this indicator I tried out the T3 ma, the simple ma, the "buffed up ma", and a couple of others.

        Unfortunately they are all very sad compared to the Jurik JMA. I guess this project will await until another day....

        Comment


        • #5
          skylor,

          You could always run the data through the JMA prior to feeding it to the FVE. If I recall the indicator correctly, it uses Volume and Price, both of which can be ran through the Jurik MA. Jurik calls this using JMA as a Price Proxy.

          Comment


          • #6
            Originally posted by whatever
            skylor,

            You could always run the data through the JMA prior to feeding it to the FVE. If I recall the indicator correctly, it uses Volume and Price, both of which can be ran through the Jurik MA. Jurik calls this using JMA as a Price Proxy.
            Thanks for the reply...this makes good sense. Would I have to create an .efs study to do all of that? Or some kind of routine? Not sure how to proceed. Just looking for a way to slightly smooth (preferably with low lag Jurik JMA) the FVE indicator with adjustable "len" so I can tune it a bit. I think this might be a good indicator to add to the stable.

            Comment


            • #7
              You would do something like the following:

              if (getBarState() == BARSTATE_ALLBARS) {
              JMACstudy = new JurikJMAStudy(JMA_len1, JMA_phase1, offset, Close);
              JMALstudy = new JurikJMAStudy(JMA_len1, JMA_phase1, offset, Low);
              JMAHstudy = new JurikJMAStudy(JMA_len1, JMA_phase1, offset, High);
              JMAVstudy = new JurikJMAStudy(JMA_len2, JMA_phase2, offset, Volume);
              }

              vJMAC = JMACstudy.getValue(JurikJMAStudy.JMA);
              vJMAL = JMALstudy.getValue(JurikJMAStudy.JMA);
              vJMAH = JMAHstudy.getValue(JurikJMAStudy.JMA);
              vJMAV = JMAVstudy.getValue(JurikJMAStudy.JMA);
              if (vJMAC == null || vJMAL == null || vJMAH == null || vJMAV == null) return;

              Then you would put the vJMAC variable everywhere the Closing Price goes, vJMAL everywhere the Low Price goes, etc...

              I don't use Esignal anymore but here are a couple of FVE JMA scripts I still have. I don't know if any are what you are looking for but they might help you write one you want.
              Attached Files
              Last edited by whatever; 01-28-2005, 12:26 PM.

              Comment


              • #8
                Thanks very much 'whatever'...this looks like a promising start. It will take me a bit to absorb the content of your files and check it out the results.

                I appreciate your effort and sharing. All the best...

                Comment


                • #9
                  Skylor

                  I have been watching your posts and hoping that someone could figure out a solution. I don't know anything about programing but I use the Jurik studies and think they are amazing, if you get it resolved could you please post the EFS as I would really like to see the results. I wish I knew more to help, so if you decide to post it, thanks in advance. Also I have a ton of Jurik studies EFS that I have been collecting, so if you need any let me know.
                  Mark

                  Comment


                  • #10
                    Hi Mark and "whatever",

                    I had a chance to play with "whatever's" files he generously included below. The indicator marked "fve Katsanos 2C JMA" with the stock settings of "6,7,50,0.3" looks VERY interesting and seems to help confirm (or not) through a volume study the RSX and JMA indicators I use already. One of the other files marked "fve Katsanos OC JMA" looks similiar (but different, perhaps just the settings?). I think both would have helped me avoid a couple of head fakes with my swing trading over the last few weeks. Headfakes will of course always be part of the game though...but improving the win/loss ratio just a couple of percent can make such a difference. In the next week I will be leaving these new indicators on during market time to check it out in real time. Of course a trader can have too many indicators so I have to consider that as well.

                    JMA really works some magic on the fve volume concept. If you put both the stock fve and the two "whatever" written .efs studies on the same chart you can see the clarity of trend they give to it.

                    "Whatever", I have no idea how these two above mentioned indicators would compare with the sample code you posted below. If you have any thoughts on that it would be appreciated. Like poster Mark also said, I too am terrible at coding .efs studies. In past attempts I would miss a couple of dots or a bracket or three and the thing would never work. With the hundreds of characters involved my attempts were doomed to fail since I have no underlying computer knowledge. How nice when a person has trading skills, temperment, and computer understanding....what a perfect convergence!

                    Thanks for your post Mark. The minute I first saw the Jurik products advertised with a tiny print ad several years ago they caught my eye. I have been a subscriber ever since, and although I constantly have refined my ruleset, the stocks traded, and timeframes involved....the indicators never change. I am always tinkering and plugging in other "freebie" .efs studies....all look so sad compared to the Jurik product.

                    Mark, I don't really have much to offer you in trade for your indicators. Pretty much what I use is the standard RSX static and JMA dynamic indicators. I have one custom .efs study I managed to write (with help) that colors the bars using the RSX indicator, a slight difference than the result of the Jurik dynamic RSX study that colors the bars only within the .efs indicator window. All else is constant refinement of a trading ruleset, time frame (of both the stock and Jurik product length), and stock selection.

                    I can be reached here or at "[email protected]" if you wish to talk more about anything or trade ideas.
                    Last edited by skylor; 01-29-2005, 03:24 PM.

                    Comment


                    • #11
                      I no longer use Esignal but have switched to a competitor so I am unable to view the code, but if you would post the two scripts I can tell you how they differ from the original FVE study.

                      Comment


                      • #12
                        Hi "whatever",

                        Here is a text copy of your "fve Katsanos 2C JMA.efs" that was included in your zip file. I'm still working with it, and still think it looks promising.

                        If you could discuss how it differs from the partial script you had typed out below it would be appreciated.

                        Thanks,
                        Neil


                        /************************************************** *****************
                        Description : This Indicator plots the Finite Volume Elements
                        Provided By : TS Support, LLC for eSignal
                        ************************************************** ******************/

                        function preMain(){
                        setStudyTitle("JMA Finite Volume Elements 2C");
                        setCursorLabelName("FVE",0);
                        setDefaultBarFgColor(Color.red,0);
                        setComputeOnClose(true);

                        var fp1 = new FunctionParameter("Period", FunctionParameter.NUMBER);
                        fp1.setName("Period");
                        fp1.setLowerLimit(2);
                        fp1.setDefault(6);

                        var fp2 = new FunctionParameter("J1L", FunctionParameter.NUMBER);
                        fp2.setName("JMA Length");
                        fp2.setLowerLimit(2);
                        fp2.setDefault(7);

                        var fp3 = new FunctionParameter("J1P", FunctionParameter.NUMBER);
                        fp3.setName("JMA Phase");
                        fp3.setLowerLimit(-100);
                        fp3.setUpperLimit(100);
                        fp3.setDefault(50);

                        var fp4 = new FunctionParameter("Factor", FunctionParameter.NUMBER);
                        fp4.setName("% of Close");
                        fp4.setLowerLimit(.005);
                        fp4.setDefault(.3);
                        }

                        var FVE = 0;

                        function main(Period, J1L, J1P, Factor){
                        var MF = 0, vlm = 0, Sum = 0;
                        var vJMA1, vJMA2, vJMA3;

                        if (getBarState() == BARSTATE_ALLBARS) {
                        myJMAstudy1 = new JurikJMAStudy(J1L, J1P,0,"Close");
                        myJMAstudy2 = new JurikJMAStudy(J1L, J1P,0,"High");
                        myJMAstudy3 = new JurikJMAStudy(J1L, J1P,0,"Low");
                        }

                        /* core program */

                        vJMA1 = myJMAstudy1.getValue(JurikJMAStudy.JMA, 0, -2) ;
                        vJMA2 = myJMAstudy2.getValue(JurikJMAStudy.JMA, 0, -2) ;
                        vJMA3 = myJMAstudy3.getValue(JurikJMAStudy.JMA, 0, -2) ;

                        if (vJMA1 == null || vJMA2 == null || vJMA3 == null) return;

                        MF = (2*vJMA1[0] - vJMA2[0]-vJMA3[0]) + ((vJMA1[0]+vJMA2[0]+vJMA3[0])/3) - ((vJMA1[1]+vJMA2[1]+vJMA3[1])/3)

                        //MF = vJMA1 - vJMA2 + vJMA3[0] - vJMA3[1];

                        if(MF > Factor * vJMA1[0] / 100)
                        vlm = volume();
                        else if(MF < -Factor * vJMA1[0] / 100)
                        vlm = - volume();
                        else
                        vlm = 0;

                        for(i = - Period + 1; i <= 0; i++)
                        Sum += volume(i);
                        VolumeMA = Sum / Period;

                        FVE += ((vlm / VolumeMA) / Period) * 100;

                        return FVE;
                        }

                        Comment


                        • #13
                          There is no real difference. What I posted earlier was how to call JMA to replace Price.

                          I can see however that Volume is left unfiltered. I would recommend replacing the SMA of Volume with the JMA of the Volume. You could also filter the Volume used for "vlm".




                          /**************************************************
                          *****************
                          Description : This Indicator plots the Finite Volume Elements
                          Provided By : TS Support, LLC for eSignal
                          **************************************************
                          ******************/

                          function preMain(){
                          setStudyTitle("JMA Finite Volume Elements 3C");
                          setCursorLabelName("FVE",0);
                          setDefaultBarFgColor(Color.red,0);
                          setComputeOnClose(true);

                          var fp1 = new FunctionParameter("Period", FunctionParameter.NUMBER);
                          fp1.setName("Period");// Used for Length of JMA for Volume
                          fp1.setLowerLimit(2);
                          fp1.setDefault(6);

                          var fp2 = new FunctionParameter("J1L", FunctionParameter.NUMBER);
                          fp2.setName("JMA Length");
                          fp2.setLowerLimit(2);
                          fp2.setDefault(7);

                          var fp3 = new FunctionParameter("J1P", FunctionParameter.NUMBER);
                          fp3.setName("JMA Phase");
                          fp3.setLowerLimit(-100);
                          fp3.setUpperLimit(100);
                          fp3.setDefault(50);

                          var fp4 = new FunctionParameter("Factor", FunctionParameter.NUMBER);
                          fp4.setName("% of Close");
                          fp4.setLowerLimit(.005);
                          fp4.setDefault(.3);
                          }

                          var FVE = 0;

                          function main(Period, J1L, J1P, Factor){
                          var MF = 0, vlm = 0, Sum = 0;
                          var vJMA1, vJMA2, vJMA3 vJMA4;

                          if (getBarState() == BARSTATE_ALLBARS) {
                          myJMAstudy1 = new JurikJMAStudy(J1L, J1P, 0, "Close");
                          myJMAstudy2 = new JurikJMAStudy(J1L, J1P, 0, "High");
                          myJMAstudy3 = new JurikJMAStudy(J1L, J1P, 0, "Low");
                          myJMAstudy4 = new JurikJMAStudy(Period, 0, 0, "Volume");

                          }

                          /* core program */

                          vJMA1 = myJMAstudy1.getValue(JurikJMAStudy.JMA, 0, -2) ;
                          vJMA2 = myJMAstudy2.getValue(JurikJMAStudy.JMA, 0, -2) ;
                          vJMA3 = myJMAstudy3.getValue(JurikJMAStudy.JMA, 0, -2) ;
                          vJMA4 = myJMAstudy4.getValue(JurikJMAStudy.JMA, 0) ;

                          if (vJMA1 == null || vJMA2 == null || vJMA3 == null || vJMA4 == null) return;

                          MF = (2*vJMA1[0] - vJMA2[0]-vJMA3[0]) + ((vJMA1[0]+vJMA2[0]+vJMA3[0])/3) - ((vJMA1[1]+vJMA2[1]+vJMA3[1])/3)

                          //MF = vJMA1 - vJMA2 + vJMA3[0] - vJMA3[1];

                          if(MF > Factor * vJMA1[0] / 100)
                          vlm = volume();
                          else if(MF < -Factor * vJMA1[0] / 100)
                          vlm = - volume();
                          else
                          vlm = 0;

                          //for(i = - Period + 1; i <= 0; i++)
                          //Sum += volume(i);
                          //VolumeMA = Sum / Period;

                          VolumeMA = vJMA4;

                          FVE += ((vlm / VolumeMA) / Period) * 100;

                          return FVE;
                          }

                          Comment


                          • #14
                            Check previous post below

                            This script has both Volumes replaced by JMAs of the Volume.

                            Hope this helps.


                            /**************************************************
                            *****************
                            Description : This Indicator plots the Finite Volume Elements
                            Provided By : TS Support, LLC for eSignal
                            **************************************************
                            ******************/

                            function preMain(){
                            setStudyTitle("JMA Finite Volume Elements 2C");
                            setCursorLabelName("FVE",0);
                            setDefaultBarFgColor(Color.red,0);
                            setComputeOnClose(true);

                            var fp1 = new FunctionParameter("Period", FunctionParameter.NUMBER);
                            fp1.setName("Period");// Used for Length of JMA for Volume
                            fp1.setLowerLimit(2);
                            fp1.setDefault(6);

                            var fp2 = new FunctionParameter("J1L", FunctionParameter.NUMBER);
                            fp2.setName("JMA Length");
                            fp2.setLowerLimit(2);
                            fp2.setDefault(7);

                            var fp3 = new FunctionParameter("J1P", FunctionParameter.NUMBER);
                            fp3.setName("JMA Phase");
                            fp3.setLowerLimit(-100);
                            fp3.setUpperLimit(100);
                            fp3.setDefault(50);

                            var fp4 = new FunctionParameter("J2L", FunctionParameter.NUMBER);
                            fp4.setName("JMA V Length");// J2L should always be less than Period
                            fp4.setLowerLimit(2);
                            fp4.setDefault(3);

                            var fp5 = new FunctionParameter("J2P", FunctionParameter.NUMBER);
                            fp5.setName("JMA V Phase");
                            fp5.setLowerLimit(-100);
                            fp5.setUpperLimit(100);
                            fp5.setDefault(50);

                            var fp6 = new FunctionParameter("Factor", FunctionParameter.NUMBER);
                            fp6.setName("% of Close");
                            fp6.setLowerLimit(.005);
                            fp6.setDefault(.3);
                            }

                            var FVE = 0;

                            function main(Period, J1L, J1P, J2L, J2P, Factor){
                            var MF = 0, vlm = 0, Sum = 0;
                            var vJMA1, vJMA2, vJMA3 vJMA4v vJMA5;

                            if (getBarState() == BARSTATE_ALLBARS) {
                            myJMAstudy1 = new JurikJMAStudy(J1L, J1P, 0, "Close");
                            myJMAstudy2 = new JurikJMAStudy(J1L, J1P, 0, "High");
                            myJMAstudy3 = new JurikJMAStudy(J1L, J1P, 0, "Low");
                            myJMAstudy4 = new JurikJMAStudy(Period, 0, 0, "Volume");
                            myJMAstudy5 = new JurikJMAStudy(J2L, J2P, 0, "Volume");

                            }

                            /* core program */

                            vJMA1 = myJMAstudy1.getValue(JurikJMAStudy.JMA, 0, -2) ;
                            vJMA2 = myJMAstudy2.getValue(JurikJMAStudy.JMA, 0, -2) ;
                            vJMA3 = myJMAstudy3.getValue(JurikJMAStudy.JMA, 0, -2) ;
                            vJMA4 = myJMAstudy4.getValue(JurikJMAStudy.JMA, 0) ;
                            vJMA5 = myJMAstudy5.getValue(JurikJMAStudy.JMA, 0) ;

                            if (vJMA1 == null || vJMA2 == null || vJMA3 == null || vJMA4 == null || vJMA5 == null) return;

                            MF = (2*vJMA1[0]-vJMA2[0]-vJMA3[0]) + ((vJMA1[0]+vJMA2[0]+vJMA3[0])/3) - ((vJMA1[1]+vJMA2[1]+vJMA3[1])/3)

                            //MF = vJMA1 - vJMA2 + vJMA3[0] - vJMA3[1];

                            if(MF > Factor * vJMA1[0] / 100)
                            vlm = vJMA5;
                            else if(MF < -Factor * vJMA1[0] / 100)
                            vlm = - vJMA5;
                            else
                            vlm = 0;

                            //for(i = - Period + 1; i <= 0; i++)
                            //Sum += volume(i);
                            //VolumeMA = Sum / Period;

                            VolumeMA = vJMA4;

                            FVE += ((vlm / VolumeMA) / Period) * 100;

                            return FVE;
                            }
                            Last edited by whatever; 01-30-2005, 06:26 AM.

                            Comment


                            • #15
                              Hi Whatever,

                              I tried pasting your efs text into an actual file and launching it. I got a few errors. If you have any idea, please let me know.

                              Thanks,

                              Neil

                              Attached...

                              Comment

                              Working...
                              X