//Coded by Rajandran R - Marketcalls
//website - www.marketcals.in
//Version 1.0.0.1
//Coded Date : 04/07/2021
//Symbol Format - NIFTY29JUL2115700CE Spot+Expiry+StrikePrice+OptionType(CE/PE)
_SECTION_BEGIN("ATM/ITM/OTM Caclulation");
EnableTextOutput(False);
spot = Paramlist("Spot Symbol","NIFTY|BANKNIFTY");
expiry = ParamStr("Expiry Date","29JUL21");
offsetCE = Param("CE Offset",-1,-40,40,1);
offsetPE = Param("PE Offset",-1,-40,40,1);
optionCEtype = WriteIf(offsetCE == 0, "ATM CE", WriteIf(offsetCE<0,"ITM"+abs(offsetCE)+" CE","OTM"+abs(offsetCE)+" CE"));
optionPEtype = WriteIf(offsetPE == 0, "ATM PE", WriteIf(offsetPE<0,"ITM"+abs(offsetPE)+" PE","OTM"+abs(offsetPE)+" PE"));
if(spot == "NIFTY")
{
Symbol = "NIFTY 50.NSE_IDX";
iInterval= 50;
}
if(spot == "BANKNIFTY")
{
Symbol = "NIFTY BANK.NSE_IDX";
iInterval= 100;
}
SetForeign(Symbol);
spotC = Close;
RestorePriceArrays();
//Maintain Array to Store ATM Strikes for each and every bar
strike = IIf(spotC % iInterval > iInterval/2, spotC - (spotC%iInterval) + iInterval,
spotC - (spotC%iInterval));
strikeCE = strike + (offsetCE * iInterval);
strikePE = strike - (offsetPE * iInterval);
//Derives the Symbol Format from the Strike Price
symCE = spot+expiry+strikeCE+"CE";
symPE = spot+expiry+strikePE+"PE";
printf("\nTrading CE Symbol :"+symCE);
printf("\nTrading PE Symbol :"+symPE);
printf("\n");
//Datafeed Symbol Format
SymbolCE = symCE+".NFO";
SymbolPE = symPE+".NFO";
printf("\nDatafeed CE Symbol :"+SymbolCE);
printf("\nDatafeed PE Symbol :"+SymbolPE);
//Call Options LTP
SetForeign(SymbolCE);
CEclose = Close;
RestorePriceArrays();
//Put Options LTP
SetForeign(SymbolPE);
PEclose = Close;
RestorePriceArrays();
//Dasboard
GfxSelectFont( "BOOK ANTIQUA", 12, 100 );
GfxSetBkMode( 1 );
GfxSetTextColor ( colorWhite );
GfxSelectSolidBrush( colorDarkGrey );
pxHeight = Status( "pxchartheight" ) ;
xx = Status( "pxchartwidth");
x = 5;
x2 = 340;
y = pxHeight;
GfxSelectPen( colorLightBlue, 1); // border color
GfxRoundRect( x, y - 155, x2, y-30 , 7, 7 ) ;
GfxTextOut( optionCEtype+" :" +symCE,13,y-130);
GfxTextOut("CE Premium - "+CEclose,13,y-110);
GfxTextOut( optionPEtype+" :" +symPE,13,y-90);
GfxTextOut("PE Premium - "+PEclose,13,y-70);
_SECTION_END();
_SECTION_BEGIN("Price");
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 ) ) ));
Plot( C, "Close", ParamColor("Color", colorDefault ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() );
_SECTION_END();Hướng dẫn: Copy đoạn mã trên, mở AmiBroker Formula Editor, dán vào và lưu lại với tên tương ứng.