File Name: TheGoldenTriangleStrategy.efs
Description:
Finding The Golden Triangle by Charlotte Hudgin
Formula Parameters:
TheGoldenTriangleStrategy.efs
Length SMA: 50
Consider Days of White Space: 20
Consider Days to Compare Volume: 0
Entry Position Color: lime
Exit Position Color: red
Notes:
The related article is copyrighted material. If you are not a subscriber
of Stocks & Commodities, please visit www.traders.com.
Download File:
TheGoldenTriangleStrategy.efs
TheGoldenTriangleStrategy.efs
EFS Code:
Description:
Finding The Golden Triangle by Charlotte Hudgin
Formula Parameters:
TheGoldenTriangleStrategy.efs
Length SMA: 50
Consider Days of White Space: 20
Consider Days to Compare Volume: 0
Entry Position Color: lime
Exit Position Color: red
Notes:
The related article is copyrighted material. If you are not a subscriber
of Stocks & Commodities, please visit www.traders.com.
Download File:
TheGoldenTriangleStrategy.efs
TheGoldenTriangleStrategy.efs
EFS Code:
PHP Code:
/*********************************
Provided By:
Interactive Data Corporation (Copyright В© 2014)
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:
Finding The Golden Triangle by Charlotte Hudgin
Formula Parameters: Default:
Length SMA 50
Consider Days of White Space 20
Consider Days to Compare Volume 0
Entry Position Color lime
Exit Position Color red
Version: 1.00 07/07/2014
Notes:
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(){
setStudyTitle("TheGoldenTriangleStrategy");
setPriceStudy(true);
setCursorLabelName("Moving Average", 0);
var x = 0;
fpArray[x] = new FunctionParameter("fpLenSMA", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Length SMA");
setLowerLimit(1);
setDefault(50);
}
fpArray[x] = new FunctionParameter("fpDaysWS", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Consider Days of White Space");
setLowerLimit(1);
setDefault(20);
}
fpArray[x] = new FunctionParameter("fpDaysVolume", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Consider Days to Compare Volume");
setLowerLimit(0);
setDefault(0);
}
fpArray[x] = new FunctionParameter("fpEntryColor", FunctionParameter.COLOR);
with(fpArray[x++]){
setName("Entry Position Color");
setDefault(Color.lime);
}
fpArray[x] = new FunctionParameter("fpExitColor", FunctionParameter.COLOR);
with(fpArray[x++]){
setName("Exit Position Color");
setDefault(Color.red);
}
}
var bInit = false;
var bVersion = null;
var xOpen = null;
var xHigh = null;
var xLow = null;
var xClose = null;
var xVolume = null;
var xPriceSMA = null;
var xVolumeSMA = null;
var xHignesVol = null;
var nCurrDaysWS = 0;
var nLotSize = 0;
var bPriceConfirm = false;
var bVolumeConfirm = false;
var nPivotPrice = null;
function main(fpLenSMA, fpDaysWS, fpDaysVolume, fpEntryColor, fpExitColor){
if (bVersion == null) bVersion = verify();
if (bVersion == false) return;
if (!bInit){
xOpen = open();
xHigh = high();
xLow = low();
xClose = close();
xVolume = volume();
if (fpDaysVolume != 0)
xHignesVol = highest(fpDaysVolume, xVolume);
xPriceSMA = sma(fpLenSMA);
xVolumeSMA = sma(fpLenSMA, xVolume);
nLotSize = Strategy.getDefaultLotSize();
bInit = true;
}
if (getBarState() == BARSTATE_ALLBARS){
bPriceConfirm = false;
bVolumeConfirm = false;
nCurrDaysWS = 0;
};
var nOpen = xOpen.getValue(0);
var nHigh = xHigh.getValue(0);
var nLow = xLow.getValue(0);
var nClose = xClose.getValue(0);
var nPriorClose = xClose.getValue(-1);
var nVolume = xVolume.getValue(0);
var nPriceSMA = xPriceSMA.getValue(0);
var nVolumeSMA = xVolumeSMA.getValue(0);
var nHignesVol = 0;
if (fpDaysVolume != 0)
nHignesVol = xHignesVol.getValue(-1);
if (nPriorClose == null || nPriceSMA == null || nVolumeSMA == null || nHignesVol == null)
return;
if (getCurrentBarIndex() != 0){
if (Strategy.isInTrade() && nHigh >= nPivotPrice){
var nExitPrice = Math.max(nOpen, nPivotPrice);
Strategy.doSell("Exit", Strategy.LIMIT, Strategy.THISBAR, Strategy.DEFAULT, nExitPrice);
drawShapeRelative(0, AboveBar1, Shape.DOWNTRIANGLE, null,
fpExitColor, Text.PRESET, getCurrentBarIndex() + "Exit");
drawTextRelative(0, AboveBar2, "Exit", fpExitColor, null,
Text.PRESET|Text.CENTER, null, null, getCurrentBarIndex() + "Exit");
drawTextRelative(0, AboveBar3, nLotSize + " @ " + formatPriceNumber(nExitPrice),
fpExitColor, null, Text.PRESET|Text.CENTER, null, null, getCurrentBarIndex() + "ExitSettings");
bPriceConfirm = false;
bVolumeConfirm = false;
};
if (!bPriceConfirm && nCurrDaysWS >= fpDaysWS && nLow <= nPriceSMA && nClose >= nPriceSMA){
bPriceConfirm = true;
for (var j = 0; j > -getCurrentBarCount()-1; j--){
nPivotPrice = xHigh.getValue(j-1);
if (xHigh.getValue(j) > xHigh.getValue(j-1)){
nPivotPrice = xHigh.getValue(j);
break;
}
}
if (nVolume > nVolumeSMA && nVolume > nHignesVol)
bVolumeConfirm = true;
};
if (bPriceConfirm && !bVolumeConfirm){
if (nVolume > nVolumeSMA && nVolume > nHignesVol && nClose > nPriceSMA && nClose > nPriorClose)
bVolumeConfirm = true;
};
if (bPriceConfirm && bVolumeConfirm && !Strategy.isInTrade()){
var nEntryPrice = xOpen.getValue(1);
if (nEntryPrice > nPivotPrice){
bPriceConfirm = false;
bVolumeConfirm = false;
} else{
Strategy.doLong("Entry", Strategy.MARKET, Strategy.NEXTBAR, Strategy.DEFAULT);
drawShapeRelative(1, BelowBar1, Shape.UPTRIANGLE, null,
fpEntryColor, Text.PRESET, getCurrentBarIndex() + "Entry");
drawTextRelative(1, BelowBar2, "Entry", fpEntryColor, null,
Text.PRESET|Text.CENTER, null, null, getCurrentBarIndex() + "Entry");
drawTextRelative(1, BelowBar3, nLotSize + " @ " + formatPriceNumber(nEntryPrice),
fpEntryColor, null, Text.PRESET|Text.CENTER, null, null, getCurrentBarIndex() + "EntrySettings");
};
};
};
if (nLow > nPriceSMA)
nCurrDaysWS ++
else
nCurrDaysWS = 0;
return nPriceSMA;
}
function 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;
}