Here is the code...Tried through StaticVarset. But still not working.
Brief details of variables used:
Using "intrade" to capture information of trade taken.
Using "Bartime" to capture bar timestamp- (chart timeinterval is 1 minute, but scanner will be running every 5 secs to check whether stoploss hit or not. Therefore, want to avoid mulitple orders creation at same bar)
OpenPosname- is used to capture the symbol name, so that 1. no new short signals until previous one is closed. 2. cover rule can be used only for open position (for other portfolio stocks, cover rules can be skipped)
Short = 0;
Cover = 0;
Formula66MA = MA(C,18);
LessVolatility = HHV(High,60)/LLV(Low,60) < 1.1 ;
Uptrend = Close > MA(Close,200);
PrevDclose = TimeFrameGetPrice("Close", inDaily,-1);
TodayLow = TimeFrameGetPrice("Close", inDaily,-1);
intrade = staticvarget("intrade");
Bartime = staticvarget("Bartime");
Samebar = Bartime == timenum();
StaticVarSet("SameBar", SameBar);
SameBar = StaticVarGet("SameBar");
SameBar = Nz(SameBar);
//Enter Short
If (Not Lastvalue(intrade) AND NOT LastValue(SameBar))
{
Formula66MA = MA(C,18);
LessVolatility = HHV(High,60)/LLV(Low,60) < 1.1 ;
Uptrend = Close > MA(Close,200);
ShortRule1 = cross( Close,MA(Close,18)) ;
Short = ref(ShortRule1,-1);
Shortprice = open;
if(LastValue(Short))
{
Staticvarset("intrade", 1);
StaticVarSetText("OpenPosName", Name());
}
}
//Enter Cover
intrade = staticvarget("intrade");
OpenPosName = Staticvargettext("OpenPosName");
MatchPos = OpenPosName == Name();
If (Lastvalue(intrade) and LastValue(MatchPos))
{
PrevDclose = TimeFrameGetPrice("Close", inDaily,-1);
TodayLow = TimeFrameGetPrice("Close", inDaily,-1);
CoverRule1 = Cross(Formula66MA, Close) AND Close < PrevDClose ;
Cover = ref(CoverRule1,-1) OR TimeNum() >= 152100 ;
Coverprice = Open;
amount = 1.5; //Optimize("SL", .1, .1, 5, .1);
//ApplyStop( stopTypeLoss, stopModePercent, amount, True );
amount = 0.1 ; //Optimize("SL", .1, .1, 5, .1);
ApplyStop( stopTypeLoss, stopModePercent, amount, True );
amount = 3.5 ; //Optimize("SL", 1, .5, 10, .5);
ApplyStop( stopTypeProfit, stopModePercent, amount, True );
period = 22; // ATR period
multiplier = 3; // ATR multiplier
ApplyStop(stopTypeTrailing, stopModePoint, multiplier*ATR( period ), True, True, 0, 120 );
if(Lastvalue(Cover) ==1 or Lastvalue(Cover) ==2 or Lastvalue(Cover) ==3 or Lastvalue(Cover) ==4 or Lastvalue(Cover) ==5)
{
Staticvarremove("intrade");
Staticvarremove("OpenPosName");
intrade = StaticVarGet("intrade");
OpenPosName = StaticVarGet("OpenPosName");
}
}
wlLastsym = "Zeel-I.NFO"; // watchlist last symbol
CurrentSYMisLastSYM = wlLastsym == Name();
bartime = timenum();
StaticVarSet("bartime", LastValue(bartime));
bartime = StaticVarGet("bartime");
intrade = StaticVarGet("intrade");
OpenPosName = StaticVarGettext("OpenPosName");
//* Plot cover and Short Signal Arrows */
PlotShapes(IIf(Cover, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(Cover, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(Cover, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
//PlotShapes(IIf(cover==2, shapeHollowDownTriangle, shapeNone),4,0,ShortPrice,0);
Plot(Formula66MA, "MA18", colorBlue);
Plot(MA(Close,200), "MA200", colorYellow);
Filter = Short OR cover ; //CheckRuleA ;
SetSortColumns( -3,-1 );
AddColumn( PrevDClose, "PrevDClose" );
AddColumn( Close, "Close" );
AddColumn( Short, "Short" );
AddColumn( Cover, "Cover" );
AddColumn( intrade, "intrade");
AddTextColumn( OpenPosName, "OpenPosName");
AddColumn(Bartime, "Bartime");