Index Futures and Options

本文介绍了恒生指数期货及期权的系列名称标准,包括根符号、合约月份代码、合约年份代码等内容。此外,还详细解释了指数期货、期权以及组合交易的命名规则。

 

 

 

 

Index Futures and Options

 

 

The series name standards are illustrated below:

 

Root Symbol

HSI – Hang Seng Index

MHI – Mini-Hang Seng Index

HHI – Hang Seng China Enterprises Index

MCH – Mini-Hang Seng China Enterprises Index

 

For details, refer to the Instrument Explorer window in the CLICK Trade application

or the HKEx website www.hkex.com.hk/prod/equityip/equityindexproducts.htm

 

 

 

Contract Month Code

 

 

Contract Month           Contract Month Code

                         Futures                 Call                       Put

January                  F                       A                          M

February                 G                       B                          N

March                    H                       C                          O

April                    J                       D                          P

May                      K                       E                          Q

June                     M                       F                          R

July                     N                       G                          S

August                   Q                       H                          T

September                U                       I                          U

October                  V                       J                          V

November                 X                       K                          W

December                 Z                       L                          X

 

  

 

Contract Year Code

7 – 2007

8 – 2008

9 – 2009

0 – 2010

  

 

 

 

 

Series Name of Index Futures

The first 3 characters – The Root Symbol

The 4th character – The Contract Month Code

The 5th character – The Contract Year Code

 

Example:

Buy one “HSIU7” contract = Buy one Hang Seng Index Futures expiring in September 2007

 

 

Series Name of Index Options

The first 3 characters – The Root Symbol

The next 5 characters – The Strike Price

The 9th character – The Call/Put Contract Month Code

The 10th character – The Contract Year Code

  

Examples:

Buy one “HSI16000A8” contract = Buy one Hang Seng Index Call Option expiring in January 2008 with Strike Price at 16000

 

Sell one “HHI5800V7” contract = Sell one Hang Seng China Enterprises Index Put Option expiring in October 2007 with Strike Price at 5800

 

 

Series Name of Index Standard Combinations

 

Type 1: Calendar Spreads

The first 3 characters – The Root Symbol

The 4th and 5th characters – The Contract Month Code and Contract Year Code of the Near Month Contract

The 6th character – The “/” symbol

The 7th and 8th characters – The Contract Month Code and Contract Year Code of the Far Month Contract

 

Long a calendar spread of Index Futures at a positive price involves selling the near month contract at a discount price (in comparison with the far month contract) and buying the far month contract at a premium price (in comparison with the near month contract) simultaneously.

 

Long a calendar spread of Index Futures at a negative price involves selling the near month contract at a premium price (in comparison with the far month contract) and buying the far month contract at a discount price (in comparison with the near month contract) simultaneously.

 

While short a calendar spread of Index Futures at a positive/negative price is just doing the opposite.

 

Examples:

Buy one “MHIN8/U8” contract = Buy one Mini-Hang Seng Index Futures expiring in September 2008 and at the same time sell one expiring in July 2008.

 

Sell one “HHIF9/H9” contract = Buy one Hang Seng China Enterprises Index Futures expiring in January 2009 and at the same time sell one expiring in March 2009.

 

Type 2: Straddles

A straddle involves buying both the call option and the put option of the same expiry month at the same Strike Price.

 

The first 3 characters – The Root Symbol

The next 3 characters – The first 3 digits of the Strike Price

The 7th and 8th characters – The Contract Month Code and Contract Year Code of the call option

The 9th character – The “/” symbol

The 10th and 11th characters – The Contract Month Code and Contract Year Code of the put option

 

Long a Straddle of Index Options is buying both the call option and the put option of the same expiry month at the same Strike Price.

 

Short a Straddle of Index Options is selling both the call option and the put option of the same expiry month at the same Strike Price.

 

Example:

Buy one “HSI150K8/W8” contract = Buy one Hang Seng Index call option and put option expiring in November 2008 with the same Strike Price at 15000 at the same time.

 

* Straddles are available in the Hang Seng Index Options market ONLY*

 

 

Type 3: Strangles

A Strangle involves buying a call option at a higher strike price and a put option at a lower strike price of the same expiry month.

 

The first 3 characters – The Root Symbol

The next 3 characters – The first 3 digits of Strike Price of the call option The 7th and 8th characters – The Contract Month Code and Contract Year Code of the call option

The 9th character – The “/” symbol

The next 3 characters – The first 3 digits of Strike Price of the put option

The 13th and 14th characters – The Contract Month Code and Contract Year Code of the put option

 

Long a Strangle of Index Options involves buying a call option at a higher strike price and a put option at a lower strike price of the same expiry month.

Short a Strangle of Index Options involves selling a call option at a higher strike price and a put option at a lower strike price of the same expiry month

 

Example:

Buy one “HSI178J8/174V8” contract = Buy one Hang Seng Index call option with Strike Price at 17800 and put option with Strike Price at 17400 expiring in October 2008 at the same time.

 

* Strangles are available in the Hang Seng Index Options market ONLY*

*For details of the Hang Seng Index, Mini-Hang Seng Index, H-shares Index, FTSE/Xinhua China 25 Index Futures and Options, Hang Seng China H-Financials Index and Mini-H-shares Index Futures, refer to the respective specifications online.

 

class genTestcaselist(): def __init__(self,pjPath): self.testCaselist = [] self.testCfglist = [] self.msgCtrlObj = setEnvMsg("Analysis testcase and testlist infomation") self.projPath = pjPath self.cfgObj = getTestConfig() self.testCount = 0 self.waveCtrl = False self.seedWorkCtrl = False self.compVarList = [] self.compvarCount = 0 def genTestcase(self): if options.testCfgName!=None: for cfgName in options.testCfgName: if cfgName not in self.testCfglist: self.testCfglist.append(cfgName) if options.countCtrl: self.waveCtrl = False self.seedWorkCtrl = True if len(self.testCfglist)==0: self.testCfglist.append(options.caseCfgName) for testName in options.testNameCtrl: if os.path.exists(self.projPath+"/"+testName)==False and options.testCheckCtrl==1: self.msgCtrlObj.fatalMsgPrint("No exist " + testName + " in " + self.projPath) else: for cfgName in self.testCfglist: if options.testCheckCtrl==0: self.cfgObj.getCfgInfo(self.projPath+"/",cfgName) else: self.cfgObj.getCfgInfo(self.projPath+"/"+testName,cfgName) curCompVar = self.cfgObj.getCompOpts() if self.compVarList.count(curCompVar)==0: self.compVarList.append(curCompVar) self.compvarCount = self.compVarList.index(curCompVar) curTestCfgName = self.cfgObj.getCfgFileName() simVarList = self.cfgObj.getSimOpts() preVarList = self.cfgObj.getPreSimProc() postVarList = self.cfgObj.getPostSimProc() falseErrVarList = self.cfgObj.getFalseErr() expectErrVarList = self.cfgObj.getExpectErr() falseWarnVarList = self.cfgObj.getFalseWarn() expectWarnVarList = self.cfgObj.getExpectWarn() for curCountVal in range(0,options.countCtrl): if options.seedCtrl: curSeedData = options.seedCtrl.pop(0) else: randSeedObj = genRandSeed() curSeedData = randSeedObj.genRandData() curTestcaseInfo = [testName,curSeedData,curTestCfgName,self.compvarCount,self.compVarList[self.compvarCount],simVarList,preVarList,postVarList,falseErrVarList,expectErrVarList,falseWarnVarList,expectWarnVarList] self.testCaselist.append(curTestcaseInfo) self.testCount += 1 else: testNameList = options.testNameCtrl[:] testcaseCount = len(testNameList) if options.seedCtrl!=None: seedCount = len(options.seedCtrl) else: seedCount = 1 if len(self.testCfglist)==0: self.testCfglist.append(options.caseCfgName) testCfgCount = len(self.testCfglist) if testcaseCount == 1: self.waveCtrl = options.waveCtrl curTestcase = testNameList.pop(0) if os.path.exists(self.projPath+"/"+curTestcase)==False and options.testCheckCtrl==1: self.msgCtrlObj.fatalMsgPrint("No exist " + curTestcase + " in " + self.projPath) else: seedCountCtrl = int(math.ceil(float(seedCount)/float(testCfgCount))) for cfgName in self.testCfglist: if options.testCheckCtrl==0: self.cfgObj.getCfgInfo(self.projPath+"/",cfgName) else: self.cfgObj.getCfgInfo(self.projPath+"/"+curTestcase,cfgName) curCompVar = self.cfgObj.getCompOpts() if self.compVarList.count(curCompVar)==0: self.compVarList.append(curCompVar) self.compvarCount = self.compVarList.index(curCompVar) curTestCfgName = self.cfgObj.getCfgFileName() simVarList = self.cfgObj.getSimOpts() preVarList = self.cfgObj.getPreSimProc() postVarList = self.cfgObj.getPostSimProc() falseErrVarList = self.cfgObj.getFalseErr() expectErrVarList = self.cfgObj.getExpectErr() falseWarnVarList = self.cfgObj.getFalseWarn() expectWarnVarList = self.cfgObj.getExpectWarn() for seedIdx in range(0,seedCountCtrl): if options.seedCtrl: curSeedData = options.seedCtrl.pop(0) else: randSeedObj = genRandSeed() curSeedData = randSeedObj.genRandData() curTestcaseInfo = [curTestcase,curSeedData,curTestCfgName,self.compvarCount,self.compVarList[self.compvarCount],simVarList,preVarList,postVarList,falseErrVarList,expectErrVarList,falseWarnVarList,expectWarnVarList] self.testCaselist.append(curTestcaseInfo) self.testCount += 1 if self.testCount>1: self.seedWorkCtrl = True else: self.seedWorkCtrl = options.seedWorkCtrl else: self.waveCtrl = options.waveCtrl for testName in options.testNameCtrl: if os.path.exists(self.projPath+"/"+testName)==False and options.testCheckCtrl==1: self.msgCtrlObj.fatalMsgPrint("No exist " + testName + " in " + self.projPath) else: if len(self.testCfglist): cfgName = self.testCfglist.pop(0) else: cfgName = options.caseCfgName if options.testCheckCtrl==0: self.cfgObj.getCfgInfo(self.projPath+"/",cfgName) else: self.cfgObj.getCfgInfo(self.projPath+"/"+testName,cfgName) curCompVar = self.cfgObj.getCompOpts() if self.compVarList.count(curCompVar)==0: self.compVarList.append(curCompVar) self.compvarCount = self.compVarList.index(curCompVar) curTestCfgName = self.cfgObj.getCfgFileName() simVarList = self.cfgObj.getSimOpts() preVarList = self.cfgObj.getPreSimProc() postVarList = self.cfgObj.getPostSimProc() falseErrVarList = self.cfgObj.getFalseErr() expectErrVarList = self.cfgObj.getExpectErr() falseWarnVarList = self.cfgObj.getFalseWarn() expectWarnVarList = self.cfgObj.getExpectWarn() if options.seedCtrl: curSeedData = options.seedCtrl.pop(0) else: randSeedObj = genRandSeed() curSeedData = randSeedObj.genRandData() curTestcaseInfo = [testName,curSeedData,curTestCfgName,self.compvarCount,self.compVarList[self.compvarCount],simVarList,preVarList,postVarList,falseErrVarList,expectErrVarList,falseWarnVarList,expectWarnVarList] self.testCaselist.append(curTestcaseInfo) self.testCount += 1 if self.testCount>1: self.seedWorkCtrl = True else: self.seedWorkCtrl = options.seedWorkCtrl def genTestlist(self): curTestname = "" curCount = "" curTestCfg = "" curCompVar = "" simVar = "" seedVar = "" lineInfo = "" fileHandle = open(options.testListFile,'r') self.waveCtrl = False self.seedWorkCtrl = True while True: lineContext = fileHandle.readline() if not lineContext: break lineInfo = lineContext.strip() if len(lineInfo)==0: continue reInfo = "^\s*#.*" lineObj= re.match(reInfo,lineContext) if lineObj: continue else: testInfoQueue = lineContext.split(";") if len(testInfoQueue)<=2: self.msgCtrlObj.fatalMsgPrint("Regression list include testcase and count, current line: %0s"%(lineContext)) curTestname = testInfoQueue[0].strip() curCount = testInfoQueue[1].strip() if len(testInfoQueue)>2: curTestCfg = testInfoQueue[2].strip() if len(testInfoQueue)>3: curCompVar = testInfoQueue[3].strip() if len(testInfoQueue)>4: simVar = testInfoQueue[4].strip() #support multi seed if len(testInfoQueue)>5: seedVar = testInfoQueue[5].strip() seedTempVar = re.sub(' +',' ',seedVar) seedVarList = seedTempVar.split(' ') if os.path.exists(self.projPath+"/"+curTestname)==False and options.testCheckCtrl==1: self.msgCtrlObj.fatalMsgPrint("No exist " + curTestname + " in " + self.projPath) else: testMacroVarList = [] noMacroVarList = [] compMacroVar = "" compNoMacroVar = "" if curTestCfg: testCfgFile = curTestCfg elif options.testCfgName!=None: testCfgFile = options.testCfgName.pop(0) else: testCfgFile = options.caseCfgName if options.testCheckCtrl==0: self.cfgObj.getCfgInfo(self.projPath+"/",testCfgFile) else: self.cfgObj.getCfgInfo(self.projPath+"/"+curTestname,testCfgFile) #test.cfg compile parameter testCompVar = self.cfgObj.getCompOpts() compOptsVar = re.sub(' +',' ',testCompVar) CompVarList = compOptsVar.split(' ') CompVarList.sort() for macroVar in CompVarList: if macroVar: macroObj = re.match('\+define\+',macroVar) if macroObj: macroTmpVar = re.sub('\+define\+','',macroVar) macroVarList = macroTmpVar.split('+') macroVarList.sort() for compVar in macroVarList: if compVar not in testMacroVarList: testMacroVarList.append(compVar) else: compVar = re.sub(':',' ',macroVar) noMacroVarList.append(compVar) #List compile parameter testCompVar = curCompVar compOptsVar = re.sub(' +',' ',testCompVar) CompVarList = compOptsVar.split(' ') CompVarList.sort() for macroVar in CompVarList: if macroVar: macroObj = re.match('\+define\+',macroVar) if macroObj: macroTmpVar = re.sub('\+define\+','',macroVar) macroVarList = macroTmpVar.split('+') macroVarList.sort() for compVar in macroVarList: if compVar not in testMacroVarList: testMacroVarList.append(compVar) else: compVar = re.sub(':',' ',macroVar) noMacroVarList.append(compVar) #Merge all compile parameter if len(testMacroVarList): compMacroVar = "+define+" + "+".join(testMacroVarList) if len(noMacroVarList): compNoMacroVar = " ".join(noMacroVarList) if compMacroVar or compNoMacroVar: compMacroVar = compMacroVar + " " + compNoMacroVar if self.compVarList.count(compMacroVar)==0: self.compVarList.append(compMacroVar) self.compvarCount = self.compVarList.index(compMacroVar) #Sim paramter simVarList = self.cfgObj.getSimOpts() if simVar: simVarList = simVarList.strip() + " " + simVar curTestCfgName = self.cfgObj.getCfgFileName() preVarList = self.cfgObj.getPreSimProc() postVarList = self.cfgObj.getPostSimProc() falseErrVarList = self.cfgObj.getFalseErr() expectErrVarList = self.cfgObj.getExpectErr() falseWarnVarList = self.cfgObj.getFalseWarn() expectWarnVarList = self.cfgObj.getExpectWarn() for curCountVal in range(0,int(curCount)): if curCountVal>=len(seedVarList): randSeedObj = genRandSeed() curSeedData = randSeedObj.genRandData() elif seedVarList[curCountVal]: curSeedData = int(seedVarList[curCountVal]) else: randSeedObj = genRandSeed() curSeedData = randSeedObj.genRandData() curTestcaseInfo = [curTestname,curSeedData,curTestCfgName,self.compvarCount,self.compVarList[self.compvarCount],simVarList,preVarList,postVarList,falseErrVarList,expectErrVarList,falseWarnVarList,expectWarnVarList] self.testCaselist.append(curTestcaseInfo) self.testCount += 1 fileHandle.close() def getTestList(self): return self.testCaselist def getWaveCtrl(self): return self.waveCtrl def getSeedPathCtrl(self): return self.seedWorkCtrl def getTestcaseCount(self): return self.testCount def getCompVar(self): return self.compVarList
06-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值