Professional Documents
Culture Documents
Range Breakout Strategy 7.0
Range Breakout Strategy 7.0
Out_TrendDownArray, Out_Trend )
{
shrink = 2 ^ ( -HalfLife );
shrink2 = 1 - shrink;
topChan[0] = High[0];
botChan[0] = Low[0];
Up = topChan;
Dn = botChan;
/*TrendUp=TrendDown=Null;
trend[0]=1;*/
changeOfTrend = 0;
flag = flagh = 0;
TrendUp[i] = Null;
TrendDown[i] = Null;
trend[i] = 1;
if( flag == 1 )
{
Up[i] = topchan[i];
}
if( flagh == 1 )
{
Dn[i] = botChan[i];
}
if( trend[i] == 1 )
{
TrendUp[i] = Dn[i];
if( changeOfTrend == 1 )
{
TrendUp[i - 1] = TrendDown[i - 1];
changeOfTrend = 0;
}
}
else
if( trend[i] == -1 )
{
TrendDown[i] = Up[i];
if( changeOfTrend == 1 )
{
TrendDown[i - 1] = TrendUp[i - 1];
changeOfTrend = 0;
}
} //end for
tn = TimeNum();
startTime = 92459; // start in HHMMSS format
endTime = 150000; // end in HHMMSS format
tradeEndTime = 152000;
timeOK = tn >= startTime AND tn <= endTime;
// Volume validation
VOL_PER = 5;
TimeFrameSet( inDaily );
VALID_VOLUME_DAILY = MA(Ref(V,-1), VOL_PER) >= VOLUME_THRESHHOLD AND Ref(V,-1) >=
VOLUME_THRESHHOLD;
TimeFrameRestore();
VALID_VOLUME = TimeFrameExpand( VALID_VOLUME_DAILY, inDaily );
Buy0 = Buy0 AND VALID_VOLUME;
Sell0 = Sell0 AND VALID_VOLUME;
Buy1=Sell1=Null;
Buy1 = ( EMA( C, Period1 ) > EMA( C, Period2 ) AND EMA( C, Period2 ) > EMA( C,
Period3 ) );
Sell1 = ( EMA( C, Period1 ) < EMA( C, Period2 ) AND EMA( C, Period2 ) < EMA( C,
Period3 ) );
if( bflag )
{
// Trailing stoploss for buy trades
if( Buy[i] ) tslBarr[i] = Max( tslBarr[i - 1], longtrade_entry -
tslmultiple * atrarr[i] );
else tslBarr[i] = Max( tslBarr[i - 1], H[i] - tslmultiple * atrarr[i] );
}
if( ( Sell0[i] OR L[i] <= tslBarr[i - 1] OR tn[i] > tradeEndTime ) AND bflag ==
1 )
{
Sell[i] = 1;
bflag = 0;
SellPrice[i] = C[i];
// Short conditions
if( Sell0[i] AND sflag == 0 AND bflag == 0 )
{
Short[i] = 1;
sflag = 1;
ShortPrice[i] = range_lo[i];
shorttrade_entry = ShortPrice[i];
if( sflag )
{
if( Short[i] ) tslSarr[i] = Min( tslSarr[i - 1], shorttrade_entry +
tslmultiple * atrarr[i] );
else tslSarr[i] = Min( tslSarr[i - 1], L[i] + tslmultiple * atrarr[i] );
if( ( Buy0[i] OR H[i] >= tslSarr[i - 1] OR tn[i] > tradeEndTime ) AND sflag ==
1 )
{
Cover[i] = 1;
sflag = 0;
CoverPrice[i] = C[i];
Title = Name() + " " + Interval( 2 ) + " " + Date() + EncodeColor( colorWhite ) +
EncodeColor( colorWhite ) + " O: " + O + " " + "H: " + H + " " + "L: " + L + " "
+ "C: " + C + " " +
"\nRange Breakout Strategy 7.0" + " - Buy0: " + Buy0 + " Sell0: " + Sell0
+ " Range Hi: " + range_hi + " Range Lo: " + range_lo + " SL: " +tslSarr + " BL: "
+ tslBarr;
_SECTION_END();