.

Volume Based Cole Trading - Amibroker AFL Code

Click Image To Enlarge. Please Rate And Comment.

Volume Based Cole Trading

/* COLE.AFL v 1.00 17/10/2001
/* Cole Trading Method
/* Developed by Roger Cole
/* From Technical Analysis of Stocks and Commodities, V8:12 (460-463), by Alan Friedman
/* Indicator developed and coded by Marek Chlopek, October 2001
/* Support from Tomasz Janeczko and Amibroker Mailing List members - THANKS!!! */

/* ************************************************************************** */
/* Cole Trading Method description
/* A up signal is formed when a stock makes three Rally Days in a row with larger volume on each day
/* A down signal is formed when a stock makes three Reaction Days in a row with larger volume on each day
/* Inside and Outside Days are ignored */

/* ************************************************************************** */
/* Cole Trading Method Indicator development description
/* Cole Trading Method measures two independent signals: day status (Rally, Reaction, Inside, Outside) and volume,
/* therefore two independent sub-indicators have been implemented:
/* ColeDay - counts number of days in a row when Rally (positive) or Reaction (negative)
/* ColeVolume - counts number of days with higher volume, always positive */

/* ************************************************************************** */
/* Cole's Trading Day Status definition */
RY  = H >  Ref(H, -1) AND L >= Ref(L, -1); // Rally Day
RX  = H <= Ref(H, -1) AND L <  Ref(L, -1); // Reaction Day
IN  = H <= Ref(H, -1) AND L >= Ref(L, -1); // Inside Day
OUT = H >  Ref(H, -1) AND L <  Ref(L, -1); // Outside Day

VolRY = Ref(V, - BarsSince(RY));
VolRX = Ref(V, - BarsSince(RX));
RYwithVol  = RY  AND V > IIf(RY, Ref(VolRY, -1), VolRY);  // Rally Day with Volume
RXwithVol  = RX  AND V > IIf(RX, Ref(VolRX, -1), VolRX);  // Reaction Day with Volume

/* ************************************************************************** */
/* ColeDay - counts number of Rally Days in a row (positive) or Reaction Days in a row (negative)
/* When Rally ColeDay increases by 1 unless the first Rally Day then ColeDay = 1
/* When Reaction ColeDay decreases by 1 unless the first Reaction Day then ColeDay = -1
/* When Inside Day or Outside Day then ColeDay stays unchanged */
PeriodRY = BarsSince(NOT RY);
PeriodRX = BarsSince(NOT RX);
ColeDay  = ValueWhen(RX OR RY, Sum(RY, PeriodRY) - Sum(RX, PeriodRX));

/* ************************************************************************** */
/* ColeVolume - counts number of days with higher volume, always positive
/* When volume higher than previous day volume ColeVolume increases by 1
/* When volume lower previous day volume then ColeVolume = 1
/* When Inside Day or Outside Day then ColeVolume stays unchanged */
PeriodV    = BarsSince(V < Ref(V, -1) AND (RX OR RY));
ColeVolume = ValueWhen(RX OR RY, Sum (RX+RY, PeriodV) +1);

/* ************************************************************************** */
/* Trading Signals in Cole Trading Method
/* Buy Signal  - when a stock makes three Rally Days in a row with larger volume on each day
/* Sell Signal - when a stock makes three Reaction Days in a row with larger volume on each day */
Buy   = ColeDay >= 3  AND ColeVolume >= 3;
Sell  = ColeDay <= -3 AND ColeVolume >= 3;
Cover = Buy;
Short = Sell;

/* ************************************************************************** */
/* Graphic presentation in Amibroker */
MaxGraph = 2;
Graph0 = ColeDay;
Graph1 = ColeVolume;
Title = Name() + " - ColeDay = " + WriteVal(Graph0, 1.0) + "; ColeVolume = " + WriteVal(Graph1, 1.0);

/* ************************************************************************** */
/* Exploration in Amibroker */
Filter = 1;
NumColumns = 9;
Column0 = H;  Column0Name = "H";  Column0Format = 1.2;
Column1 = L;  Column1Name = "L";  Column1Format = 1.2;
Column2 = V;  Column2Name = "V";  Column2Format = 1.0;
Column3 = RY;  Column3Name = "RY";  Column3Format = 1.0;
Column4 = RX;  Column4Name = "RX";  Column4Format = 1.0;
Column5 = IN;  Column5Name = "IN";  Column5Format = 1.0;
Column6 = OUT;  Column6Name = "OUT";  Column6Format = 1.0;
Column7 = ColeDay; Column7Name = "ColeDay"; Column7Format = 1.0;
Column8 = ColeVolume; Column8Name = "ColeVolume"; Column8Format = 1.0;

/* ************************************************************************** */
/* END COLE Indicator Formula */
Previous Post Next Post