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 ....
Pebslib.afl for Amibroker (AFL)
Copy & Paste Friendly
Back
//Pebslib.afl
//3 Jan 2011
function XXX_ST()
{
e1 = EMA( C, 3 );
e2 = EMA( C, 5 );
e3 = EMA( C, 8 );
e4 = EMA( C, 10 );
e5 = EMA( C, 12 );
e6 = EMA( C, 15 );
rrr = ( e1 - e2 ) ^ 2 + ( e2 - e3 ) ^ 2 + ( e3 - e4 ) ^ 2 + ( e4 - e5 ) ^ 2 + ( e5 - e6 ) ^ 2;
rrr = rrr / ( ATR( 100 ) / 100 ) ^ 2;
rrr = rrr * IIf( e3 > e4, 1, -1 );
return rrr;
}
function XXX_LT()
{
e1 = EMA( C, 30 );
e2 = EMA( C, 35 );
e3 = EMA( C, 40 );
e4 = EMA( C, 45 );
e5 = EMA( C, 50 );
e6 = EMA( C, 60 );
sss = ( e1 - e2 ) ^ 2 + ( e2 - e3 ) ^ 2 + ( e3 - e4 ) ^ 2 + ( e4 - e5 ) ^ 2 + ( e5 - e6 ) ^ 2;
sss = sss / ( ATR( 100 ) / 100 ) ^ 2;
sss = sss * IIf( e3 > e4, 1, -1 );
return sss;
}
function XXX_ULT()
{
e1 = EMA( C, 60 );
e2 = EMA( C, 70 );
e3 = EMA( C, 80 );
e4 = EMA( C, 90 );
e5 = EMA( C, 100 );
e6 = EMA( C, 120 );
ttt = ( e1 - e2 ) ^ 2 + ( e2 - e3 ) ^ 2 + ( e3 - e4 ) ^ 2 + ( e4 - e5 ) ^ 2 + ( e5 - e6 ) ^ 2;
ttt = ttt / ( ATR( 100 ) / 100 ) ^ 2;
ttt = ttt * IIf( e3 > e4, 1, -1 );
return ttt;
}
function XXX_ULT60()
{
TimeFrameSet( inHourly );
e1 = EMA( C, 60 );
e2 = EMA( C, 70 );
e3 = EMA( C, 80 );
e4 = EMA( C, 90 );
e5 = EMA( C, 100 );
e6 = EMA( C, 120 );
aaa = ATR( 100 );
TimeFrameRestore();
e1 = TimeFrameExpand( e1, inHourly );
e2 = TimeFrameExpand( e2, inHourly );
e3 = TimeFrameExpand( e3, inHourly );
e4 = TimeFrameExpand( e4, inHourly );
e5 = TimeFrameExpand( e5, inHourly );
e6 = TimeFrameExpand( e6, inHourly );
aaa = TimeFrameExpand( aaa, inHourly );
e1 = e1 * 59 / 61 + C * 2 / 61;
e2 = e2 * 69 / 71 + C * 2 / 71;
e3 = e3 * 79 / 81 + C * 2 / 81;
e4 = e4 * 89 / 91 + C * 2 / 91;
e5 = e5 * 99 / 101 + C * 2 / 101;
e6 = e6 * 119 / 121 + C * 2 / 121;
ttt = ( e1 - e2 ) ^ 2 + ( e2 - e3 ) ^ 2 + ( e3 - e4 ) ^ 2 + ( e4 - e5 ) ^ 2 + ( e5 - e6 ) ^ 2;
ttt = ttt / ( aaa / 100 ) ^ 2;
ttt = ttt * IIf( e3 > e4, 1, -1 );
return ttt;
}
function XXX_LT60()
{
TimeFrameSet( inHourly );
e1 = EMA( C, 30 );
e2 = EMA( C, 35 );
e3 = EMA( C, 40 );
e4 = EMA( C, 45 );
e5 = EMA( C, 50 );
e6 = EMA( C, 60 );
aaa = ATR( 100 );
TimeFrameRestore();
e1 = TimeFrameExpand( e1, inHourly );
e2 = TimeFrameExpand( e2, inHourly );
e3 = TimeFrameExpand( e3, inHourly );
e4 = TimeFrameExpand( e4, inHourly );
e5 = TimeFrameExpand( e5, inHourly );
e6 = TimeFrameExpand( e6, inHourly );
aaa = TimeFrameExpand( aaa, inHourly );
e1 = e1 * 29 / 31 + C * 2 / 31;
e2 = e2 * 34 / 36 + C * 2 / 36;
e3 = e3 * 39 / 41 + C * 2 / 41;
e4 = e4 * 44 / 46 + C * 2 / 46;
e5 = e5 * 49 / 51 + C * 2 / 51;
e6 = e6 * 59 / 61 + C * 2 / 61;
ttt = ( e1 - e2 ) ^ 2 + ( e2 - e3 ) ^ 2 + ( e3 - e4 ) ^ 2 + ( e4 - e5 ) ^ 2 + ( e5 - e6 ) ^ 2;
ttt = ttt / ( aaa / 100 ) ^ 2;
ttt = ttt * IIf( e3 > e4, 1, -1 );
return ttt;
}
function EMAdaily( n )
{
TimeFrameSet( inDaily );
eee = EMA( C, n );
TimeFrameRestore();
eee = TimeFrameExpand( eee, inDaily );
eee = ( n - 1 ) / ( n + 1 ) * eee + 2 / ( n + 1 ) * C;
return eee;
}
function EMA30( n )
{
TimeFrameSet( 2*in15Minute );
e1 = EMA( C, n );
TimeFrameRestore();
e1 = TimeFrameExpand( e1, 2 * in15Minute );
e1 = e1 * ( n - 1 ) / ( n + 1 ) + C * 2 / ( n + 1 );
return e1;
}
function EMA60( n )
{
TimeFrameSet( inHourly );
ttt = C; //ParamField("Field");
e1 = EMA( ttt, n );
TimeFrameRestore();
e1 = TimeFrameExpand( e1, inHourly );
e1 = e1 * ( n - 1 ) / ( n + 1 ) + ttt * 2 / ( n + 1 );
return e1;
}
function Signal60()
{
TimeFrameSet( inHourly );
eee12 = EMA( C, 12 );
eee26 = EMA( C, 26 );
sss9 = EMA( eee12 - eee26, 9 );
TimeFrameRestore();
eee12 = TimeFrameExpand( eee12, inHourly );
eee26 = TimeFrameExpand( eee26, inHourly );
sss9 = TimeFrameExpand( sss9, inHourly );
eee12 = ( 11 / 13 ) * eee12 + ( 2 / 13 ) * C;
eee26 = ( 25 / 27 ) * eee26 + ( 2 / 27 ) * C;
sss9 = ( 8 / 10 ) * sss9 + ( 2 / 10 ) * ( eee12 - eee26 );
return sss9;
}
function MACD30()
{
e1 = EMA30( 12 );
e2 = EMA30( 26 );
xxx = e1 - e2;
return xxx;
}
function MACD60()
{
TimeFrameSet( inHourly );
eee12 = EMA( C, 12 );
eee26 = EMA( C, 26 );
//sss9 = EMA(eee12-eee26,9);
TimeFrameRestore();
eee12 = TimeFrameExpand( eee12, inHourly );
eee26 = TimeFrameExpand( eee26, inHourly );
//sss9 = TimeFrameExpand(sss9,inHourly);
eee12 = ( 11 / 13 ) * eee12 + ( 2 / 13 ) * C;
eee26 = ( 25 / 27 ) * eee26 + ( 2 / 27 ) * C;
//sss9 = (8/10)*sss9+(2/10)*(eee12-eee26);
return ( eee12 -eee26 );
}
function StochRSI( n, Stochn )
{
sss = ( Sum( RSI( n ) - LLV( RSI( n ), Stochn ), 3 ) /
Sum( HHV( RSI( n ), Stochn ) - LLV( RSI( n ), Stochn ), 3 ) ) * 100;
return sss;
}
function ARNup( n )
{
HHVBarsSince = HHVBars( H, n ) + 1;
Aroon_Up = 100 * ( n - HHVBarsSince ) / ( n - 1 );
return Aroon_Up;
}
function xxxARNup( n, S1 )
{
HHVBarsSince = HHVBars( S1, n ) + 1;
Aroon_Up = 100 * ( n - HHVBarsSince ) / ( n - 1 );
return Aroon_Up;
}
function ARNdn( n )
{
LLVBarsSince = LLVBars( L, n ) + 1;
Aroon_Down = 100 * ( n - LLVBarsSince ) / ( n - 1 );
return Aroon_Down;
}
function xxxARNdn( n, s1 )
{
LLVBarsSince = LLVBars( S1, n ) + 1;
Aroon_Down = 100 * ( n - LLVBarsSince ) / ( n - 1 );
return Aroon_Down;
}
function ZeroLagTEMA( array, period )
{
TMA1 = TEMA( array, period );
TMA2 = TEMA( TMA1, period );
Diff = TMA1 - TMA2;
return TMA1 + Diff ;
}
function kama( Periods, fastn, slown )
{
P = Close;
if ( periods <= 0 )
periods = 10;
Direction = P - Ref( P, -periods );
Volatility = Sum( abs( P - Ref( P, -1 ) ), periods );
Volatility = IIf( Volatility > 0, Volatility, 0.00001 );
ER = abs( Direction / Volatility );
FastSC = 2 / ( fastn + 1 );
SlowSC = 2 / ( slown + 1 );
SSC = ER * ( FastSC - SlowSC ) + SlowSC;
Constant = SSC ^ 2;
return AMA( p, Constant );
}
function HullMa( P, Periods, Delay )
{
X = 2 * WMA( P, round( Periods / 2 ) ) - WMA( P, Periods );
HullMov = WMA( X, round( sqrt( Periods ) ) );
HullMov = Ref( HullMov, -Delay );
return HullMov;
}
function BRKEMA( n )
{
buffer = Param( "buffer", 2, 1, 30, 1 );
aup = ARNup( n );
adown = ARNdn( n );
aaa = 100 + buffer - Max( aup, adown );
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
function xxxBRKEMA( n, S1 )
{
buffer = Param( "buffer", 2, 1, 30, 1 );
aup = xxxARNup( n, s1 );
adown = xxxARNdn( n, s1 );
aaa = 100 + buffer - Max( aup, adown );
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
//attempt to construct more robust brkema
function BRKEMA2( n )
{
buffer = 2; //Param("buffer",2,1,30,1);
aup = ARNup( n ) + ARNup( 2 * n );
adown = ARNdn( n ) + ARNdn( 2 * n );
aaa = 2 * ( 100 + buffer ) - Max( aup, adown );
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
//based on ARNgap
function BRKEMA3( n )
{
buffer = 2; //Param("buffer",2,1,30,1);
aup = ARNup( n );
adown = ARNdn( n );
aaa = 100 + buffer - abs( aup - adown );
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
//based on ARNgap, attempt a more robust version
function BRKEMA4( n )
{
buffer = 2; //Param("buffer",2,1,30,1);
aup = ARNup( n ) + 0.3 * ARNup( 2 * n );
adown = ARNdn( n ) + 0.3 * ARNdn( 2 * n );
aaa = ( 2 * ( 100 + buffer ) - abs( aup - adown ) ) / 1.3;
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
function FRAMA( n )
{
//fractal ama
Price = ( H + L ) / 2;
N3 = ( HHV( High, N ) - LLV( Low, N ) ) / N;
HH = HHV( High, N / 2 ) ;
LL = LLV( Low, N / 2 );
N1 = ( HH - LL ) / ( N / 2 );
HH = HHV( Ref( High, - N / 2 ), N / 2 );
LL = LLV( Ref( Low, - N / 2 ), N / 2 );
N2 = ( HH - LL ) / ( N / 2 );
Dimen = IIf( N1 > 0 AND N2 > 0 AND N3 > 0, ( log( N1 + N2 ) - log( N3 ) ) / log( 2 ), Null );
alpha = exp( -4.6 * ( Dimen - 1 ) );
alpha = Min( Max( alpha, 0.01 ), 1 ); // bound to 0.01...1 range
return AMA( Price, alpha );
}
function FRAMA_SMB( n, symbol )
{
//fractal ama
Hhh = Foreign( symbol, "High" );
Lll = Foreign( symbol, "Low" );
Price = ( Hhh + Lll ) / 2;
N3 = ( HHV( Hhh, N ) - LLV( Lll, N ) ) / N;
HH = HHV( Hhh, N / 2 ) ;
LL = LLV( Lll, N / 2 );
N1 = ( HH - LL ) / ( N / 2 );
HH = HHV( Ref( Hhh, - N / 2 ), N / 2 );
LL = LLV( Ref( Lll, - N / 2 ), N / 2 );
N2 = ( HH - LL ) / ( N / 2 );
Dimen = IIf( N1 > 0 AND N2 > 0 AND N3 > 0, ( log( N1 + N2 ) - log( N3 ) ) / log( 2 ), Null );
alpha = exp( -4.6 * ( Dimen - 1 ) );
alpha = Min( Max( alpha, 0.01 ), 1 ); // bound to 0.01...1 range
return AMA( Price, alpha );
}
function LRSI( array, gamma )
//Laguerre RSI from John Ehlers' work
{
L0 = array; // Initialize as array
L1 = array;
L2 = array;
L3 = array;
LRSIValue = array;
for ( i = 1; i < BarCount; i++ )
{
L0[i] = ( 1 - gamma ) * array[i] + gamma * L0[i-1];
L1[i] = - gamma * L0[i] + L0[i-1] + gamma * L1[i-1];
L2[i] = - gamma * L1[i] + L1[i-1] + gamma * L2[i-1];
L3[i] = - gamma * L2[i] + L2[i-1] + gamma * L3[i-1];
CU = 0;
CD = 0;
if ( L0[i] >= L1[i] )
CU = L0[i] - L1[i];
else
( CD = L1[i] - L0[i] );
if ( L1[i] >= L2[i] )
CU = CU + L1[i] - L2[i];
else
CD = CD + L2[i] -
L1[i];
if ( L2[i] >= L3[i] )
CU = CU + L2[i] - L3[i];
else
CD = CD + L3[i] -
L2[i];
if ( CU + CD != 0 )
LRSIValue[i] = CU / ( CU + CD );
}
return LRSIValue;
}
function ULTEMA()
{
//buffer = Param("buffer",2,1,100,1);
buffer = 2;
ult = xxx_ult();
aaa = 20 + buffer - Min( abs( ult ) / 1000, 20 );
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
function ULT60EMA()
{
buffer60 = Param( "buffer60", 43, 1, 100, 1 );
ult = xxx_ult60();
aaa = buffer60 + Min( abs( ult ) / 120, 13 );
xxx = AMA( ( O + H + L + C ) / 4, 2 / aaa );
return xxx;
}
function S_EMA_XY( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = EMA( ttt, fastn );
bbb = EMA( 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_ARNORDER( ARNn, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Buysignal = ( ARNup( ARNn ) > ARNdn( ARNn ) );
Sellsignal = ( ARNup( ARNn ) < ARNdn( ARNn ) );
Shortsignal = ( ARNup( ARNn ) < ARNdn( ARNn ) );
Coversignal = ( ARNup( ARNn ) > ARNdn( ARNn ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_XY_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = EMA( ttt, fastn );
bbb = EMA( 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 ) );
Buysignal2 = Buysignal;
Sellsignal2 = Sellsignal;
Shortsignal2 = Shortsignal;
Coversignal2 = Coversignal;
Longstate = Flip( Buysignal2, ( Sellsignal2 OR Shortsignal2 ) );
Shortstate = Flip( Shortsignal2, ( Coversignal2 OR BuySignal2 ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_XY_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 = EMA( ttt, fastn );
bbb = EMA( ttt, slown );
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 ) );
Buysignal2 = Buysignal;
Sellsignal2 = Sellsignal;
Shortsignal2 = Shortsignal;
Coversignal2 = Coversignal;
Longstate = Flip( Buysignal2, ( Sellsignal2 OR Shortsignal2 ) );
Shortstate = Flip( Shortsignal2, ( Coversignal2 OR BuySignal2 ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_BRK( fastn, slown, n, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = EMA( ttt, fastn );
bbb = EMA( ttt, slown );
Buysignal = ( aaa >= bbb ) AND ( Close > Ref( HHV( H, n ), -1 ) );
Sellsignal = ( aaa < bbb ) AND ( Close < Ref( LLV( L, n ), -1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < Ref( LLV( L, n ), -1 ) );
Coversignal = ( aaa >= bbb ) AND ( Close > Ref( HHV( H, n ), -1 ) );
Buysignal2 = Buysignal;
Sellsignal2 = Sellsignal;
Shortsignal2 = Shortsignal;
Coversignal2 = Coversignal;
Longstate = Flip( Buysignal2, ( Sellsignal2 OR Shortsignal2 ) );
Shortstate = Flip( Shortsignal2, ( Coversignal2 OR BuySignal2 ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_XY_CONF_SLSP( fastn, slown, Closingtime, SL, SP )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
aaa = EMA( ttt, fastn );
bbb = EMA( ttt, slown );
Buysignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) );
Shortsignal = ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) );
Buysignal = ExRem( Buysignal, Shortsignal );
Shortsignal = ExRem( Shortsignal, Buysignal );
LastBuy = ValueWhen( Ref( Buysignal, -xxxdelay ), O, 1 );
//LastBuy = ValueWhen(Buysignal AND NOT Ref(Buysignal,-1),O,1);
LastShort = ValueWhen( Ref( shortsignal, -xxxdelay ), O, 1 );
//LastShort = ValueWhen(shortsignal AND NOT Ref(Shortsignal,-1),O,1);
Sellsignal = ( ( aaa < bbb ) AND ( Close < ValueWhen( Cross( bbb, aaa ), Min( Open, Close ), 1 ) ) ) OR ( C < LastBuy - SL ) OR ( C > LastBuy + SP );
Coversignal = ( aaa >= bbb ) AND ( Close > ValueWhen( Cross( aaa, bbb ), Max( Open, Close ), 1 ) ) OR ( C > LastShort + SL ) OR ( C < LastShort - SP );
Coversignal = ExRem( Coversignal, Shortsignal );
Sellsignal = ExRem( Sellsignal, Buysignal );
//Buysignal2 = Buysignal AND (Ref(BarsSince(Buysignal),-1)>Ref(BarsSince(Shortsignal),-1));
Buysignal2 = Buysignal;// AND (BarsSince(Ref(Buysignal,-1))>BarsSince(Ref(Shortsignal,-1)));
Sellsignal2 = Sellsignal;
//Shortsignal2 = Shortsignal AND (Ref(BarsSince(Buysignal),-1)<Ref(BarsSince(Shortsignal),-1));
Shortsignal2 = Shortsignal;// AND (BarsSince(Ref(Buysignal,-1))<BarsSince(Ref(Shortsignal,-1)));
Coversignal2 = Coversignal;
Longstate = Flip( Buysignal2, ( Sellsignal2 OR Shortsignal2 ) );
Shortstate = Flip( Shortsignal2, ( Coversignal2 OR BuySignal2 ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_RSI_CONF( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = RSI( n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_TSF_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 20, 10, 50, 5 );
rrr = ( Open + High + Low + Close ) / 4;
ttt = TSF( rrr, n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_TSF_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" );
rrr = ( Ooo + Hhh + Lll + Ccc ) / 4;
n = Param( "n", 20, 10, 50, 5 );
ttt = TSF( rrr, n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_KAMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
endendend = ( pebstime >= Closingtime ) OR ( Day() != Ref( Day(), 1 ) );
xxxdelay = 1 - endendend * 1;
P = Close;
Periods = Param( "Time Periods", 10, 1, 1000, 1 );
Direction = P - Ref( P, -periods );
Volatility = Sum( abs( P - Ref( P, -1 ) ), periods );
Volatility = IIf( Volatility > 0, Volatility, 0.00001 );
ER = abs( Direction / Volatility );
FastSC = 2 / ( 2 + 1 );
SlowSC = 2 / ( 30 + 1 );
SSC = ER * ( FastSC - SlowSC ) + SlowSC;
Constant = SSC ^ 2;
kkk = AMA( p, Constant );
//n1 = Param("fastn",15,1,15,1);
//n2 = Param("slown",24,16,50,1);
e1 = EMA( kkk, fastn );
e2 = EMA( kkk, slown );
Buysignal = ( e1 >= e2 ) AND ( Close > ValueWhen( Cross( e1, e2 ), Max( Open, Close ), 1 ) );
Sellsignal = ( e1 < e2 ) AND ( Close < ValueWhen( Cross( e2, e1 ), Min( Open, Close ), 1 ) );
Shortsignal = ( e1 < e2 )AND ( Close < ValueWhen( Cross( e2, e1 ), Min( Open, Close ), 1 ) );
Coversignal = ( e1 >= e2 )AND ( Close > ValueWhen( Cross( e1, e2 ), 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_EMA_WILDER_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = Wilders( C, 2 );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_HULL_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = HULLMA( C, 15, 0 );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_DEMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 6, 1, 20, 1 );
rrr = ( Open + High + Low + Close ) / 4;
ttt = DEMA( rrr, n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_EMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 3, 1, 20, 1 );
rrr = ( Open + High + Low + Close ) / 4;
ttt = EMA( rrr, n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_TEMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 29, 1, 50, 1 );
rrr = ( Open + High + Low + Close ) / 4;
ttt = TEMA( rrr, n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_DEMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ( Open + High + Low + Close ) / 4;
//fastn = Optimize("fastn",12,1,15,1);
//slown = Optimize("slown",34,25,50,1);
aaa = DEMA( ttt, fastn );
bbb = DEMA( 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_HHH_EMA( n1, n2, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
//n1 = Optimize("n1",6,1,15,1);
//n2 = Optimize("n2",25,16,50,1);
aaa = EMA( C, n1 );
bbb = HHV( aaa, n2 );
Ccc = LLV( aaa, n2 );
Buysignal = aaa > Ref( bbb, -1 ) AND ( pebstime >= 9 * 60 + 30 );
Sellsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Shortsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Coversignal = aaa > Ref( bbb, -1 )AND ( pebstime >= 9 * 60 + 30 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HHH2_EMA( n1, n2, Closingtime )
{
//this version requires ema to break channel of price not of ema like hhh
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Opentime = Param( "opentime", 570, 0, 9999 );
//n1 = Optimize("n1",6,1,15,1);
//n2 = Optimize("n2",25,16,50,1);
aaa = EMA( C, n1 );
bbb = HHV( H, n2 );
Ccc = LLV( L, n2 );
Buysignal = aaa > Ref( bbb, -1 ) AND ( pebstime >= Opentime );
Sellsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= Opentime );
Shortsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= Opentime );
Coversignal = aaa > Ref( bbb, -1 )AND ( pebstime >= Opentime );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HHH2_EMA_SMB( n1, n2, Closingtime, symbol )
{
//this version requires ema to break channel of price not of ema like hhh
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
//n1 = Optimize("n1",6,1,15,1);
//n2 = Optimize("n2",25,16,50,1);
Ccc = Foreign( symbol, "C" );
HHH = Foreign( symbol, "H" );
LLL = Foreign( symbol, "L" );
aaa = EMA( Ccc, n1 );
bbb = HHV( Hhh, n2 );
Ccc = LLV( Lll, n2 );
Buysignal = aaa > Ref( bbb, -1 ) AND ( pebstime >= 9 * 60 + 30 );
Sellsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Shortsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Coversignal = aaa > Ref( bbb, -1 )AND ( pebstime >= 9 * 60 + 30 );
Buysignal = Ref( Buysignal, -xxxdelay ) AND ( pebstime >= 9 * 60 + 30 );
Sellsignal = Ref( Sellsignal , -xxxdelay ) AND ( pebstime >= 9 * 60 + 30 );
Shortsignal = Ref( Shortsignal , -xxxdelay ) AND ( pebstime >= 9 * 60 + 30 );
Coversignal = Ref( Coversignal , -xxxdelay ) AND ( pebstime >= 9 * 60 + 30 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HHH_TSF( n2, TSFn, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
//n1 = Optimize("n1",6,1,15,1);
//n2 = Optimize("n2",25,16,50,1);
aaa = TSF( C, TSFn );
bbb = HHV( aaa, n2 );
Ccc = LLV( aaa, n2 );
Buysignal = aaa > Ref( bbb, -1 ) AND ( pebstime >= 9 * 60 + 30 );
Sellsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Shortsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Coversignal = aaa > Ref( bbb, -1 )AND ( pebstime >= 9 * 60 + 30 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HHH_EMA_TSF( n1, n2, TSFn, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
//n1 = Optimize("n1",6,1,15,1);
//n2 = Optimize("n2",25,16,50,1);
www = TSF( C, TSFn );
aaa = EMA( www, n1 );
bbb = HHV( aaa, n2 );
Ccc = LLV( aaa, n2 );
Buysignal = aaa > Ref( bbb, -1 ) AND ( pebstime >= 9 * 60 + 30 );
Sellsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Shortsignal = aaa < Ref( Ccc, -1 )AND ( pebstime >= 9 * 60 + 30 );
Coversignal = aaa > Ref( bbb, -1 )AND ( pebstime >= 9 * 60 + 30 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_ATRBRK( fastn, slown, ATRn, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
/*
n = Optimize("ATRn",10,2,50,1);
n2 = Optimize("ema1",3,2,10,1);
n3 = Optimize("ema2",20,15,50,5);
*/
//n=6;
n2 = 4;
n3 = 20;
//n4 = Optimize("ema1",7,2,14,1);
//n5=Optimize("ema2",21,15,50,1);
n4 = fastn;
n5 = slown;
aaa = ATR( ATRn );
bbb = EMA( aaa, n2 );
Ccc = EMA( aaa, n3 );
e1 = EMA( C, 3 );
e2 = EMA( C, 5 );
e3 = EMA( C, 8 );
e4 = EMA( C, 10 );
e5 = EMA( C, 12 );
e6 = EMA( C, 15 );
rrr = ( e1 - e2 ) ^ 2 + ( e2 - e3 ) ^ 2 + ( e3 - e4 ) ^ 2 + ( e4 - e5 ) ^ 2 + ( e5 - e6 ) ^ 2;
rrr = rrr / ( ATR( 100 ) / 100 ) ^ 2;
rrr = rrr * IIf( e3 > e4, 1, -1 );
Buysignal = ( bbb >= Ccc ) AND ( rrr < 10000 ) AND ( EMA( C, n4 ) > EMA( C, n5 ) );
Sellsignal = ( EMA( C, n4 ) < EMA( C, n5 ) );
Shortsignal = ( bbb >= Ccc ) AND ( rrr > -10000 ) AND ( EMA( C, n4 ) < EMA( C, n5 ) );
Coversignal = ( EMA( C, n4 ) >= EMA( C, n5 ) );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_HEIKINASHI( n, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
/////////////////////
// Heikin-Ashi code
HaClose = ( O + H + L + C ) / 4;
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 );
//avp = Optimize("Up TEMA avg", n, 1, 100,1 );
//avpdn = Optimize("Dn TEMA avg", n, 1, 100,1 );
avp = n;
avpdn = n;
// Velvoort is using not original, but modified Heikin-Ashi close
HaClose = ( HaClose + HaOpen + Max( H, HaOpen ) + Min( L, HaOpen ) ) / 4;
// up average
ZlHa = ZeroLagTEMA( HaClose, avp );
ZlCl = ZeroLagTEMA( ( H + L ) / 2, avp );
ZlDif = ZlCl - ZlHa;
keep1 = Hold( HaClose >= HaOpen, 2 );
keep2 = ZlDif >= 0;
keeping = keep1 OR keep2;
keepall = keeping OR ( Ref( keeping, -1 ) AND ( C > O ) OR C >= Ref( C, -1 ) );
keep3 = abs( C - O ) < ( H - L ) * 0.35 AND H >= Ref( L, -1 );
utr = keepall OR ( Ref( keepall, -1 ) AND keep3 );
// dn average
ZlHa = ZeroLagTEMA( HaClose, avpdn );
ZlCl = ZeroLagTEMA( ( H + L ) / 2, avpdn );
ZlDif = ZlCl - ZlHa;
keep1 = Hold( HaClose < HaOpen, 2 );
keep2 = ZlDif < 0;
keeping = keep1 OR keep2;
keepall = keeping OR ( Ref( keeping, -1 ) AND ( C < O ) OR C < Ref( C, -1 ) );
keep3 = abs( C - O ) < ( H - L ) * 0.35 AND L <= Ref( H, -1 );
dtr = keepall OR ( Ref( keepall, -1 ) AND keep3 );
upw = dtr == 0 AND Ref( dtr, -1 ) AND utr;
dnw = utr == 0 AND Ref( utr, -1 ) AND dtr;
Haco = Flip( upw, dnw );
Haco = Haco * 2 - 1;
xxx = Ref( Haco, -xxxdelay );
return xxx;
}
function S_RSI( n, Closingtime )
{
//conventional rsi reversion trading
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
rrr = RSI( n );
Buysignal = Cross( rrr, 30 );
Sellsignal = Cross( 70, rrr );
Shortsignal = Cross( 70, rrr );
Coversignal = Cross( rrr, 30 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_RSIpebs( n, Closingtime )
{
//rsi trend trading
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
rrr = RSI( n );
Buysignal = Cross( rrr, 50 );
Sellsignal = Cross( 50, rrr );
Shortsignal = Cross( 50, rrr );
Coversignal = Cross( rrr, 50 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_STOCHRSI( n, stochn, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
sss = stochrsi( n, Stochn );
sss2 = EMA( sss, 3 );
Buysignal = Cross( sss, sss2 );
Sellsignal = Cross( sss2, sss );
Shortsignal = Cross( sss2, sss );
Coversignal = Cross( sss, sss2 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function ContextZone()
{
Conzone = 0;
TimeFrameSet( inDaily );
rrr1 = Param( "fastday", 7, 1, 50, 1 );
rrr2 = Param( "slowday", 21, 1, 50, 1 );
e1_day = Ref( EMA( C, rrr1 ), -1 );
e2_day = Ref( EMA( C, rrr2 ), -1 );
ATR_day = Ref( ATR( 20 ), -1 );
TimeFrameRestore();
e1_day = TimeFrameExpand( e1_day, inDaily );
e2_day = TimeFrameExpand( e2_day, inDaily );
ATR_day = TimeFrameExpand( ATR_day, inDaily );
e1_day = IIf( Day() == Ref( Day(), -1 ), Ref( e1_day, -1 ), e1_day );
e2_day = IIf( Day() == Ref( Day(), -1 ), Ref( e2_day, -1 ), e2_day );
ATR_day = IIf( Day() == Ref( Day(), -1 ), Ref( ATR_day, -1 ), ATR_day );
e1 = e1_day * ( rrr1 - 1 ) / ( rrr1 + 1 ) + Ref( C, -1 ) * 2 / ( rrr1 + 1 );
e2 = e2_day * ( rrr2 - 1 ) / ( rrr2 + 1 ) + Ref( C, -1 ) * 2 / ( rrr2 + 1 );
band1 = Param( "band1", 1.2, 0, 2, 0.05 );
band2 = Param( "band2", 0.2, 0, 2, 0.05 );
band3 = Param( "band3", 0.45, 0, 2, 0.05 );
for ( i = 1; i < BarCount; i++ )
{
if ( ( C[i-1] > e1[i] + band1*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 1;
else
if ( ( C[i-1] > e1[i] + band2*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 2;
else
if ( ( C[i-1] > e1[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 3;
else
if ( ( C[i-1] > e2[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 4;
else
if ( ( C[i-1] > e2[i] - band3*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 5;
else
if ( e1[i] > e2[i] )
Conzone[i] = 6;
else
if ( ( C[i-1] < e1[i] - band1*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -1;
else
if ( ( C[i-1] < e1[i] - band2*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -2;
else
if ( ( C[i-1] < e1[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -3;
else
if ( ( C[i-1] < e2[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -4;
else
if ( ( C[i-1] < e2[i] + band3*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -5;
else
if ( e1[i] < e2[i] )
Conzone[i] = -6;
}
return Conzone;
}
function ContextZone_SMB( symbol )
{
//still need to adjust for symbol info
SetBarsRequired( 9999 );
rrr1 = Param( "fastday", 7, 1, 50, 1 );
rrr2 = Param( "slowday", 21, 1, 50, 1 );
Conzone = 0;
Hhh = Foreign( symbol, "High" );
Lll = Foreign( symbol, "Low" );
Ccc = Foreign( symbol, "Close" );
Ooo = Foreign( symbol, "Open" );
Hhh_D = TimeFrameCompress( Hhh, inDaily );
Lll_D = TimeFrameCompress( Lll, inDaily );
Ccc_d = TimeFrameCompress( Ccc, inDaily );
Ooo_d = TimeFrameCompress( Ooo, inDaily );
TrueRange = Max( Hhh_D - Lll_D, Max( abs( Hhh_D - Ref( Ccc_d, -1 ) ), abs( Lll_d - Ref( Ccc_d, -1 ) ) ) );
TimeFrameSet( inDaily );
Hhh_D = Foreign( symbol, "High" );
Lll_D = Foreign( symbol, "Low" );
Ccc_D = Foreign( symbol, "Close" );
Ooo_D = Foreign( symbol, "Open" );
TrueRange = Max( Hhh - Lll, Max( abs( Hhh - Ref( Ccc, -1 ) ), abs( Lll - Ref( Ccc, -1 ) ) ) );
myATR = Wilders( TrueRange, 20 );
e1_day = Ref( EMA( Ccc, rrr1 ), -1 );
e2_day = Ref( EMA( Ccc, rrr2 ), -1 );
ATR_day = Ref( myATR, -1 );
TimeFrameRestore();
e1_day = TimeFrameExpand( e1_day, inDaily );
e2_day = TimeFrameExpand( e2_day, inDaily );
ATR_day = TimeFrameExpand( ATR_day, inDaily );
e1_day = IIf( Day() == Ref( Day(), -1 ), Ref( e1_day, -1 ), e1_day );
e2_day = IIf( Day() == Ref( Day(), -1 ), Ref( e2_day, -1 ), e2_day );
ATR_day = IIf( Day() == Ref( Day(), -1 ), Ref( ATR_day, -1 ), ATR_day );
e1 = e1_day * ( rrr1 - 1 ) / ( rrr1 + 1 ) + Ref( Ccc, -1 ) * 2 / ( rrr1 + 1 );
e2 = e2_day * ( rrr2 - 1 ) / ( rrr2 + 1 ) + Ref( Ccc, -1 ) * 2 / ( rrr2 + 1 );
band1 = Param( "band1", 1.2, 0, 2, 0.05 );
band2 = Param( "band2", 0.2, 0, 2, 0.05 );
band3 = Param( "band3", 0.45, 0, 2, 0.05 );
for ( i = 1; i < BarCount; i++ )
{
if ( ( Ccc[i-1] > e1[i] + band1*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 1;
else
if ( ( Ccc[i-1] > e1[i] + band2*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 2;
else
if ( ( Ccc[i-1] > e1[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 3;
else
if ( ( Ccc[i-1] > e2[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 4;
else
if ( ( Ccc[i-1] > e2[i] - band3*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 5;
else
if ( e1[i] > e2[i] )
Conzone[i] = 6;
else
if ( ( Ccc[i-1] < e1[i] - band1*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -1;
else
if ( ( Ccc[i-1] < e1[i] - band2*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -2;
else
if ( ( Ccc[i-1] < e1[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -3;
else
if ( ( Ccc[i-1] < e2[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -4;
else
if ( ( Ccc[i-1] < e2[i] + band3*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -5;
else
if ( e1[i] < e2[i] )
Conzone[i] = -6;
}
return Conzone;
}
function XXXContextZone()
{
Conzone = 0;
TimeFrameSet( inDaily );
rrr1 = Param( "fastday", 7, 1, 50, 1 );
rrr2 = Param( "slowday", 21, 1, 50, 1 );
e1_day = Ref( EMA( C, rrr1 ), -1 );
e2_day = Ref( EMA( C, rrr2 ), -1 );
ATR_day = Ref( ATR( 20 ), -1 );
TimeFrameRestore();
e1_day = TimeFrameExpand( e1_day, inDaily );
e2_day = TimeFrameExpand( e2_day, inDaily );
ATR_day = TimeFrameExpand( ATR_day, inDaily );
e1 = e1_day * ( rrr1 - 1 ) / ( rrr1 + 1 ) + Ref( C, -1 ) * 2 / ( rrr1 + 1 );
e2 = e2_day * ( rrr2 - 1 ) / ( rrr2 + 1 ) + Ref( C, -1 ) * 2 / ( rrr2 + 1 );
band1 = Param( "band1", 1.2, 0, 2, 0.05 );
band2 = Param( "band2", 0.45, 0, 2, 0.05 );
band3 = Param( "band3", 0.2, 0, 2, 0.05 );
band4 = Param( "band4", 0.45, 0, 2, 0.05 );
for ( i = 1; i < BarCount; i++ )
{
if ( ( C[i-1] > e1[i] + band1*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 1;
else
if ( ( C[i-1] > e1[i] + band2*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 2;
else
if ( ( C[i-1] > e1[i] + band3*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 3;
else
if ( ( C[i-1] > e1[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 4;
else
if ( ( C[i-1] > e2[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 5;
else
if ( ( C[i-1] > e2[i] - band3*ATR_day[i] )*( e1[i] > e2[i] ) )
Conzone[i] = 6;
else
if ( e1[i] > e2[i] )
Conzone[i] = 7;
else
if ( ( C[i-1] < e1[i] - band1*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -1;
else
if ( ( C[i-1] < e1[i] - band2*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -2;
else
if ( ( C[i-1] < e1[i] - band3*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -3;
else
if ( ( C[i-1] < e1[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -4;
else
if ( ( C[i-1] < e2[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -5;
else
if ( ( C[i-1] < e2[i] + band3*ATR_day[i] )*( e1[i] < e2[i] ) )
Conzone[i] = -6;
else
if ( e1[i] < e2[i] )
Conzone[i] = -7;
}
return Conzone;
}
function RVI( n1, n2 )
{
//usual of hhh = 10,30 for n1,n2
SD = StDev( C, n1 );
xxx = RSIa( SD, n2 );
return xxx;
}
function ContextPower()
{
TimeFrameSet( inDaily );
e1_day = Ref( EMA( C, 7 ), -1 );
e2_day = Ref( EMA( C, 21 ), -1 );
ATR_day = Ref( ATR( 20 ), -1 );
TimeFrameRestore();
e1_day = TimeFrameExpand( e1_day, inDaily );
e2_day = TimeFrameExpand( e2_day, inDaily );
ATR_day = TimeFrameExpand( ATR_day, inDaily );
e1 = e1_day * 6 / 8 + Ref( C, -1 ) * 2 / 8;
e2 = e2_day * 20 / 22 + Ref( C, -1 ) * 2 / 22;
xxx = ( e1_day - e2_day ) / e2_day;
return xxx;
}
function Contextfilter( s1 )
{
Ccc = Contextzone();
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] == 5 )
{
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] == 6 )
{
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] == -5 )
{
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] == -6 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
//new contextfilter not keen on shorting in bigpicture strength or buying bigpicture weakness too soon
function Contextfilter2( s1 )
{
Ccc = Contextzone();
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] == 5 )
{
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] == 6 )
{
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] == -5 )
{
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] == -6 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function Contextfilter2_SMB( s1, symbol )
{
Ccc = Contextzone_SMB( symbol );
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] == 5 )
{
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] == 6 )
{
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] == -5 )
{
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] == -6 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function Contextfilter2plus( s1 )
{
Ccc = Contextzone();
uuu = xxx_ult60();
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] == 5 )
{
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] == 6 )
{
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] == -5 )
{
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] == -6 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
//now the ult scenarios
if ( i > 0 )
{
if ( ( uuu[i-1] > 10000 ) AND ( s1[i] < s1[i-1] ) )
s1[i] = s1[i-1];
if ( ( uuu[i-1] < -10000 ) AND ( s1[i] > s1[i-1] ) )
s1[i] = s1[i-1];
}
}
return s1;
}
function Contextfilter3( s1 )
{
Ccc = Contextzone();
for ( i = 0; i < BarCount; i++ )
{
if ( Ccc[i] == 1 )
{
if ( s1[i] < 0 )
s1[i] = 0;
if ( s1[i] > 0 )
s1[i] = 0;
}
if ( Ccc[i] == 2 )
{
if ( s1[i] < 0 )
s1[i] = 0;
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] == 5 )
{
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] == 6 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
//now bearish scenario
if ( Ccc[i] == -1 )
{
if ( s1[i] > 0 )
s1[i] = 0;
if ( s1[i] < 0 )
s1[i] = 0;
}
if ( Ccc[i] == -2 )
{
if ( s1[i] > 0 )
s1[i] = 0;
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] == -5 )
{
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] == -6 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
//this allows longs to be taken/increased in cz=2, and same for shorts
function Contextfilter4( s1 )
{
Ccc = Contextzone();
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] == 5 )
{
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] == 6 )
{
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] == -5 )
{
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] == -6 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function XXXContextfilter2( s1 )
{
Ccc = XXXContextzone();
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] == 3 )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
}
if ( Ccc[i] == 6 )
{
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] == 7 )
{
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] == -3 )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
}
if ( Ccc[i] == -6 )
{
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] == -7 )
{
if ( s1[i] > 0 )
s1[i] = 0;
}
}
return s1;
}
function MiniContextfilter( s1, smallgap, biggap, smallST, bigST )
{
ttt = ( O + H + L + C ) / 4;
//just use 9,27 arbitrarily
xxx = Ref( EMA( ttt, 9 ), -1 ) - Ref( EMA( ttt, 27 ), -1 );
sss = Ref( xxx_st(), -1 );
for ( i = 0; i < BarCount; i++ )
{
if ( xxx[i] > biggap )
Ccc[i] = 3; //here we sell all longs
else
if ( xxx[i] > smallgap )
Ccc[i] = 2; //here we do not buy extra if we are long
else
if ( xxx[i] >= 0 )
Ccc[i] = 1; //here we can go long or buy extra
else
if ( xxx[i] > -smallgap )
Ccc[i] = -1; //here we can go short or sell extra
else
if ( xxx[i] > -biggap )
Ccc[i] = -2; //here we do not sell extra if we are short
else
Ccc[i] = -3; //here we close all shorts
}
for ( i = 0; i < BarCount; i++ )
{
if ( Ccc[i] == 3 )
{
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] == -2 )
{
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] == -3 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
}
for ( i = 0; i < BarCount; i++ )
{
if ( sss[i] > bigST )
Ccc[i] = 3; //here we sell all longs
else
if ( sss[i] > smallST )
Ccc[i] = 2; //here we do not buy extra if we are long
else
if ( xxx[i] >= 0 )
Ccc[i] = 1; //here we can go long or buy extra
else
if ( sss[i] > -smallST )
Ccc[i] = -1; //here we can go short or sell extra
else
if ( sss[i] > -bigST )
Ccc[i] = -2; //here we do not sell extra if we are short
else
Ccc[i] = -3; //here we close all shorts
}
for ( i = 0; i < BarCount; i++ )
{
if ( Ccc[i] == 3 )
{
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] == -2 )
{
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] == -3 )
{
if ( s1[i] < 0 )
s1[i] = 0;
}
}
return s1;
}
function Contextfilter_MACD60( s1 )
{
mmm = Ref( MACD60(), -1 );
for ( i = 1;i < BarCount;i++ )
{
if ( mmm[i] > 120 )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
}
if ( mmm[i] < -120 )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
}
}
return s1;
}
function Contextfilter_HIST60( s1 )
{
mmm = Ref( MACD60(), -1 );
sss = Ref( Signal60(), -1 );
Hurdle = Param( "macd60 hurdle", 100, 1, 200, 1 );
for ( i = 1;i < BarCount;i++ )
{
if ( ( mmm[i] > Hurdle ) AND ( mmm[i] > sss[i] ) )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
}
if ( ( mmm[i] < -Hurdle ) AND ( mmm[i] < sss[i] ) )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
}
}
return s1;
}
function Contextfilter_ULT60( s1 )
{
mmm = Ref( xxx_ult60(), -1 );
for ( i = 1;i < BarCount;i++ )
{
if ( mmm[i] > 12000 )
{
if ( s1[i] < s1[i-1] )
s1[i] = s1[i-1];
}
if ( mmm[i] < -12000 )
{
if ( s1[i] > s1[i-1] )
s1[i] = s1[i-1];
}
}
return s1;
}
function S_EMA_KAMA_CONF_VALZONE( fastn, slown, Closingtime, zonetrigger )
{
pebstime = Hour() * 60 + Minute();
endendend = ( pebstime >= Closingtime ) OR ( Day() != Ref( Day(), 1 ) );
xxxdelay = 1 - endendend * 1;
s = S_EMA_KAMA_CONF( fastn, slown, Closingtime );
Cz = Contextzone();
Buysignal = ( s == 1 ) AND ( Ref( Cz, -xxxdelay ) >= zonetrigger );
Sellsignal = ( s < 1 );
Shortsignal = ( s == -1 ) AND ( Ref( Cz, -xxxdelay ) <= -zonetrigger );
Coversignal = ( s > -1 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return totalstate;
//return Ref(totalstate,-xxxdelay);
}
function GfxConvertBarToPixelX( Bar )
{
lvb = Status( "lastvisiblebar" );
fvb = Status( "firstvisiblebar" );
pxchartleft = Status( "pxchartleft" );
pxchartwidth = Status( "pxchartwidth" );
return pxchartleft + Bar * pxchartwidth / ( Lvb - fvb + 1 );
}
procedure MultiRibbon( RibbonThickness, RibbonColor, Position, Label, Font )
{
//RibbonThickness = Param("Ribbon Thickness", 1, 1, 5, 0.1);
//Font = ParamList("Font:","Arial|Calibri|Futura|Tahoma|Times New Roman");
LineColor = colorLightGrey;
Position = RibbonThickness * Position;
x2 = Status( "pxchartright" );
y2 = Status( "pxchartbottom" );
RibbonColor =
IIf( GfxConvertBarToPixelX( BarIndex() - Status( "firstvisiblebarindex" ) ) > y2 / 1.5 *
( RibbonThickness / 100 ) * 18 , RibbonColor, colorYellow );
Plot( 0, "", LineColor, styleOwnScale | styleNoLabel, 0, 100 );
Plot( Position, "", LineColor, styleOwnScale | styleNoLabel, 0, 100 );
Plot( Position, "", RibbonColor, styleArea | styleOwnScale | styleNoLabel, 0,
100 );
GfxSetTextColor( colorBlack );
GfxSelectFont( Font, y2 / 1.5 * ( RibbonThickness / 100 ), 400 );
GfxDrawText( Label, 8, y2 * 1.001 - ( y2 * Position / 100 ) , y2 / 1.5 *
( RibbonThickness / 100 ) * 17, y2, 2 + 32 + 256 );
}
function SendToTwitter( MSG )
{
AlertIf( ( 1 == 1 ), "EXEC C:\\Webtyphoon.exe", "\"" + msg + "\"", 9 );
}
function S_EMA_BRKEMA_CONF( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = BRKEMA( n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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 );
}
//use the new brkema looking at longer arn as well
function S_EMA_BRKEMA2_CONF( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = BRKEMA2( n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_BRKEMA3_CONF( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = BRKEMA3( n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_BRKEMA4_CONF( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = BRKEMA4( n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_ULTEMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ttt = ULTEMA();
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_FRAMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 16, 1, 50, 1 );
ttt = FRAMA( n );
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_FRAMA_CONF_SMB( fastn, slown, Closingtime, symbol )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 16, 1, 50, 1 );
Ooo = Foreign( symbol, "Open" );
Ccc = Foreign( symbol, "Close" );
ttt = FRAMA_SMB( n, symbol );
aaa = EMA( ttt, fastn );
bbb = EMA( ttt, slown );
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_SVE( Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
ATRfact = Param( "ATR multiplication", 2.8, 1, 10, 0.1 );
period = Param( "ATR Period", 10, 1, 100 );
HiLo = IIf( ( H - L ) < 1.5 * MA( H - L, period ), H - L, 1.5 * MA( H - L, period ) ); //limit HILO to 1.5 * usual size
Href = IIf( L <= Ref( H, -1 ), H - Ref( C, -1 ), ( H - Ref( C, -1 ) ) - ( L - Ref( H, -1 ) ) / 2 );
Lref = IIf( H >= Ref( L, -1 ), Ref( C, -1 ) - L, ( Ref( C, -1 ) - L ) - ( Ref( L, -1 ) - H ) / 2 );
diff1 = Max( HiLo, Href );
diff2 = Max( diff1, Lref );
ATRmod = Wilders( diff2, period );
loss = atrfact * ATRmod;
resistance = C + loss;
support = L;
trends = H;
for ( i = 4; i < BarCount; i++ )
{
if ( L[ i ] >= L[ i-2 ] AND
L[ i-1 ] >= L[ i-2 ] AND
L[ i-3 ] >= L[ i-2 ] AND
L[ i-4 ] >= L[ i-2 ] )
{
support[ i ] = L[ i - 2];
}
else
if ( L[ i ] > H[ i-1 ] * 1.0013 )
{
support[ i ] = H[ i-1 ] * 0.9945;
}
else
if ( L[ i ] > support[ i-1 ] * 1.1 )
{
support[ i ] = support[ i-1 ] * 1.05;
}
else
{
support[ i ] = support[ i-1 ];
}
if ( H[ i ] > trends[ i-1 ] AND
H[ i-1 ] > trends[ i-1 ] )
{
trends[ i ] = Max( trends[ i-1 ], support[ i ] );
}
else
if ( H[ i ] < trends[ i-1 ] AND
H[ i-1 ] < trends[ i-1 ] )
{
trends[ i ] = Min( trends[ i-1 ], resistance[ i ] );
}
else
if ( H[ i ] >= trends[ i-1 ] )
trends[ i ] = support[ i ];
else
trends[ i ] = resistance[ i ];
}
Buysignal = Cross( C, trends );
Sellsignal = Cross( trends, H );
Shortsignal = Sellsignal;
Coversignal = Buysignal;
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function xxx_factor()
{
TimeFrameSet( inHourly );
ult60 = xxx_ult();
TimeFrameRestore();
ult60 = TimeFrameExpand( ult60, inHourly, expandFirst );
TimeFrameSet( 2*in15Minute );
ult30 = xxx_ult();
TimeFrameRestore();
ult30 = TimeFrameExpand( ult30, 2 * in15Minute, expandFirst );
TimeFrameSet( in15Minute );
ult15 = xxx_ult();
TimeFrameRestore();
ult15 = TimeFrameExpand( ult15, in15Minute, expandFirst );
ult5 = xxx_ult();
xxx = ult60 + ult30 / 1.4 + ult15 / 2 + ult5 / 3.5;
return xxx;
}
function MAgic()
{
//only works in 5min timeframe
aaa5 = Ref( EMA( C, 85 ), -1 );
TimeFrameSet( in15Minute );
aaa15 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa15 = TimeFrameExpand( aaa15, in15Minute, expandFirst );
TimeFrameSet( 2*in15Minute );
aaa30 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa30 = TimeFrameExpand( aaa30, 2 * in15Minute, expandFirst );
TimeFrameSet( inHourly );
aaa60 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa60 = TimeFrameExpand( aaa60, inHourly, expandFirst );
//come up with some bullshit trendmeasure
mmm = Ref( C, -1 ) * 4 - aaa5 - aaa15 - aaa30 - aaa60;
mmm = mmm / ( Ref( C, -1 ) / 10000 );
return mmm;
}
function BIGMAgic()
{
aaa30 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa30 = TimeFrameExpand( aaa30, 2 * in15Minute, expandFirst );
TimeFrameSet( inHourly );
aaa60 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa60 = TimeFrameExpand( aaa60, inHourly, expandFirst );
//come up with some bullshit trendmeasure
mmm = Ref( C, -1 ) * 2 - aaa30 - aaa60;
mmm = mmm / ( Ref( C, -1 ) / 10000 );
return mmm;
}
function MAgic2()
{
//only works in 5min timeframe
aaa5 = Ref( EMA( C, 85 ), -1 );
TimeFrameSet( in15Minute );
aaa15 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa15 = TimeFrameExpand( aaa15, in15Minute, expandFirst );
TimeFrameSet( 2*in15Minute );
aaa30 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa30 = TimeFrameExpand( aaa30, 2 * in15Minute, expandFirst );
TimeFrameSet( inHourly );
aaa60 = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaa60 = TimeFrameExpand( aaa60, inHourly, expandFirst );
TimeFrameSet( inDaily );
aaaD = Ref( EMA( C, 85 ), -1 );
TimeFrameRestore();
aaaD = TimeFrameExpand( aaaD, inDaily, expandFirst );
//come up with some bullshit trendmeasure
mmm = Ref( C, -1 ) * 5 - aaa5 - aaa15 - aaa30 - aaa60 - aaaD;
mmm = mmm / ( Ref( C, -1 ) / 10000 );
return mmm;
}
function MAGICema( n )
{
mmm = MAgic();
ttt = ( Open + High + Low + Close ) / 4;
rrr = Optimize( "rrr", 200, 50, 300, 50 );
nnn = n * ( 1 + int( abs( mmm ) / rrr ) );
xxx = AMA( ttt, 2 / ( nnn + 1 ) );
return xxx;
}
function S_EMA_ULT60EMA_CONF( fastn, slown, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
n = Param( "n", 3, 1, 20, 1 );
ttt = ult60ema();
aaa = EMA( ttt, fastn );
bbb = EMA( 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_EMA_BRKEMA_CONF_REVERSE( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Maxloss = Param( "Maxloss", 9999, 0, 9999, 1 );
s = S_EMA_BRKEMA_CONF( fastn, slown, Closingtime, n );
Hhh = brkema2( n );
H1 = EMA( Hhh, fastn );
H2 = EMA( Hhh, slown );
bottomstopline = ValueWhen( Cross( H2, H1 ), Min( Open, Close ), 1 );
topstopline = ValueWhen( Cross( H1, H2 ), Max( Open, Close ), 1 );
// trade on next bar open
SetTradeDelays( 0, 0, 0, 0 );
BuyPrice = SellPrice = Open;
//Points only
PositionSize = MarginDeposit = 1;
Buysignal = ( s > 0 ) AND ( Ref( C, -1 ) > bottomstopline ) AND ( Ref( C, -1 ) - bottomstopline < Maxloss );
Sellsignal = ( s <= 0 );
Shortsignal = ( s < 0 ) AND ( Ref( C, -1 ) < topstopline ) AND ( topstopline - Ref( C, -1 ) < Maxloss );
Coversignal = ( s >= 0 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_BRKEMA2_CONF_REVERSE( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Maxloss = Param( "Maxloss", 9999, 0, 9999, 1 );
s = S_EMA_BRKEMA2_CONF( fastn, slown, Closingtime, n );
Hhh = brkema2( n );
H1 = EMA( Hhh, fastn );
H2 = EMA( Hhh, slown );
bottomstopline = ValueWhen( Cross( H2, H1 ), Min( Open, Close ), 1 );
topstopline = ValueWhen( Cross( H1, H2 ), Max( Open, Close ), 1 );
// trade on next bar open
SetTradeDelays( 0, 0, 0, 0 );
BuyPrice = SellPrice = Open;
//Points only
PositionSize = MarginDeposit = 1;
Buysignal = ( s > 0 ) AND ( Ref( C, -1 ) > bottomstopline ) AND ( Ref( C, -1 ) - bottomstopline < Maxloss );
Sellsignal = ( s <= 0 );
Shortsignal = ( s < 0 ) AND ( Ref( C, -1 ) < topstopline ) AND ( topstopline - Ref( C, -1 ) < Maxloss );
Coversignal = ( s >= 0 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_BRKEMA3_CONF_REVERSE( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Maxloss = Param( "Maxloss", 9999, 0, 9999, 1 );
s = S_EMA_BRKEMA3_CONF( fastn, slown, Closingtime, n );
Hhh = brkema2( n );
H1 = EMA( Hhh, fastn );
H2 = EMA( Hhh, slown );
bottomstopline = ValueWhen( Cross( H2, H1 ), Min( Open, Close ), 1 );
topstopline = ValueWhen( Cross( H1, H2 ), Max( Open, Close ), 1 );
// trade on next bar open
SetTradeDelays( 0, 0, 0, 0 );
BuyPrice = SellPrice = Open;
//Points only
PositionSize = MarginDeposit = 1;
Buysignal = ( s > 0 ) AND ( Ref( C, -1 ) > bottomstopline ) AND ( Ref( C, -1 ) - bottomstopline < Maxloss );
Sellsignal = ( s <= 0 );
Shortsignal = ( s < 0 ) AND ( Ref( C, -1 ) < topstopline ) AND ( topstopline - Ref( C, -1 ) < Maxloss );
Coversignal = ( s >= 0 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_EMA_BRKEMA4_CONF_REVERSE( fastn, slown, Closingtime, n )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Maxloss = Param( "Maxloss", 9999, 0, 9999, 1 );
s = S_EMA_BRKEMA4_CONF( fastn, slown, Closingtime, n );
Hhh = brkema2( n );
H1 = EMA( Hhh, fastn );
H2 = EMA( Hhh, slown );
bottomstopline = ValueWhen( Cross( H2, H1 ), Min( Open, Close ), 1 );
topstopline = ValueWhen( Cross( H1, H2 ), Max( Open, Close ), 1 );
// trade on next bar open
SetTradeDelays( 0, 0, 0, 0 );
BuyPrice = SellPrice = Open;
//Points only
PositionSize = MarginDeposit = 1;
Buysignal = ( s > 0 ) AND ( Ref( C, -1 ) > bottomstopline ) AND ( Ref( C, -1 ) - bottomstopline < Maxloss );
Sellsignal = ( s <= 0 );
Shortsignal = ( s < 0 ) AND ( Ref( C, -1 ) < topstopline ) AND ( topstopline - Ref( C, -1 ) < Maxloss );
Coversignal = ( s >= 0 );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
//switch long short around certain chosen value
function S_flippivot( pivot, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Buysignal = ( C > pivot );
Sellsignal = ( C < pivot );
Shortsignal = ( C < pivot );
Coversignal = ( C > pivot );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_longpivot( pivot, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Buysignal = ( C > pivot );
Sellsignal = ( C < pivot );
Shortsignal = 0;
Coversignal = 0;
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function S_shortpivot( pivot, Closingtime )
{
pebstime = Hour() * 60 + Minute();
xxxdelay = 1 - ( pebstime >= Closingtime ) * 1;
Buysignal = 0;
Sellsignal = 0;
Shortsignal = ( C < pivot );
Coversignal = ( C > pivot );
Longstate = Flip( Buysignal, ( Sellsignal OR Shortsignal ) );
Shortstate = Flip( Shortsignal, ( Coversignal OR BuySignal ) );
Totalstate = Longstate * 1 + Shortstate * ( -1 );
return Ref( totalstate, -xxxdelay );
}
function PivotPoint()
{
TimeFrameSet( inDaily );
Hhh = H;
Lll = L;
Ccc = C;
TimeFrameRestore();
Hhh = TimeFrameExpand( Hhh, inDaily );
Lll = TimeFrameExpand( Lll, inDaily );
Ccc = TimeFrameExpand( Ccc, inDaily );
ppp = ( Hhh + Lll + Ccc ) / 3;
return ppp;
}
function MAgicCount()
{
TimeFrameSet( in5Minute );
e1 = EMA( C, 85 );
TimeFrameRestore();
e1 = TimeFrameExpand( e1, in5Minute, expandLast );
TimeFrameSet( in15Minute );
e2 = EMA( C, 85 );
TimeFrameRestore();
e2 = TimeFrameExpand( e2, in15Minute, expandLast );
TimeFrameSet( 2*in15Minute );
e3 = EMA( C, 85 );
TimeFrameRestore();
e3 = TimeFrameExpand( e3, 2 * in15Minute, expandLast );
TimeFrameSet( inHourly );
e4 = EMA( C, 85 );
TimeFrameRestore();
e4 = TimeFrameExpand( e4, inHourly, expandLast );
rrr = Ref( C, -1 );
xxx = ( rrr > e1 ) + ( rrr > e2 ) + ( rrr > e3 ) + ( rrr > e4 );
return xxx;
}