Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
LibA.afl for Amibroker (AFL)
Copy & Paste Friendly
Back
//libA.afl
//3 jan 2011
#include_once <Pebslib.afl>;
function S_SMA( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = MA( ttt, fastn );
bbb = MA( ttt, slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_TSF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = TSF( ttt, fastn );
bbb = TSF( ttt, slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_KAMA( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
aaa = kaMA( 20, 2, fastn );
bbb = kaMA( 20, 2, slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HULL( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = Hullma( ttt, fastn, 0 );
bbb = Hullma( ttt, slown, 0 );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_BRKEMA( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
aaa = BRKEMA( fastn );
bbb = BRKEMA( slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_BRKEMA2( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
aaa = BRKEMA2( fastn );
bbb = BRKEMA2( slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_BRKEMA3( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
aaa = BRKEMA3( fastn );
bbb = BRKEMA3( slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_BRKEMA4( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
aaa = BRKEMA4( fastn );
bbb = BRKEMA4( slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_FRAMA( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
aaa = FRAMA( fastn );
bbb = FRAMA( slown );
Buysignal = ( aaa >= bbb );
Sellsignal = ( aaa < bbb );
Shortsignal = ( aaa < bbb );
Coversignal = ( aaa >= bbb );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_SMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = MA( ttt, fastn );
bbb = MA( ttt, slown );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_TSF_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = TSF( ttt, fastn );
bbb = TSF( ttt, slown );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_FRAMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = FRAMA( fastn );
bbb = FRAMA( slown );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_FRAMA_CONF_SMB( fastn, slown, Closingtime, symbol )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Ooo = Foreign( symbol, "Open" );
Hhh = Foreign( symbol, "High" );
Lll = Foreign( symbol, "Low" );
Ccc = Foreign( symbol, "Close" );
ttt = ( Ooo + Hhh + Lll + Ccc ) / 4;
aaa = FRAMA_SMB( fastn, symbol );
bbb = FRAMA_SMB( slown, symbol );
Buysignal = ( aaa >= bbb ) AND ( Ccc > ValueWhen( Cross( aaa, bbb ), Max( Ooo, Ccc ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Ccc < ValueWhen( Cross( bbb, aaa ), Min( Ooo, Ccc ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Ccc < ValueWhen( Cross( bbb, aaa ), Min( Ooo, Ccc ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Ccc > ValueWhen( Cross( aaa, bbb ), Max( Ooo, Ccc ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_KAMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = kaMA( 20, 2, fastn );
bbb = kaMA( 20, 2, slown );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HULL_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = Hullma( ttt, fastn, 0 );
bbb = Hullma( ttt, slown, 0 );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HULL_CONF_MaxGAP( fastn, slown, Closingtime, gap )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = Hullma( ttt, fastn, 0 );
bbb = Hullma( ttt, slown, 0 );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) ) AND ( aaa <= ( 1 + gap ) * bbb );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) ) AND ( aaa >= ( 1 - gap ) * aaa );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HULL_BRKEMA_CONF( fastn, slown, Closingtime, BRKn )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = brkema( BRKn );
aaa = Hullma( ttt, fastn, 0 );
bbb = Hullma( ttt, slown, 0 );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function HIn()
{
for ( Herhaling = 0;Herhaling < BarCount;Herhaling++ )
{
Herhaling2 = Herhaling;
do
{
Herhaling2--;
}
while ( ( Herhaling2 > 0 ) AND ( H[Herhaling2] < H[Herhaling] ) );
nnn[Herhaling] = Herhaling - Herhaling2;
}
return nnn;
}
function HIn_SMB( symbol )
{
Hhh = Foreign( symbol, "High" );
for ( Herhaling = 0;Herhaling < BarCount;Herhaling++ )
{
Herhaling2 = Herhaling;
do
{
Herhaling2--;
}
while ( ( Herhaling2 > 0 ) AND ( Hhh[Herhaling2] < Hhh[Herhaling] ) );
nnn[Herhaling] = Herhaling - Herhaling2;
}
return nnn;
}
function LOn()
{
for ( Herhaling = 0;Herhaling < BarCount;Herhaling++ )
{
Herhaling2 = Herhaling;
do
{
Herhaling2--;
}
while ( ( Herhaling2 > 0 ) AND ( L[Herhaling2] > L[Herhaling] ) );
nnn[Herhaling] = Herhaling - Herhaling2;
}
return nnn;
}
function LOn_SMB( symbol )
{
Lll = Foreign( symbol, "Low" );
for ( Herhaling = 0;Herhaling < BarCount;Herhaling++ )
{
Herhaling2 = Herhaling;
do
{
Herhaling2--;
}
while ( ( Herhaling2 > 0 ) AND ( Lll[Herhaling2] > Lll[Herhaling] ) );
nnn[Herhaling] = Herhaling - Herhaling2;
}
return nnn;
}
function MAjorpeak( n )
{
Hhh = HIn();
xxx = ValueWhen( ( ( Hhh >= n ) AND ( Hhh >= Ref( Hhh, -1 ) ) AND ( Hhh >= Ref( Hhh, -1 ) ) ), H, 1 );
return xxx;
}
function MAjorpeak_SMB( n, symbol )
{
Hhh = HIn_SMB( symbol );
xxx = ValueWhen( ( ( Hhh >= n ) AND ( Hhh >= Ref( Hhh, -1 ) ) AND ( Hhh >= Ref( Hhh, -1 ) ) ), H, 1 );
return xxx;
}
function MAjorlow( n )
{
Lll = Lon();
xxx = ValueWhen( ( ( Lll >= n ) AND ( Lll >= Ref( Lll, -1 ) ) AND ( Lll >= Ref( Lll, -1 ) ) ), L, 1 );
return xxx;
}
function MAjorlow_SMB( n, symbol )
{
Lll = Lon_SMB( symbol );
xxx = ValueWhen( ( ( Lll >= n ) AND ( Lll >= Ref( Lll, -1 ) ) AND ( Lll >= Ref( Lll, -1 ) ) ), L, 1 );
return xxx;
}
function MAjorpeakAbove( n, X )
{
Hhh = HIn();
xxx = ValueWhen( ( ( H > X ) AND ( Hhh >= n ) AND ( Hhh >= Ref( Hhh, -1 ) ) AND ( Hhh >= Ref( Hhh, -1 ) ) ), H, 1 );
return xxx;
}
function MAjorlowbelow( n, X )
{
Lll = Lon();
xxx = ValueWhen( ( ( L < X ) AND ( Lll >= n ) AND ( Lll >= Ref( Lll, -1 ) ) AND ( Lll >= Ref( Lll, -1 ) ) ), L, 1 );
return xxx;
}
function MAjorpeakpotential( n )
{
xxx = MAjorpeakabove( n, MAjorpeak( n ) ) - MAjorpeak( n );
return xxx;
}
function MAjorlowpotential( n )
{
xxx = MAjorlowbelow( n, MAjorlow( n ) ) - MAjorlow( n );
return xxx;
}
function TradingATR()
{
TimeFrameSet( inDaily );
aaa = ATR( 10 );
TimeFrameRestore();
aaa = TimeFrameExpand( aaa, inDaily );
return aaa;
}
function Varema( Varn )
{
ttt = tradingatr();
xxx = int( ( 1000 - ttt ) / Varn );
xxx = IIf( xxx > 100, 100, IIf( xxx < 10, 10, xxx ) );
eee = AMA( ( O + H + L + C ) / 4, 2 / xxx );
return eee;
}
function Onesidedness()
{
TimeFrameSet( inHourly );
xxx = BarsSince( Cross( C, EMA( C, 85 ) ) OR Cross( EMA( C, 85 ), C ) );
TimeFrameRestore();
xxx = TimeFrameExpand( xxx, inHourly );
return xxx;
}
function s_hilobrk( n, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Hhh = MAjorpeak( n );
LLL = MAjorlow( n );
Buysignal = C > Ref( Hhh, -1 );
Sellsignal = C < Ref( LLL, -1 );
Shortsignal = C < Ref( LLL, -1 );
Coversignal = C > Ref( Hhh, -1 );
//Buysignal = ExRem(Buysignal,Shortsignal);
//Shortsignal = ExRem(Shortsignal,Buysignal);
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
xxx = Longstate * 1 + Shortstate * ( -1 );
Totalstate = Ref( xxx, -xxxdelay );
return totalstate;
}
function s_hilobrk_smb( n, Closingtime, symbol )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Hhh = MAjorpeak_SMB( n, symbol );
LLL = MAjorlow_SMB( n, symbol );
Buysignal = C > Ref( Hhh, -1 );
Sellsignal = C < Ref( LLL, -1 );
Shortsignal = C < Ref( LLL, -1 );
Coversignal = C > Ref( Hhh, -1 );
//Buysignal = ExRem(Buysignal,Shortsignal);
//Shortsignal = ExRem(Shortsignal,Buysignal);
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
xxx = Longstate * 1 + Shortstate * ( -1 );
Totalstate = Ref( xxx, -xxxdelay );
return totalstate;
}
function ContextZone_60()
{
Conzone = 0;
TimeFrameSet( inHourly );
ult = xxx_ult();
TimeFrameRestore();
ult = TimeFrameExpand( ult, inHourly );
band1 = Param( "band1", 600, 0, 2000, 1 );
band2 = Param( "band2", 250, 0, 2000, 1 );
band3 = Param( "band3", 250, 0, 2000, 1 );
eee = EMA60( 85 );
for ( i = 1; i < BarCount; i++ )
{
if ( ( C[i-1] > eee[i-1] + band1 )*( ult[i] > 0 ) )
Conzone[i] = 1;
else
if ( ( C[i-1] > eee[i-1] + band2 )*( ult[i] > 0 ) )
Conzone[i] = 2;
else
if ( ( C[i-1] > eee[i-1] )*( ult[i] > 0 ) )
Conzone[i] = 3;
else
if ( ( C[i-1] > eee[i-1] - band3 )*( ult[i] > 0 ) )
Conzone[i] = 4;
else
if ( ult[i] > 0 )
Conzone[i] = 5;
else
if ( ( C[i-1] < eee[i-1] - band1 )*( ult[i] < 0 ) )
Conzone[i] = -1;
else
if ( ( C[i-1] < eee[i-1] - band2 )*( ult[i] < 0 ) )
Conzone[i] = -2;
else
if ( ( C[i-1] < eee[i-1] )*( ult[i] < 0 ) )
Conzone[i] = -3;
else
if ( ( C[i-1] < eee[i-1] + band3 )*( ult[i] < 0 ) )
Conzone[i] = -4;
else
if ( ult[i] < 0 )
Conzone[i] = -5;
}
return Conzone;
}
function Contextfilter_60( s1 )
{
Ccc = Contextzone_60();
for ( i = 0; i < BarCount; i++ )
{
if ( Ccc[i] == 1 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
if ( Ccc[i] == 2 )
{
if ( ( s1[i] > 0 )AND( s1[i-1] < 0 ) )
s1[i] = 0;
if ( ( s1[i-1] >= 0 ) AND ( s1[i] > s1[i-1] ) )
s1[i] = s1[i-1];
}
if ( Ccc[i] == 4 )
{
if ( ( s1[i-1] <= 0 ) AND ( s1[i] < s1[i-1] ) )
s1[i] = s1[i-1];
if ( ( s1[i] < 0 ) AND ( s1[i-1] > 0 ) )
s1[i] = 0;
}
if ( Ccc[i] == 5 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
//now bearish scenario
if ( Ccc[i] == -1 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
if ( Ccc[i] == -2 )
{
if ( ( s1[i] < 0 )AND( s1[i-1] > 0 ) )
s1[i] = 0;
if ( ( s1[i-1] <= 0 ) AND ( s1[i] < s1[i-1] ) )
s1[i] = s1[i-1];
}
if ( Ccc[i] == -4 )
{
if ( ( s1[i-1] >= 0 ) AND ( s1[i] > s1[i-1] ) )
s1[i] = s1[i-1];
if ( ( s1[i] > 0 ) AND ( s1[i-1] < 0 ) )
s1[i] = 0;
}
if ( Ccc[i] == -5 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function Contextfilter2_60( s1 )
{
Ccc = Contextzone_60();
for ( i = 0; i < BarCount; i++ )
{
//now in cz=1 or 2 do not allow number of contracts to be reduced or shorts to be increasedd
if ( Ccc[i] == 1 )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
if ( s1[i] > 0 )
s1[i] = 0;
}
if ( Ccc[i] == 2 )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
if ( ( s1[i] > 0 )AND( s1[i-1] < 0 ) )
s1[i] = 0;
if ( ( s1[i-1] >= 0 ) AND ( s1[i] > s1[i-1] ) )
s1[i] = s1[i-1];
}
if ( Ccc[i] == 4 )
{
if ( ( s1[i-1] <= 0 ) AND ( s1[i] < s1[i-1] ) )
s1[i] = s1[i-1];
if ( ( s1[i] < 0 ) AND ( s1[i-1] > 0 ) )
s1[i] = 0;
}
if ( Ccc[i] == 5 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
//now bearish scenario
//now in cz=-1 or -2 do not allow number of contracts to be increased or shorts to be reduced
if ( Ccc[i] == -1 )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
if ( s1[i] < 0 )
s1[i] = 0;
}
if ( Ccc[i] == -2 )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
if ( ( s1[i] < 0 )AND( s1[i-1] > 0 ) )
s1[i] = 0;
if ( ( s1[i-1] <= 0 ) AND ( s1[i] < s1[i-1] ) )
s1[i] = s1[i-1];
}
if ( Ccc[i] == -4 )
{
if ( ( s1[i-1] >= 0 ) AND ( s1[i] > s1[i-1] ) )
s1[i] = s1[i-1];
if ( ( s1[i] > 0 ) AND ( s1[i-1] < 0 ) )
s1[i] = 0;
}
if ( Ccc[i] == -5 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function CreateEquityCurve( S1, PointValue )
{
Cashflow = IIf( IsNull( Ref( s1, -1 ) ), -s1 * Open, ( Ref( s1, -1 ) - s1 ) * Open );
Cumcashflow = Cum( Cashflow );
Valuecontracts = s1 * Close;
PortEquity = ( cumCashflow + Valuecontracts ) * PointValue;
//YestEquity= ValueWhen(Day()!=Ref(Day(),-1),Ref(PortEquity,-1),1);
//MonthstartEquity = ValueWhen(Month()!=Ref(Month(),-1),Ref(PortEquity,-1),1);
//TradeEquity = portequity-ValueWhen( sign(s1)!=sign(Ref(s1,-1)),Ref(s1,-1),1);
s2 = portequity;
return s2;
}
function BRKContextZone()
{
z1 = Param( "z1", 0.05, 0.01, 0.4, 0.05 );
z2 = Param( "z2", 0.05, 0.01, 0.4, 0.05 );
Conzone = 0;
TimeFrameSet( inHourly );
rrrtop = MAjorpeak( 200 );
rrrbottom = MAjorlow( 200 );
TimeFrameRestore();
rrrtop = TimeFrameExpand( rrrtop, inHourly );
rrrbottom = TimeFrameExpand( rrrbottom, inHourly );
band1 = rrrbottom + ( 1 - z1 ) * ( rrrtop - rrrbottom );
band2 = rrrbottom + ( 1 - z2 ) * ( rrrtop - rrrbottom );
band3 = rrrbottom + z2 * ( rrrtop - rrrbottom );
band4 = rrrbottom + z1 * ( rrrtop - rrrbottom );
for ( i = 1; i < BarCount; i++ )
{
if ( C[i-1] > band1[i-1] )
Conzone[i] = 1;
else
if ( C[i-1] > band2[i-1] )
Conzone[i] = 2;
else
if ( C[i-1] < band4[i-1] )
Conzone[i] = 5;
else
if ( C[i-1] < band3[i-1] )
Conzone[i] = 4;
else
Conzone[i] = 3;
}
return Conzone;
}
function BRKContextfilter( s1 )
{
Ccc = BRKContextzone();
for ( i = 0; i < BarCount; i++ )
{
if ( Ccc[i] == 1 )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
}
if ( Ccc[i] == 2 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
if ( Ccc[i] == 5 )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
}
if ( Ccc[i] == 4 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function PebsRVI()
{
//own modified "RVI" type indicator
periods = Param( "RVI Periods", 14, 1, 200, 1 );
SdevPer = Param( "STD Deviation periods", 10, 1, 200, 1 );
StH = StDev( H, SdevPer );
StL = StDev( L, SdevPer );
RVIDownH[0] = 0;
RVIUpH[0] = 0;
RVIDownL[0] = 0;
RVIUpL[0] = 0;
for ( i = 1;i < BarCount;i++ )
{
RVIDownH[i] = ( ( RVIDownH[i-1] * ( periods - 1 ) ) + IIf( H[i] < H[i-1], Nz( StH[i] ), 0 ) ) / Periods;
RVIUpH[i] = ( ( RVIUpH[i-1] * ( periods - 1 ) ) + IIf( H[i] > H[i-1], Nz( StH[i] ), 0 ) ) / Periods;
RVIDownL[i] = ( ( RVIDownL[i-1] * ( periods - 1 ) ) + IIf( L[i] < L[i-1], Nz( StL[i] ), 0 ) ) / Periods;
RVIUpL[i] = ( ( RVIUpL[i-1] * ( periods - 1 ) ) + IIf( L[i] > L[i-1], Nz( StL[i] ), 0 ) ) / Periods;
}
RVIH = ( 100 * RVIUpH ) / ( RVIUpH + RVIDownH );
RVIL = ( 100 * RVIUpL ) / ( RVIUpL + RVIDownL );
RVIall = ( RVIL + RVIH ) / 2;
return RVIall;
}
function HenkRVI()
{
Periods = Param( "RVI Periods", 30, -50, 200 );
StdevPeriod = Param( "Stdev Periods", 10, -50, 200 );
ArrayRocHigh = ROC( H, 1 );
ArrayRocLow = ROC( L, 1 );
ArrayStdevHigh = StDev( H, StdevPeriod );
ArrayStdevLow = StDev( L, StdevPeriod );
ArrayRVI[StDevPeriod-1] = 50;
for ( i = StdevPeriod;i < BarCount;i++ )
{
Prev = ArrayRVI[i-1];
factor = PREV * ( Periods - 1 );
DownH = IIf( ArrayRocHigh[i] < 0, ArrayStdevHigh[i], 0 );
UpH = IIf( ArrayRocHigh[i] > 0, ArrayStdevHigh[i], 0 );
RVIDownH = ( factor + DownH ) / Periods;
RVIUpH = ( factor + UpH ) / Periods;
RVIH = ( 100 * RVIUpH ) / ( RVIUpH + RVIDownH );
DownL = IIf( ArrayRocLow[i] < 0, ArrayStdevHigh[i], 0 );
UpL = IIf( ArrayRocLow[i] > 0, ArrayStdevHigh[i], 0 );
RVIDownL = ( factor + DownL ) / Periods;
RVIUpL = ( factor + UpL ) / Periods;
RVIL = ( 100 * RVIUpL ) / ( RVIUpL + RVIDownL );
RVIall = ( RVIL + RVIH ) / 2;
ArrayRVI[i] = RVIH;
}
return ArrayRVI;
}
function TradeEquityCurve( s1, pvalue )
{
e1 = CreateEquitycurve( s1, pvalue );
//YestEquity= ValueWhen(Day()!=Ref(Day(),-1),Ref(PortEquity,-1),1);
//MonthstartEquity = ValueWhen(Month()!=Ref(Month(),-1),Ref(PortEquity,-1),1);
TradeEquity = e1 - ValueWhen( sign( s1 ) != sign( Ref( s1, -1 ) ), Ref( e1, -1 ), 1 );
return TradeEquity;
}
function DayEquityCurve( s1, pvalue )
{
e1 = CreateEquitycurve( s1, pvalue );
//YestEquity= ValueWhen(Day()!=Ref(Day(),-1),Ref(PortEquity,-1),1);
//MonthstartEquity = ValueWhen(Month()!=Ref(Month(),-1),Ref(PortEquity,-1),1);
DayEquity = e1 - ValueWhen( Day() != Ref( Day(), -1 ), Ref( e1, -1 ), 1 );
return DayEquity;
}
function MonthEquityCurve( s1, pvalue )
{
e1 = CreateEquitycurve( s1, pvalue );
//YestEquity= ValueWhen(Day()!=Ref(Day(),-1),Ref(PortEquity,-1),1);
//MonthstartEquity = ValueWhen(Month()!=Ref(Month(),-1),Ref(PortEquity,-1),1);
MonthEquity = e1 - ValueWhen( Month() != Ref( Month(), -1 ), Ref( e1, -1 ), 1 );
return MonthEquity;
}
function TradeSLSP( s1, Pvalue, SL, SP, firststoptime, Laststoptime, Lastticktime )
{
//THis takes series s1 of pos sizes and applies a Stoploss and stopprofit per trade, pvalue is the pointvalue, stops only applied within the time limits
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Lastticktime );
TradeEquity = TradeEquityCurve( s1, pvalue );
newtrade = IIf( ( abs( s1 ) != 0 ) AND ( s1 * Ref( s1, -1 ) <= 0 ), True, False );
profitstop = IIf( ( Ref( TradeEquity, -xxxdelay ) >= SP ) AND ( pebstime >= firststoptime ) AND ( pebstime <= Laststoptime ), True, False );
Losstop = IIf( ( Ref( TradeEquity, -xxxdelay ) <= -SL ) AND ( pebstime >= firststoptime ) AND ( pebstime <= Laststoptime ), True, False );
mult = Flip( newtrade, ( profitstop OR Losstop ) AND NOT newtrade );
//s2=s1;
s2 = s1 * mult;
return s2;
}
function DaySLSP( s1, Pvalue, SL, SP, firststoptime, Laststoptime, Lastticktime )
{
//THis takes series s1 of pos sizes and applies a Stoploss and stopprofit per day, pvalue is the pointvalue, stops only applied within the time limits
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Lastticktime );
DayEquity = DayEquityCurve( s1, pvalue );
newDay = IIf( Day() != Ref( Day(), -1 ), True, False );
newDay[0] = True;
profitstop = IIf( ( Ref( DayEquity, -xxxdelay ) >= SP ) AND ( pebstime >= firststoptime ) AND ( pebstime <= Laststoptime ), True, False );
Losstop = IIf( ( Ref( DayEquity, -xxxdelay ) <= -SL ) AND ( pebstime >= firststoptime ) AND ( pebstime <= Laststoptime ), True, False );
mult = Flip( newDay, ( profitstop OR Losstop ) AND NOT newDay );
//s2=s1;
s2 = s1 * mult;
return s2;
}
function MonthSLSP( s1, Pvalue, SL, SP, firststoptime, Laststoptime, Lastticktime )
{
//THis takes series s1 of pos sizes and applies a Stoploss and stopprofit per day, pvalue is the pointvalue, stops only applied within the time limits
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Lastticktime );
MonthEquity = MonthEquityCurve( s1, pvalue );
newMonth = IIf( Month() != Ref( Month(), -1 ), True, False );
newMonth[0] = True;
profitstop = IIf( ( Ref( MonthEquity, -xxxdelay ) >= SP ) AND ( pebstime >= firststoptime ) AND ( pebstime <= Laststoptime ), True, False );
Losstop = IIf( ( Ref( MonthEquity, -xxxdelay ) <= -SL ) AND ( pebstime >= firststoptime ) AND ( pebstime <= Laststoptime ), True, False );
mult = Flip( newMonth, ( profitstop OR Losstop ) AND NOT newMonth );
//s2=s1;
s2 = s1 * mult;
return s2;
}