2011 Dec: Applying The Put/Call Ratio Indicator by Sylvain Vervoort

ICE Data Services -


SVE_Stoch_IFT.efs, SVE_Stoch_IFT_Strategy.efs  EFSLibrary - Discussion Board
  

File Name: SVE_Stoch_IFT.efs, SVE_Stoch_IFT_Strategy.efs

Description:
Applying The Put/Call Ratio Indicator by Sylvain Vervoort


Formula Parameters:

SVE_Stoch_IFT.efs
Stochastic Period: 30
Stochastic Slowing: 5

SVE_Stoch_IFT_Strategy.efs
Stochastic Period: 30
Stochastic Slowing: 5
SMA Period: 165

Notes:
The related article is copyrighted material. If you are not a subscriber
of Stocks & Commodities, please visit www.traders.com.

Download File:
SVE_Stoch_IFT.efs
SVE_Stoch_IFT_Strategy.efs

SVE_Stoch_IFT.efs, SVE_Stoch_IFT_Strategy.efs



EFS Code:

SVE_Stoch_IFT.efs









/*********************************Provided By:      Interactive Data Corporation (Copyright  2011)     All rights reserved. This sample eSignal Formula Script (EFS)    is for educational purposes only. Interactive Data Corporation    reserves the right to modify and overwrite this EFS file with     each new release. Description:            Smoothed Inverse Fisher Transform Stochastic Oscillator	Version:            1.00  13/10/2011Formula Parameters:                     Default:Stochastic Period                       30Stochastic Slowing                      5Notes:    The related article is copyrighted material. If you are not a subscriber    of Stocks & Commodities, please visit www.traders.com.**********************************/var fpArray = new Array();function preMain(){          setPriceStudy(false);    setCursorLabelName("SVE_Stoch_IFT", 0);        var x=0;    fpArray[x] = new FunctionParameter("stochPeriod", FunctionParameter.NUMBER);    with(fpArray[x++])    {	setName("Stochastic Period");	setLowerLimit(2);        setUpperLimit(100);        setDefault(30);    }     fpArray[x] = new FunctionParameter("stochSlowing", FunctionParameter.NUMBER);    with(fpArray[x++])    {	setName("Stochastic Slowing");	setLowerLimit(1);        setUpperLimit(10);        setDefault(5);    }    }var bInit = false;var bVersion = null; var xRainb = null;var xHHV = null;var xLLV = null;var xSmaR = null;var xSmaL = null;var xSmaH = null;function main(stochPeriod, stochSlowing){    if (bVersion == null) bVersion = verify();    if (bVersion == false) return;              if (!bInit)    {        xRainb = efsInternal("Calc_RainbW");        xHHV = hhv(stochPeriod, xRainb);        xLLV = llv(stochPeriod, xRainb);                         xSmaR = sma(stochSlowing, xRainb);        xSmaL = sma(stochSlowing, xLLV);        xSmaH = sma(stochSlowing, xHHV);                bInit = true;    }                   var nSmaR = xSmaR.getValue(0);    var nSmaL = xSmaL.getValue(0);    var nSmaH = xSmaH.getValue(0);        if (nSmaR == null || nSmaL == null || nSmaH == null)        return;            var nSumR = nSmaR * stochSlowing;    var nSumL = nSmaL * stochSlowing;    var nSumH = nSmaH * stochSlowing;        var nRBWStoch = (nSumR - nSumL)/(nSumH - nSumL + 0.0001)*100;        var x = 0.1 * (nRBWStoch-50);    var nIFTStoch = ((Math.exp(2 * x) - 1) / (Math.exp(2 * x) + 1) + 1) * 50;        return nIFTStoch;}/*************************************************             SUPPORT FUNCTIONS                    **************************************************/ var bInitRainbow = false;var xWMA1 = null;var xWMA2 = null;var xWMA3 = null;var xWMA4 = null;var xWMA5 = null;var xWMA6 = null;var xWMA7 = null;var xWMA8 = null;var xWMA9 = null;var xWMA10 = null;// rainbow averaging techniquefunction Calc_RainbW() {var nRes = 0;var nWMA1 = 0;var nWMA2 = 0;var nWMA3 = 0;var nWMA4 = 0;var nWMA5 = 0;var nWMA6 = 0;var nWMA7 = 0;var nWMA8 = 0;var nWMA9 = 0;var nWMA10 = 0;    if (!bInitRainbow) {        xWMA1 = wma(2);        xWMA2 = wma(2, xWMA1);        xWMA3 = wma(2, xWMA2);        xWMA4 = wma(2, xWMA3);        xWMA5 = wma(2, xWMA4);        xWMA6 = wma(2, xWMA5);        xWMA7 = wma(2, xWMA6);        xWMA8 = wma(2, xWMA7);        xWMA9 = wma(2, xWMA8);        xWMA10 = wma(2, xWMA9);        bInitRainbow = true;    }    nWMA1 = xWMA1.getValue(0);    nWMA2 = xWMA2.getValue(0);    nWMA3 = xWMA3.getValue(0);    nWMA4 = xWMA4.getValue(0);    nWMA5 = xWMA5.getValue(0);    nWMA6 = xWMA6.getValue(0);    nWMA7 = xWMA7.getValue(0);    nWMA8 = xWMA8.getValue(0);    nWMA9 = xWMA9.getValue(0);    nWMA10 = xWMA10.getValue(0);    if (nWMA10 == null) return;    nRes = (5 * nWMA1 + 4 * nWMA2 + 3 * nWMA3 + 2 * nWMA4 +            nWMA5 + nWMA6 + nWMA7 + nWMA8 + nWMA9 + nWMA10) / 20;        return nRes;}// verify versionfunction verify() {    var b = false;    if (getBuildNumber() < 779) {        drawTextAbsolute(5, 35, "This study requires version 8.0 or later.",             Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,            null, 13, "error");        drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp",             Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,            null, 13, "upgrade");        return b;    } else {        b = true;    }    return b;}


SVE_Stoch_IFT_Strategy.efs
/*********************************Provided By:      Interactive Data Corporation (Copyright  2011)     All rights reserved. This sample eSignal Formula Script (EFS)    is for educational purposes only. Interactive Data Corporation    reserves the right to modify and overwrite this EFS file with     each new release. Description:            Smoothed Inverse Fisher Transform Stochastic Oscillator Strategy	Version:            1.00  13/10/2011Formula Parameters:                     Default:Stochastic Period                       30Stochastic Slowing                      5SMA Period                              165Notes:    The related article is copyrighted material. If you are not a subscriber    of Stocks & Commodities, please visit www.traders.com.**********************************/var fpArray = new Array();function preMain(){          setPriceStudy(true);    setCursorLabelName("SVE_Stoch_IFT_Strategy", 0);        var x=0;    fpArray[x] = new FunctionParameter("stochPeriod", FunctionParameter.NUMBER);    with(fpArray[x++])    {	setName("Stochastic Period");	setLowerLimit(2);        setUpperLimit(100);        setDefault(30);    }     fpArray[x] = new FunctionParameter("stochSlowing", FunctionParameter.NUMBER);    with(fpArray[x++])    {	setName("Stochastic Slowing");	setLowerLimit(1);        setUpperLimit(10);        setDefault(5);    }    fpArray[x] = new FunctionParameter("smaPeriod", FunctionParameter.NUMBER);    with(fpArray[x++])    {	setName("SMA Period");	setLowerLimit(1);        setDefault(165);    }   }var bInit = false;var bVersion = null;var xSVE_Stoch = null; var xSMA = null;function main(stochPeriod, stochSlowing, smaPeriod){    // Back Testing formulas are not for real time analysis.    // Therefore, prevent processing and exit at bar 0.    if (getCurrentBarIndex() == 0) return;        if (bVersion == null) bVersion = verify();    if (bVersion == false) return;               if (!bInit)    {        xSVE_Stoch = efsInternal("Calc_SVE_Stoch_IFT", stochPeriod, stochSlowing);        xSMA = sma(smaPeriod);                bInit = true;    }        var nStoch0 = xSVE_Stoch.getValue(0);    var nStoch1 = xSVE_Stoch.getValue(-1);        var nSMA = xSMA.getValue(0);          if (nStoch0 == null || nSMA == null)        return;        // exit strategy    if (Strategy.isInTrade())    {                // exit long        if (Strategy.isLong())        {            if (nStoch1 > 60 && nStoch0 <= 60)                Strategy.doSell("Long Exit Signal", Strategy.CLOSE, Strategy.THISBAR);        }        // exit short        else if (Strategy.isShort())        {            if (nStoch1 < 30 && nStoch0 >= 30)                Strategy.doCover("Short Exit Signal", Strategy.CLOSE, Strategy.THISBAR);          }                }        // entry strategy    if (!Strategy.isInTrade())    {        if (nStoch1 < 30 && nStoch0 >= 30)            Strategy.doLong("Long signal", Strategy.CLOSE, Strategy.THISBAR);                 if (nStoch1 > 60 && nStoch0 <= 60)            if (close(0) < nSMA)                Strategy.doShort("Short signal", Strategy.CLOSE, Strategy.THISBAR);         }                   if(Strategy.isLong()) {    setBarBgColor(Color.darkgreen);    } else if(Strategy.isShort()) {    setBarBgColor(Color.maroon);    }        return;}// SVE_Stoch_IFT paramsvar stochInit = false;var xRainb = null;var xHHV = null;var xLLV = null;var xSmaR = null;var xSmaL = null;var xSmaH = null;function Calc_SVE_Stoch_IFT(stochPeriod, stochSlowing){            if (!stochInit)    {        xRainb = efsInternal("Calc_RainbW");        xHHV = hhv(stochPeriod, xRainb);        xLLV = llv(stochPeriod, xRainb);                         xSmaR = sma(stochSlowing, xRainb);        xSmaL = sma(stochSlowing, xLLV);        xSmaH = sma(stochSlowing, xHHV);                       stochInit = true;    }                   var nSmaR = xSmaR.getValue(0);    var nSmaL = xSmaL.getValue(0);    var nSmaH = xSmaH.getValue(0);        if (nSmaR == null || nSmaL == null || nSmaH == null)        return;            var nSumR = nSmaR * stochSlowing;    var nSumL = nSmaL * stochSlowing;    var nSumH = nSmaH * stochSlowing;        var nRBWStoch = (nSumR - nSumL)/(nSumH - nSumL + 0.0001)*100;        var x = 0.1 * (nRBWStoch-50);    var nIFTStoch = ((Math.exp(2 * x) - 1) / (Math.exp(2 * x) + 1) + 1) * 50;        return nIFTStoch;}var bInitRainbow = false;var xWMA1 = null;var xWMA2 = null;var xWMA3 = null;var xWMA4 = null;var xWMA5 = null;var xWMA6 = null;var xWMA7 = null;var xWMA8 = null;var xWMA9 = null;var xWMA10 = null;// rainbow averaging techniquefunction Calc_RainbW() {var nRes = 0;var nWMA1 = 0;var nWMA2 = 0;var nWMA3 = 0;var nWMA4 = 0;var nWMA5 = 0;var nWMA6 = 0;var nWMA7 = 0;var nWMA8 = 0;var nWMA9 = 0;var nWMA10 = 0;    if (!bInitRainbow) {        xWMA1 = wma(2);        xWMA2 = wma(2, xWMA1);        xWMA3 = wma(2, xWMA2);        xWMA4 = wma(2, xWMA3);        xWMA5 = wma(2, xWMA4);        xWMA6 = wma(2, xWMA5);        xWMA7 = wma(2, xWMA6);        xWMA8 = wma(2, xWMA7);        xWMA9 = wma(2, xWMA8);        xWMA10 = wma(2, xWMA9);        bInitRainbow = true;    }    nWMA1 = xWMA1.getValue(0);    nWMA2 = xWMA2.getValue(0);    nWMA3 = xWMA3.getValue(0);    nWMA4 = xWMA4.getValue(0);    nWMA5 = xWMA5.getValue(0);    nWMA6 = xWMA6.getValue(0);    nWMA7 = xWMA7.getValue(0);    nWMA8 = xWMA8.getValue(0);    nWMA9 = xWMA9.getValue(0);    nWMA10 = xWMA10.getValue(0);    if (nWMA10 == null) return;    nRes = (5 * nWMA1 + 4 * nWMA2 + 3 * nWMA3 + 2 * nWMA4 +            nWMA5 + nWMA6 + nWMA7 + nWMA8 + nWMA9 + nWMA10) / 20;        return nRes;}// verify versionfunction verify() {    var b = false;    if (getBuildNumber() < 779) {        drawTextAbsolute(5, 35, "This study requires version 8.0 or later.",             Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,            null, 13, "error");        drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp",             Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,            null, 13, "upgrade");        return b;    } else {        b = true;    }    return b;}