// Downloaded From https://www.WiseStockTrader.com // AFL code by E.M.Pottasch, Feb 2014 // testing Pair trading using stocks SetTradeDelays(0,0,0,0); SetOption("CommissionMode",3); SetOption("CommissionAmount",0.005); SetOption("MaxOpenPositions",2); SetOption("PriceBoundChecking",False); Symbol1="IWM"; Symbol2="SPY"; Symbol1_price=Foreign(Symbol1,"Close"); Symbol2_price=Foreign(Symbol2,"Close"); slip=0.0; per=20; // normalized price: (Price-Mean)/(Standard Deviation) Symbol1_Normalized_price=(Symbol1_price-MA(Symbol1_price,per))/StDev(Symbol1_price,per); Symbol2_Normalized_price=(Symbol2_price-MA(Symbol2_price,per))/StDev(Symbol2_price,per); spread=(Symbol1_Normalized_price-Symbol2_Normalized_price); YourSystemEntrySignal=Cross(-1,spread); YourSystemExitSignal=Cross(spread,1); if(Name()==Symbol1) { Buy=YourSystemEntrySignal;BuyPrice=C+slip; Sell=YourSystemExitSignal;SellPrice=C-slip; Buy=ExRem(Buy,Sell); Sell=ExRem(Sell,Buy); Short=Sell;ShortPrice=C-slip; Cover=Buy;CoverPrice=C+slip; SetPositionSize(5000,spsValue); } if(Name()==Symbol2) { Short=YourSystemEntrySignal;ShortPrice=C-slip; Cover=YourSystemExitSignal;CoverPrice=C+slip; Short=ExRem(Short,Cover); Cover=ExRem(Cover,Short); Buy=Cover;BuyPrice=C+slip; Sell=Short;SellPrice=C-slip; SetPositionSize(5000,spsValue); } SetChartOptions(0,chartShowDates); Plot(spread,"\nSI",colorBlue,styleThick); Plot(Symbol1_Normalized_price,"\n"+Symbol1,colorWhite,1); Plot(Symbol2_Normalized_price,"\n"+Symbol2,colorRed,1); if(Name()==Symbol1) { PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorDarkGreen,0,spread,-15); PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,spread,-15); } if(Name()==Symbol2) { PlotShapes(IIf(Short,shapeSmallDownTriangle,shapeNone),colorRed,0,spread,-15); PlotShapes(IIf(Cover,shapeSmallUpTriangle,shapeNone),colorDarkGreen,0,spread,-15); }