Hi,
If I am trading on a Weekly or Monthly bar and entering on the Open of the bar, where a single bar represents the Week or the Month, can I apply a Trailing stop as coded below? It would seem to be peeking in that it does not know the sequence of the High-Low on the entry bar.
Thanks,
Mike
_SECTION_BEGIN("Trading System");
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} – {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
SetOption("MaxOpenPositions", 28);
SetTradeDelays( 1,1,1,1);
SetOption( "InitialEquity", 200000);
SetOption("FuturesMode" ,True);
SetOption("MinShares",1);
Leverage=1.00;
SetOption("AccountMargin",100);
SetPositionSize (((100/1)*Leverage),spsPercentofEquity);
SetOption( "AllowPositionShrinking", True );
BuyPrice=Open;
ShortPrice=Open;
SellPrice=Open;
CoverPrice=Open;
LookBack =1; //24*4;// optimize("LookBack",12,96,96*15,96);//24*4;// 8=2 days back on 15-min chart, 1=6hours,0.5=3hours,etc.. (24hours*multiple)/4(15-minute bars)
function mROC( symbol, mode )
{
fO = Foreign( symbol, "O");
fC = Foreign( symbol, "C");
fH = Foreign( symbol, "H");
fL = Foreign( symbol, "L");
switch ( mode )
{
case "CC1":
returnvalue = ROC( fC, LookBack );
break;
case "OC0":
returnvalue = (fC- fO)/fO*100;
break;
case "HC0": //HCO
returnvalue = (fC - fH)/fH*100;
break;
case "LC0": //LC0
returnvalue = (fC - fL)/fL*100; // returnvalue = (fC - fL)/fL*100;
break;
default:
returnvalue = Null;
break;
}
return returnvalue;
}
n = Name();
weight1 =optimize("Weight1",0.5,-1.5,1.5,0.1);
weight2 =optimize("Weight2",0.4,-1.5,1.5,0.1);
weight3 =optimize("Weight3",0.1,-1.5,1.5,0.1);
weight4 =optimize("Weight4",-0.8,-1.5,1.5,0.1);
weight5 =optimize("Weight5",-0.2,-1.5,1.5,0.1);
//FXCM DECIMALS OPTIMIZE from SCRATCH
AUDCAD_IDEALPRO_CASH_30Val =mROC("NZDUSD.FXCM","CC1")*Weight1+mROC("EURUSD.FXCM","CC1")*Weight2+mROC("USDJPY.FXCM","CC1")*Weight3+mROC("USDCHF.FXCM","CC1")*Weight4+mROC("GBPNZD.FXCM","CC1")*Weight5;
AUDCHF_IDEALPRO_CASH_30Val =mROC("EURUSD.FXCM","CC1")*Weight1+mROC("USDCAD.FXCM","CC1")*Weight2+mROC("EURNZD.FXCM","CC1")*Weight3+mROC("EURAUD.FXCM","CC1")*Weight4+mROC("EURGBP.FXCM","CC1")*Weight5;
AUDJPY_IDEALPRO_CASH_30Val =mROC("EURGBP.FXCM","CC1")*Weight1+mROC("GBPCAD.FXCM","CC1")*Weight2+mROC("GBPAUD.FXCM","CC1")*Weight3+mROC("GBPCHF.FXCM","CC1")*Weight4+mROC("CHFJPY.FXCM","CC1")*Weight5;
Val=IIF(n=="AUDCAD.FXCM", AUDCAD_IDEALPRO_CASH_30Val,
IIF(n=="AUDCHF.FXCM", AUDCHF_IDEALPRO_CASH_30Val ,
IIF(n=="AUDJPY.FXCM", AUDJPY_IDEALPRO_CASH_30Val ,
AUDJPY_IDEALPRO_CASH_30Val)));
Buy= Val >1.00;
Sell = Val < 1.0 ;
Short= Val<-1.00;
Cover= Val>-1.0;
TrailStop = 0.250;
StopLoss=1.00;
SetOption("ActivateStopsImmediately", True) ;
ApplyStop( stopTypeTrailing, stopModePercent, TrailStop, 1, False, 0, 0);
ApplyStop( stopTypeLoss, stopModePercent, StopLoss, 1, False, 0, 0, -1, 0 );
//Target=0.2;
//ApplyStop(stopTypeProfit,stopModePercent,Target,1,False,0,0);
//ApplyStop( stopTypeNBar, stopModeBars, 2, 0, volatile = False, ReEntryDelay = 10, ValidFrom = 0, ValidTo = -1, ActivationFloor = 0 );