Тексты индикаторов в формате Indicator Builder пакета MetaStok, страница 2

(If(CLOSE>OPEN,1,0) * (If(Fml("body")<= Fml("ThBot_b" ) ,80,0) +If(Fml("body")> Fml("ThBot_b" ) AND Fml("body") <= Fml("ThTop_b" ) ,96,0)+If(Fml("body")> Fml("ThTop_b" ),112,0)) + If(CLOSE<OPEN,1,0) * ( If(Fml("body")<= Fml("ThBot_b" ) ,32,0) + If(Fml("body")> Fml("ThBot_b" ) AND Fml("body") <= Fml("ThTop_b" ),16,0)))

CandleCode-l

If(Fml("lshd") = 0,3,0)+If(Fml("lshd") <=Fml("ThBot_l" )AND Fml("lshd")>0,2,0)+

If(Fml("lshd")> Fml("ThBot_l" ) AND Fml("lshd")<= Fml("ThTop_l" ) AND Fml("lshd")>0,1,0)

CandleCode-u

If(Fml("ushd")>0 AND Fml("ushd")<= Fml("ThBot_u" ) ,4,0)+If( Fml("ushd")> Fml("ThBot_u" ) AND Fml( "ushd")<= Fml("ThTop_u" ) ,8,0)+If(Fml( "ushd" )> Fml("ThTop_u" ),12,0)

Результирующее значение CandleCode есть сумма трех вычисленных:

CandlCode

Fml( "CandleCode-b" ) + Fml( "CandleCode-l" ) + Fml( "CandleCode-u" )

Для получения хорошо работающих индикаторов следует выполнить сглаживание CandleCode. Во многих задачах полезным оказывается CandleCode, сглаженный с помощью оператора трехкратного усреднения

Triplet

Periods:=Input("Enter Periods for Triplet",2,13,2);

Mov( Mov( Mov(P, Periods, S), Periods, S), Periods, S)

CandleWeight

Симметричный вариант CandleCode (индикатор из статьи в S&C March 2001):

If(CLOSE=OPEN,1,0)* If(Fml("ushd")>=Fml("lshd"),64,-64) +

If(CLOSE=OPEN,0,1) *

If(CLOSE>OPEN,1,-1) * (If(Fml("body")<= Fml("ThBot_b" ) ,80,0) +If(Fml("body")> Fml("ThBot_b" ) AND Fml("body") <= Fml("ThTop_b" ) ,96,0)+If(Fml("body")> Fml("ThTop_b" ),112,0)) +

+ If(CLOSE>=OPEN,-4,4)*(

If(Fml("lshd") = 0,3,0)+If(Fml("lshd") <=Fml("ThBot_l" ) AND Fml("lshd")>0,2,0)+

If(Fml("lshd")> Fml("ThBot_l" )   AND Fml("lshd")<= Fml("ThTop_l" ) AND Fml("lshd")>0,1,0) )+

If(CLOSE>=OPEN,1,-1)*(

If(Fml("ushd")>0 AND Fml("ushd")<= Fml("ThBot_u" ) ,4,0)+If( Fml("ushd")> Fml("ThBot_u" ) AND Fml( "ushd")<= Fml("ThTop_u" ) ,8,0)+If(Fml( "ushd" )> Fml("ThTop_u" ),12,0) )

AdCC – настраиваемый индикатор CandleCode

(из статьи в S&C Oct 2001)

UpshadSize

If(Fml("ushd")>0 AND Fml("ushd")<= Fml("ThBot_u" ) ,1,0)+If( Fml("ushd")> Fml("ThBot_u" ) AND Fml( "ushd")<= Fml("ThTop_u" ) ,2,0)+If(Fml( "ushd" )> Fml("ThTop_u" ),3,0)

BodySize

If(CLOSE=OPEN,0,1) * If(CLOSE>OPEN,1,-1) * (If(Fml("body")<= Fml("ThBot_b" ) ,1,0) +If(Fml("body")> Fml("ThBot_b" ) AND Fml("body") <= Fml("ThTop_b" ) ,2,0)+If(Fml("body")> Fml("ThTop_b" ),3,0))

LshadSize

If(Fml("lshd")>0 AND Fml("lshd")<= Fml("ThBot_l" ) ,-1,0)+If( Fml("lshd")> Fml("ThBot_l" ) AND Fml( "lshd")<= Fml("ThTop_l" ) ,-2,0)+If(Fml( "lshd" )> Fml("ThTop_l" ),-3,0)

AdCC

B:=Input("Body weight", 0.01, 0.98, 0.33);

U:= Input("Upshad weight", 0.01, 0.98, 0.33);

Lo:=Input("Lshad weight", 0.01, 0.98, 0.33);

B*Fml("BodySize" ) + U*Fml( "UpshadSize" ) + Lo*Fml("LshadSize")