Jump to content

Welcome to the new Traders Laboratory! Please bear with us as we finish the migration over the next few days. If you find any issues, want to leave feedback, get in touch with us, or offer suggestions please post to the Support forum here.

  • Welcome Guests

    Welcome. You are currently viewing the forum as a guest which does not give you access to all the great features at Traders Laboratory such as interacting with members, access to all forums, downloading attachments, and eligibility to win free giveaways. Registration is fast, simple and absolutely free. Create a FREE Traders Laboratory account here.

slableak

Colby Indicator For Tradestation

Recommended Posts

I was wondering if anyone here would translate this E-Signal coding into a Tradestation ELD Cloby Indicator. In E-Signal it has shaded area above and below the 0 line but not on the Trade Station eld found on TradeStation forums. :)

 

Provided By : eSignal © Copyright 2006

Description: Stochastics With Long Term EMA Filter

by Robert Colby

 

Version 1.0 10/09/2006

 

Notes:

* Dec 2006 Issue of Stocks and Commodities Magazine

* Study requires at least 271 bars of data.

* As a non-price study, the formula uses the EMA study as

part of the conditions for the trade signal but cannot

plot the EMA on the price chart simultaneously with the StochK.

If desired, add the EMA study to the price pane with the EMA

from Basic Studies menu (use Length 271 with Close as the Source).

* When the Close is above the 271-period EMA the top half of the study

pane's background will be colored green. When the Close is below

the 271-period EMA, the bottom half of the study pane's background

will be colored red. In addition to the background of the study

pane, the price bars will b e will also be colored to match the

background coloring sc heme.

 

 

Formula Parameters: Default:

Stoch Upper Band 70

Stoch Lower Band 30

EMA Periods 271

StochK Periods 7

StochK Smoothing 3

*****************************************************************/

 

function preMain() {

setStudyTitle("Stochastics with EMA Filter ");

setCursorLabelName("EMA", 0);

setCursorLabelName("StochK", 1);

setDefaultBarFgColor(Color.navy, 1);

setDefaultBarThickness(2, 1);

setShowTitleParameters(false);

setColorPriceBars(true);

setDefaultPriceBarColor(Color.grey);

 

 

var fp1 = new FunctionParameter("nUpperBand", FunctionParameter.NUMBER);

fp1.setName("Stoch Upper Band");

fp1.setLowerLimit(0);

fp1.setDefault(70);

 

var fp2 = new FunctionParameter("nLowerBand", FunctionParameter.NUMBER);

fp2.setName("Stoch Lower Band");

fp2.setLowerLimit(0);

fp2.setDefault(30);

 

var fp3 = new FunctionParameter("nMAlen", FunctionParameter.NUMBER);

fp3.setName("EMA Periods");

fp3.setLowerLimit(1);

fp3.setDefault(271);

 

var fp4 = new FunctionParameter("nKlen", FunctionParameter.NUMBER);

fp4.setName("StochK Periods");

fp4.setLowerLimit(1);

fp4.setDefault(7);

 

var fp5 = new FunctionParameter("nKsma", FunctionParameter.NUMBER);

fp5.setName("StochK Smoothing");

fp5.setLowerLimit(1);

fp5.setDefault(3);

}

 

// Global Variables

var bVersion = null; // Version flag

var bInit = false; // Initialization flag

var xMA = null; // EMA series

var xStochK = null; // StochK series

 

// Strategy Variables

var vPosition = 0; // position status (1=long, 0=flat, -1=short)

var bRealTime = false; // back testing flag

 

function main(nUpperBand, nLowerBand, nMAlen, nKlen, nKsma) {

if (bVersion == null) bVersion = verify();

if (bVersion == false) return;

 

var nState = getBarState();

var nIndex = getCurrentBarIndex();

var c = close(0);

var c_1 = close(-1);

 

//Initialization

if (bInit == false) {

addBand(nUpperBand, PS_SOLID, 1, Color.blue, "upper");

addBand(nLowerBand, PS_SOLID, 1, Color.blue, "lower");

xMA = ema(nMAlen);

xStochK = stochK(nKlen, nKsma, 1);

bInit = true;

}

 

var nEMA = xMA.getValue(0);

var nEMA_1 = xMA.getValue(-1);

var nK = xStochK.getValue(0);

var nK_1 = xStochK.getValue(-1);

if (nEMA_1 == null || nK_1 == null) return; // null check

 

if (nIndex == 0) bRealTime = true;

 

//Coloring scheme for close vs. EMA

if (c >= nEMA) {

setBarBgColor(Color.aqua, 0, 100, 50);

setPriceBarColor(Color.aqua);

} else {

setBarBgColor(Color.red, 0, 50, 0);

setPriceBarColor(Color.red);

}

 

 

// Exit Signals

if (nState == BARSTATE_NEWBAR && vPosition != 0) {

if (vPosition == 1) { // long

if (c_1 < nEMA_1 || nK_1 > nUpperBand) {

drawTextRelative(0, 50, "X", Color.white, Color.maroon,

Text.CENTER|Text.FRAME|Text.BOLD|Text.BOTTOM, null, 10);

drawShape(Shape.SQUARE, TopRow1, Color.khaki);

vPosition = 0;

if (bRealTime == false) { // back test

Strategy.doSell("Long Exit", Strategy.MARKET, Strategy.THISBAR);

}

&n bsp; }

} el se if (vPosition == -1) { // short

if (c_1 > nEMA_1 || nK_1 < nLowerBand) {

drawTextRelative(0, 50, "X", Color.white, Color.maroon,

Text.CENTER|Text.FRAME|Text.BOLD|Text.TOP, null, 10);

drawShape(Shape.SQUARE, BottomRow1, Color.khaki);

vPosition = 0;

if (bRealTime == false) { // back test

&n bsp; Strat egy.doCover("Short Exit", Strategy.MARKET, Strategy.THISBAR);

}

}

}

}

 

// Entry Signals

if (nState == BARSTATE_NEWBAR) {

if (vPosition != 1) { // long

if (nK_1 < nLowerBand && c_1 > nEMA_1) {

drawTextRelative(0, 50, "Long", Color.white, Color.blue,

Text.RIGHT|Text.F RAME|Text.BOLD|Text.TOP, null, 10);

&n bsp; vPosition = 1;

if (bRealTime == false) { // back test

Strategy.doLong("Long Entry", Strategy.MARKET, Strategy.THISBAR);

}

}

}

if (vPosition != -1) { // short

if (nK_1 > nUpperBand && c_1 < nEMA_1) {

drawTextRe lative(0, 50, "Short", Color.white, Color.blue,

Text.RIGHT|Text.FRAME|Text.BOLD|Text.BOTTOM, null, 10);

vPosition = -1;

if (bRealTime == false) { // back test

Strategy.doShort("Short Entry", Strategy.MARKET, Strategy.THISBAR);

}

}

}

}

 

// Position status

if (vPosition == 1) {

drawShape(Shape.SQUARE, TopRow1, Color .khaki);

} else if (vPosition == -1) {

drawShape(Shape.SQUARE, BottomRow1, Color.khaki);

}

 

return new Array(nEMA.toFixed(4), nK);

}

 

 

 

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,

&nb sp; null, 13, "upgrade");

&nb sp; return b;

} else {

b = true;

}

 

return b;

}

Share this post


Link to post
Share on other sites

Slab : can you post a picture of it so I can tell you what can be done for TS... actually TS doesnt have a background plotting feature but it does have a series of diferent alternatives to plot "colors" on an indicator.... cheers Walter

Share this post


Link to post
Share on other sites

Ok Slab, you want to take a look to this one.... the shades, in this case will be with color and thikness on the overbougth/sold lines.... wich is the relationship between close and ema... you can change that setting on ema if you want... hope it helps, cheers Walter.

Stochastic Colby.ELD

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.