strMA_Pcrsv.efs
EFSLibrary - Discussion Board
File Name: strMA_Pcrsv.efs
Description:
Moving Average & Price Crossover
Formula Parameters:
- Length : 40
Notes:
This is the almost simpliest strategy a trader can imagine. It is based on moving average concept. A Moving Average is an indicator that shows the average value of a security's price over a period of
time. When calculating a moving average, a mathematical analysis of the security's average value over a predetermined time period is made. As the security's price changes, its average price moves up or down.
Download File:
strMA_Pcrsv.efs
EFS 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: Moving Average & Price Crossover Version: 1.0 03/24/2009 Formula Parameters: Default: Length 40 Notes: This is the almost simpliest strategy a trader can imagine. It is based on moving average concept. A Moving Average is an indicator that shows the average value of a security's price over a period of time. When calculating a moving average, a mathematical analysis of the security's average value over a predetermined time period is made. As the security's price changes, its average price moves up or down. **********************************/ var fpArray = new Array(); var bInit = false; function preMain() { setPriceStudy(true); setStudyTitle("Moving Average & Price Crossover"); setCursorLabelName("SMA", 0); setColorPriceBars(true); setDefaultPriceBarColor(Color.black); var x=0; fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER); with(fpArray[x++]){ setLowerLimit(1); setDefault(40); } } var xSMA = null; function main(Length) { var nBarState = getBarState(); var Close = close(-1); var nSMA = 0; if (nBarState == BARSTATE_ALLBARS) { if (Length == null) nLength = 40; } if (bInit == false) { xSMA = sma(Length); bInit = true; } nSMA = xSMA.getValue(-1); if (nSMA == null) return; if (getCurrentBarIndex() == 0) return; if(Close >= nSMA && !Strategy.isLong()) Strategy.doLong("Crossing Up", Strategy.MARKET, Strategy.THISBAR); if(Close < nSMA && !Strategy.isShort()) Strategy.doShort("Crossing Down", Strategy.MARKET, Strategy.THISBAR); if(Strategy.isLong()) setPriceBarColor(Color.lime); else if(Strategy.isShort()) setPriceBarColor(Color.red); return nSMA; }