// 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);
}