[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Convert Free Indicators & System



PureBytes Links

Trading Reference Links

Hi!
Can someone convert the following free indicators & systems which I got from Angus Jackson into ELA format?
Thanks in advance.
Free indicators for Tradestation.
INDICATORS
DOUBLE SMOOTHED EXPONENTIAL MOVING AVERAGE
Inputs: Price(Close), Length(30); Vars: X1(0), X2(0), Dema1(0);
X1= XAverage(Price,Length); X2= XAverage(XAverage(Price,Length),Length);
DEMA1 = X1 * 2 - X2;
Plot1(Dema1, "DEMA1");

MOVING AVERAGE ADJUSTER

INPUT: NUM(10), avglen(5), thold(10);
Value1 = H - lowest ( H , 60 ) ; Value2 = L - highest ( L , 60 ) ;
Value9 =average( Maxlist(0,value1),avglen); Value10 =average( Minlist(0,value2),avglen);
Value11 = (value9 + value10) * SquareRoot(num) ; plot1(value11,"ax");
if value11 < 0 then begin plot2(-thold,"di-"); If Value11 < average(value11[1],2) then Plot4(0,"TrendStart"); end;
if value11 > 0 then begin plot3( thold,"di+"); If Value11 > average(value11[1],2) then Plot4(0,"TrendStart") ; end;
FLOW OSCILLATOR
Inputs: M(10), LookBack(14); Plot1(-MO(M,LookBack),"FLOWOsc"); VARIABLE VOLATILITY STOPS INPUT: LENGTH (21), CONST(3.05);
vaR: SWITCH(1), TR(0), ARC(0), SAR(0),HISIC(0),LOSIC(0);
TR= VOLATILITY (LENGTH); ARC= TR* CONST; IF CURRENTbar = length then begin hisic=c; losic=c; if h>= xaverage (h,length-1) [1] then begin hisic= highest(c,length); Sar=hisic-arc; switch= 1; end; if l <= xaverage (l,length-1) [1] then begin losic= lowest (c,length); sar = losic +arc; switch=0; end; end;
if switch =1 then begin if c>hisic then hisic=c; sar=hisic - arc; if c< sar then begin switch=0; losic=c; sar = losic + arc; end;
end; if switch=0 then begin if c< losic then losic=c; sar= losic +arc; if c> sar then begin switch=1; hisic=c; saR=HISIC- ARC; END; END;
IF C > SAR { AND C[1] < SAR } THEN
Plot1(SAR,"Sell");
IF C < SAR { AND C[1] > SAR} THEN
Plot2(sar,"Buy");

SWING TRADER TRENDLINE
Inputs: Strength(5), TLAlrt("TRUE"), ColorCur(Tool_White), ShowHis("TRUE"), ColorHis(Tool_Magenta); Vars: TL3(0), TL4(0), TL3Val(0), HFlag(0), Count(0); Array: SwingHD[4](0), SwingHT[4](0), SwingHP[4](0);
IF SwingHighBar(1, High, Strength, Strength + 1) = Strength Then Begin Plot1[Strength](SwingHigh(1, High, Strength, Strength + 1), "SwingHigh"); For Count = 4 DownTo 2 Begin SwingHD[Count] = SwingHD[Count -1]; SwingHT[Count] = SwingHT[Count -1]; SwingHP[Count] = SwingHP[Count -1]; End; SwingHD[1] = Date[Strength]; SwingHT[1] = Time[Strength]; SwingHP[1] = High[Strength]; IF HFlag = -1 Then Begin IF UpperStr(ShowHis) = "TRUE" Then Begin TL3Val = TL_GetValue(TL3, SwingHD[1], SwingHT[1]); TL4 = TL_New(SwingHD[3], SwingHT[3], SwingHP[3], SwingHD[1], SwingHT[1], TL3Val); TL_SetColor(TL4, ColorHis); End; TL_Delete(TL3); End; HFlag = 1; End;
IF SwingHD[4] <> 0 AND HFlag = 1 Then Begin TL3 = TL_New(SwingHD[2], SwingHT[2], SwingHP[2], SwingHD[1], SwingHT[1], SwingHP[1]); TL_SetExtRight(TL3, True); TL_SetColor(TL3, ColorCur); IF UpperStr(TLAlrt) = "TRUE" Then TL_SetAlert(TL3, 1); HFlag = -1; End;

SWING WAVE INDICATOR
Vars: VLineUp(0),VLineDn(0),Highest(0),Lowest(0),JustChanged(FALSE),VLine(0);

Array: Highs[22](0),Lows[22](0),Range[22](0),UpWave[1](FALSE),DnWave[1](FALSE);
{MaxBarsBack = 21}
JustChanged = FALSE;
if CurrentBar <= 21 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; Range[CurrentBar] = (High - Low) /2; end;
if CurrentBar = 22 then begin if Highs[21] >= Highs[20] then begin UpWave[1] = TRUE; Highest = Highs[21]; VLineUp = Highest - (3 * Average((High - Low),21)); Plot1(VLineUp,"VLineUp"); end;

if Highs[21] < Highs[20] then begin DnWave[1] = TRUE; Lowest = Lows[21]; VLineDn = Lowest + (3 * Average((High - Low),21)); Plot2(VLineDn,"VLineDn"); end; end;
if CurrentBar > 22 then begin



if DnWave[1] and Close > VLineDn then begin {WAVE CHANGE} DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; Highest = Close; Lowest = 0; end;
if UpWave[1] and Close < VLineUp and JustChanged = FALSE then begin {WAVE CHANGE} UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; Lowest = Close; Highest = 0; end;

if JustChanged = FALSE then begin if Close > Highest then Highest = Close else if Close < Lowest then Lowest = Close; end;
{CALCULATIONS AND PLOT STATMENTS} VLineUp = Highest - (3 * Average((High - Low),21)); VLineDn = Lowest + (3 * Average((High - Low),21));
if UpWave[1] then Plot1(VLineUp,"VLineUp") else if DnWave[1] then Plot2(VLineDn,"VLineDn");
end;



SYSTEMS


Dual time frame moving average


Inputs: Price(Close), Length(13);
IF XAverage(Price,Length) > XAverage(Price,Length)[1] and XAverage(Price,Length) of data2 > XAverage(Price,Length)[1] of data2 then Buy this bar on Close;
IF XAverage(Price,Length) < XAverage(Price,Length)[1] then ExitLong this bar on Close;
IF XAverage(Price,Length) < XAverage(Price,Length)[1] and XAverage(Price,Length) of data2 < XAverage(Price,Length)[1] of data2 then Sell this bar on Close;

Delayed Channel Breakout


{
This Breakout system will only enter if we have waited "X_Bars" after a Breakout and we are still above/below the BO price. } Input:Len(13),X_Bar(6); vars:HighBO(false),LowBO(false),x(0),HighBOPrice(0),LowBOPrice(0);
HighBOPrice = Highest(high,Len)[1]; LowBOPrice = Lowest(low,Len)[1];
HighBO = high > HighBOPrice; LowBO = low < LowBOPrice;
if HighBO[X_Bar] then Buy at HighBOPrice[X_Bar] + 1 point stop; if LowBO[X_Bar] then Sell at LowBOPrice[X_Bar] - 1 point stop;

True Range Breakout

Input:Period(20);
Condition1=range < Average(range,Period);
{LongEntry} If Condition1 then Buy at Open of tomorrow + range Stop;


{ShortEntry} If Condition1 then Sell at Open of tomorrow - range Stop;

Divergence

Input: Osc(RSI(Close,14)); IF BullishDivergence(Close,Osc,2,30) = 1 Then Buy Highest(High,5) + 1 point Stop; IF BearishDivergence(Close,Osc,2,30) = 1 Then Sell Lowest(Low,5) - 1 point Stop;


R OSCILLATOR


Input: AvgLen(30),PrctRLen(10),BuyLvl(20),SellLvl(80); IF CurrentBar > 1 and Average(Close,AvgLen) > Average(Close,AvgLen)[1] and PercentR(PrctRLen) < BuyLvl Then Buy on Close; IF CurrentBar > 1 and Average(Close,AvgLen) < Average(Close,AvgLen)[1] and PercentR(PrctRLen) > SellLvl Then Sell on Close; Turtle Inputs:EntryLen(20),ExitLen(10);
If Close > Highest(Close,EntryLen)[1] then buy( "LEntry") on Close; If Close < Lowest(Close,EntryLen)[1] then Sell("SEntry") on Close;
If Close > Highest(Close,ExitLen)[1] then ExitShort from entry( "SEntry") on Close; If Close < Lowest(Close,EntryLen)[1] then ExitLong from entry("LEntry") on Close;


VOLATILITY REVERSALS

Input: lkbk(5), Ent(.65);
Value1 = Ent * AvgTrueRange(lkbk);
{Long Entries} Buy next bar at Open of next bar + Value1 stop;

{Short Entries} Sell next bar at Open of next bar - Value1 stop;



_____________________________________
Warm Regards!
Visavis _____________________________________