Announcement

Collapse
No announcement yet.

Market Facilitation Index efs

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

  • Market Facilitation Index efs

    Hello All,

    Can someone please let me know if they have come across an efs for the Market Facilitation Index. If not I wonder if one of you esignal guys could help me write a script.

    Please see below for a detailed description of the index including the formula.

    Market Facilitation Index

    The following formulas were constructed using interpretation from Technical Analysis of Stocks & Commodities Magazine June 1994, article "The Market Facilitation Index", by Gary Hoover.

    Taken from Stocks & Commodities, V. 12:6 (253-254): "The Market Facilitation Index" by Gary Hoover

    "Applying technical analysis to developing trading signals begins with the investigation of price movement and often incorporates volume studies to improve trading accuracy. The Market Facilitation Index (MFI) is one indicator that synthesizes both price and volume analysis. The MFI is the ratio of the current bar's range (high-low) to the bar's volume.

    The MFI is designed to gauge the efficiency of price movement. The efficiency is measured by comparing the current bar's MFI value to the previous bar's MFI value. If the MFI increased, then the market is facilitating trade and is more efficient, implying that the market is trending. If the MFI decreased, then the market is becoming less efficient, which may indicate a trading range is developing that may be a trend reversal…"

    Range:
    High-Low

    MFI:
    Fml("Range") / Volume

    Efficiency:
    If(Fml("MFI"),>,Ref(Fml("MFI"),-1),1, If(Fml("MFI"),<,Ref(Fml("MFI"),-1),-1, If(Fml("MFI"),=,Ref(Fml("MFI"),-1),0,0)))

    Where:
    +1 = increase
    -1 = decrease
    0 = unchanged

    Market Facilitation Comparison:
    If(V,>,Ref(V,-1),If(Fml("MFI"),>,Ref(Fml("MFI"),-1) ,1,If(Fml("MFI"),<,Ref(Fml("MFI"),-1),2,0)),If(V,< ,Ref(V,-1),If(Fml("MFI"),>,Ref(Fml("MFI"),-1),3,If( Fml("MFI"),<,Ref(Fml("MFI"),-1),4,0)),0))

    Where:
    1 = +,+
    2 = +,-
    3 = -,+
    4 = -,-

    As always, I really appreciate your help.

    Cheers

    Carlton

  • #2
    Hi Carlton,

    I think that the MFI may already be available in EFS language. From the looks of it, TS Support (I think) made this available. Hope this helps.
    Attached Files

    Comment


    • #3
      Duane,

      I'll check it out, in the meantime thanks a lot mate.

      Cheers

      Carlton

      Comment


      • #4
        Duane,

        I checked out the efs and I'm not entirely sure if it actually is an efs of "Market Facilitation Index".

        Below, is an image of the MFI taken from http://www.prophet.net/analyze/popgl...p?studyid=MCFI

        Carlton
        Attached Files

        Comment


        • #5
          Hi Carlton,

          Lets try this. I changed the format of the MFI from a histogram to a line. This may look more familiar to you. Let me know.
          Attached Files

          Comment


          • #6
            Hi Duane,

            What I find puzzling is the scale. If you look at the image and compare it to the scale on an actual chart its different. Or am I being a bit silly?



            Cheers

            Carlton

            Comment


            • #7
              Hi Carlton,

              Not being silly at all. It is going to come down to a matter of preference. The MFI basically takes the range of a given days trading, divides it by the current volume and then multiplies it by 100. If we take a stocks daily range, we come up with some number. Even when we have a large range, if we take that number and divide it with the volume, the output is still rather small. This is why the scaling of the MFI was so much smaller than the one you compared with. One way to change this is to change the multiplier from 100 to some other larger base 10 number; 1000000, 10000000. This in turn will change the vertical scaling of the MFI to something that is closer to what you are seeing with the other chart in your post.

              function preMain()
              {
              setStudyTitle("MFI");
              setCursorLabelName("MFI", 0);
              //setPlotType(PLOTTYPE_HISTOGRAM);
              }
              function main(sMyVol)
              {
              var MyVol = "Volume";
              if (sMyVol != null) MyVol = sMyVol;
              var Range = high(0) - low(0);
              var Vol = getValue(MyVol,0);
              var MFI = 0.0;
              if (Vol > 0) MFI = Range / Vol * 1000000000;
              else MFI = 0;
              return MFI;

              Hope this helps.

              Comment


              • #8
                Hi Duane,

                Thanks mate for your kind words.

                Thanks for the modified efs, it works for me.

                Cheers mate.

                Carlton

                Comment


                • #9
                  Hi Duane,

                  Just wanna say thanks again mate.

                  Cheers

                  Carlton

                  Comment


                  • #10
                    Hi Carlton,

                    You’re more than welcome. I'm glad this is working for you.

                    Comment


                    • #11
                      MFI Scaling

                      I've applied this indicator to a 45 minute chart. Every time a new bar comes up the scaling on the indicator squishes down to a thin line and I have to hit the auto scale feature to get it back to normal. I have tried each of the scaling options with no luck. Does anybody have any suggestions?

                      Thanks in advance.

                      Bob

                      Comment

                      Working...
                      X