计算delta值
以上代码计算delta值出来不对,是哪里有问题
以上代码计算delta值出来不对,是哪里有问题
主图为期权, 自动订阅其期货, 并计算delta
Params Numeric rate100(3.0); // 无风险利率 (%) Vars Global Integer srcID(0); // 标的资产数据源 ID Global Bool subFlag(False); // 订阅完成标记 Events OnInit() { // 铁律: 多数据源必须在 OnInit 中一次性订阅, 禁止在 OnBar 中 SubscribeBar srcID = SubscribeBar(RelativeSymbol(), "1d", BeginDateTime(), 0, Enum_Data_RolloverBackWard); If(srcID == InvalidInteger) { Return; // 订阅失败则跳过 } subFlag = True; } OnBar(ArrayRef<Integer> indexs) { Numeric assetPr = data[srcID].Close; // 标的资产价格 Numeric volty = Volatility(data[srcID].Close, 20); // 标的资产历史波动率 // Delta(DaysLeft, StrikePr, AssetPr, Rate100, Volty100, PutCall, EuroAmer01) Numeric deltaVal = Delta(TradingDayLeft(), StrikePrice(), assetPr, rate100, volty, OptionType(), OptionStyle()); If(deltaVal != InvalidNumeric) { Commentary("Delta="+text(deltaVal)); } }
jm2609-C-1340,软件显示为0.36,而计算出来为0.000663
改成下面的这段代码还是不行