And this is for the ShortStrangle example on p.45 of the CBOE Margin Handbook : Using rule 3: Code: calc_margin_req(sPosition=ShortStrangle, uParCode=0, S=92.6300, K=90.00, Pr=7.0000, K2=90.00, Pr2=3.7000) calc_margin_req(sPosition=NakedCall, uParCode=0, S=92.6300, K=90.00, Pr=7.0000) ITMval=2.6300 OTMval=0.0000 MarginAcct: InitReq=107.0000 calc_margin_req(sPosition=NakedPut, uParCode=0, S=92.6300, K=90.00, Pr=3.7000) ITMval=0.0000 OTMval=2.6300 MarginAcct: InitReq=103.7000 ITMval=0.0000 OTMval=0.0000 MarginAcct: InitReq=110.7000 Without using rule 3 (this then gives the same result as the CBOE example): Code: calc_margin_req(sPosition=ShortStrangle, uParCode=1, S=92.6300, K=90.00, Pr=7.0000, K2=90.00, Pr2=3.7000) calc_margin_req(sPosition=NakedCall, uParCode=1, S=92.6300, K=90.00, Pr=7.0000) ITMval=2.6300 OTMval=0.0000 MarginAcct: InitReq=25.5260 calc_margin_req(sPosition=NakedPut, uParCode=1, S=92.6300, K=90.00, Pr=3.7000) ITMval=0.0000 OTMval=2.6300 MarginAcct: InitReq=19.5960 ITMval=0.0000 OTMval=0.0000 MarginAcct: InitReq=29.2260 And below is the CBOE MarginReq for ShortStrangle example on p.45 (ie. the above result is equal to this CBOE example):
The $100 is per contract, ie. then in the above code "100 / multiplier" has to be used, ie. practically $1. Why TradeStation is using it is not clear to me. Hmm. maybe to make it expensive for option writers who write countless options for $0.01 each (ie. $1 credit per contract)?..
Just for the sake of completeness: X3 in the above code has to be changed as follows: Code: const double X3 = Pr + 1.0; // INFO: $1 * multiplier 100 makes the said $100 per contract