Announcement

Collapse
No announcement yet.

Mobility Oscillator

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

  • Mobility Oscillator

    File Name: MobOsc.efs

    Description:
    Mobility Oscillator

    Formula Parameters:
    M : 10
    LookBack : 14


    Notes:
    The price distribution function, which analyzes the distribution of
    prices over a lookback period, is useful for predicting price mobility.
    Here's a new method called the mobility oscillator that will allow you
    to do so.
    Price mobility, the ease with which prices move, can be assessed by
    constructing price distribution functions and determining congestion and
    the location of the current price compared with the congestion. That is
    not to say that moves will happen, since other external factors not in
    the market influence moves, but that it is easier. When congestion develops
    and the current price is in a congested region, an abrupt move often follows.



    Download File:
    MobOsc.efs



    EFS Code:
    PHP Code:
    /*********************************
    Provided By:  
        eSignal (Copyright c eSignal), a division of Interactive Data 
        Corporation. 2009. All rights reserved. This sample eSignal 
        Formula Script (EFS) is for educational purposes only and may be 
        modified and saved under a new file name.  eSignal is not responsible
        for the functionality once modified.  eSignal reserves the right 
        to modify and overwrite this EFS file with each new release.

    Description:        
        Mobility Oscillator 
        
    Version:            1.0  04/21/2009

    Formula Parameters:                     Default:
        M                                   10
        LookBack                            14
    Notes:
        The price distribution function, which analyzes the distribution of 
        prices over a lookback period, is useful for predicting price mobility. 
        Here's a new method called the mobility oscillator that will allow you 
        to do so.
        Price mobility, the ease with which prices move, can be assessed by 
        constructing price distribution functions and determining congestion and 
        the location of the current price compared with the congestion. That is 
        not to say that moves will happen, since other external factors not in 
        the market influence moves, but that it is easier. When congestion develops 
        and the current price is in a congested region, an abrupt move often follows.

    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain() {
        
    setStudyTitle("Mobility Oscillator");
        
    setCursorLabelName("MobilityOsc");
        var 
    0;
        
    fpArray[x] = new FunctionParameter("M"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(10);
        }
        
    fpArray[x] = new FunctionParameter("LookBack"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(14);
        }
    }

    var 
    xMobOsc null;

    function 
    main(MLookBack) {
    var 
    nBarState getBarState();
    var 
    nMobOsc 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    == null10;
            if (
    LookBack == nullLookBack 14;
        }
        if (
    bInit == false) {
            
    xMobOsc efsInternal("Calc_MobOsc"MLookBack);
            
    bInit true;
        }
        
    nMobOsc xMobOsc.getValue(0);
        if (
    nMobOsc == null) return;
        return 
    nMobOsc;
    }

    var 
    bSecondInit false;
    var 
    xHH null;
    var 
    xLL null;
    var 
    xHigh null;
    var 
    xLow null;
    var 
    xClose null;

    function 
    Calc_MobOsc(MLookBack) {
    var 
    0;
    var 
    0;
    var 
    0;
    var 
    RX 0;
    var 
    IMX 1;
    var 
    BU 0;
    var 
    BL 0;
    var 
    BUpdf 0;
    var 
    BLpdf 0;
    var 
    Value99 0;
    var 
    PDFVar 0;
    var 
    PDF 0;
    var 
    PDFMX 0;
    var 
    PDFC 0;
        if (
    getCurrentBarCount() <= LookBack 2) return;
        if (
    bSecondInit == false) {
            
    xHigh high();
            
    xLow low();
            
    xClose close();
            
    xHH upperDonchian(LookBackxHigh);
            
    xLL lowerDonchian(LookBackxLow);
            
    bSecondInit true;
        }

        
    HMax xHH.getValue(0);
        
    LMin xLL.getValue(0);
        
    RX = (HMax LMin) / M;

        for (
    1<= Mi++) {
            
    BU LMin RX;
            
    BL BU RX;
            
    BLpdf LMin + (1) * RX;
            
    BUpdf LMin RX;
            
    PDFVar 0;
            for (
    0LookBackj++) {
                
    j;
                if (
    xHigh.getValue( - n) <= BUpdfPDFVar++;
                if ((
    xHigh.getValue( - n) <= BUpdf) || (xLow.getValue( - n) >= BUpdf)) Value99 1;
                else 
    PDFVar PDFVar + (BUpdf xLow.getValue( - n)) / (xHigh.getValue( - n) - xLow.getValue( - n));
                if (
    xHigh.getValue( - n) <= BLpdfPDFVar--;
                if ((
    xHigh.getValue( - n) <= BLpdf) || (xLow.getValue( - n) >= BLpdf)) Value99 1;
                else 
    PDFVar PDFVar - (BLpdf xLow.getValue( - n)) / (xHigh.getValue( - n) - xLow.getValue( - n));
            }
            
    PDF PDFVar LookBack;
            if (
    == 1PDFMX PDF;
            if (
    PDF PDFMX) {
                
    IMX i;
                
    PDFMX PDF;
            }
            if (
    == 1PDFC PDF;
            if ((
    xClose.getValue( - (LookBack 1)) > BL) && (xClose.getValue( - (LookBack 1)) <= BU)) PDFC PDF;
        }
        var 
    PMO LMin + (IMX 0.5) * RX;
        var 
    MO 100 * (PDFC PDFMX);
        if (
    xClose.getValue( - (LookBack 1)) < PMOMO = -MO;
        return - 
    MO;

Working...
X