The Option Expiration Week Effect (Amibroker Code)
Both options expiration week effect and quadruple witching day use the code below.
The strategy in plain English:
- We go long at the open on the first day of the options expiration week (Monday).
- We exit at the close of the options expiration week (Friday).
If Monday is a holiday, we enter on Tuesday. Likewise, if Friday is a holiday, we exit on Thursday.
Amibroker code:
setOption(“holdminbars”,1);
SetOption(“initialEquity”,100000);
setOption(“MaxOpenPositions”,1);
SetPositionSize(99.75,spsPercentOfEquity);
function DaysInMonth(MonthNum,YearNum)
{
_Daysinmonth=IIf(MonthNum==1 OR MonthNum==3 OR MonthNum==5 OR MonthNum==7 OR
MonthNum==8 OR MonthNum==10 OR MonthNum==12,31,30);
Daysinmonthfeb=IIf(YearNum%4 == 0 AND YearNum%100!=0,29,28);
_Daysinmonth=IIf(MonthNum==2,Daysinmonthfeb,_Daysinmonth);
return _Daysinmonth;
}
function DaysToThirdFriday()
{
d = Day();
wd = DayOfWeek();
DaysToFriday = IIf(5-wd<0, (12-wd) % 7, (5 – wd) % 7);
ThirdFriday = ((d + DaysToFriday) % 7)+14;
ThirdFriday = IIf(ThirdFriday==14, 21, ThirdFriday);
_DaysToThirdFriday = ThirdFriday – d;
_DaysToThirdFriday = IIf(_DaysToThirdFriday >= 0, _DaysToThirdFriday,
ThirdFriday+IIf(ThirdFriday+14>DaysInMonth(Month(),Year()),28,35)-d);
return _DaysToThirdFriday;
}
Plot(DaysToThirdFriday(), “Days to 3rd Friday”, colorBlack, styleLine);
Buy= DaysToThirdFriday()<6 AND DaysToThirdFriday()>2 ;
buyPrice=Open;
Sell= DayOfWeek()==5 OR DaysToThirdFriday()<1; // and month()==1 (add this code for selecting month)
sellPrice=Close ;
The code below plots the average volume on options expiration days:
VolOptionExpiration= IIf(DaysToThirdFriday()==0,V*22,0) ;
VolOptionQuadruple= IIf(DaysToThirdFriday()==0 AND (Month()==3 OR Month()==6 OR Month()==9 OR Month()==12),V*66,0) ;
MAVolOptionExpiration = MA(VolOptionExpiration,50) ;
MAVolOptionQuadruple = MA(VolOptionQuadruple,50) ;
Plot(MAVolOptionExpiration, “Volume Options Expiration Friday”, colorBlack, styleLine);
Plot(MAVolOptionQuadruple, “Volume Quadruple Witching Friday”, colorBlue, styleLine);
Plot(range, “Volume any day”, colorRed, styleLine);
Disclosure: We are not financial advisors. Please do your own due diligence and investment research or consult a financial professional. All articles are our opinions – they are not suggestions to buy or sell any securities.
