关于minmove
沪铝的minmove为什么显示1呢?我新建了一个公式,把帮助文档中的代码直接复制粘贴,在沪铝2505中运行了一下,结果控制台显示为1,不应该显示为5吗?制台显示为1,最小变动量应该是5才对呀?
沪铝的minmove为什么显示1呢?我新建了一个公式,把帮助文档中的代码直接复制粘贴,在沪铝2505中运行了一下,结果控制台显示为1,不应该显示为5吗?制台显示为1,最小变动量应该是5才对呀?
Events OnReady(){ String tmpCategory = IIFString(Category == Enum_CategoryFutures, "期货", IIFString(Category == Enum_CategoryOptions, "期权", "其他")); Print("大类:" + tmpCategory); Print("品种:" + SymbolType); Print("商品代码:" + Symbol); String tmpOption = IIFString(OptionStyle == Enum_EuropeanOption, "欧式", IIFString(OptionStyle == Enum_AmericanOption, "美式", "无行权")); Print("行权:" + tmpOption); Print("MinMove:" + Text(MinMove())); }用这个诊断代码,跑一下试试,看一下输出结果是啥?
回复:跑出来是螺纹的😨
回复:我明白了。我是从策略单元里面添加的商品,data0是螺纹,data1是沪铝。为了方便我把图表调成了只显示沪铝,但实际上data0依然是螺纹,所以公式是在data0的螺纹上跑的,所以minmove是1。
回复:这代码好用,我偷走了😀
回复:不过实话说,TB的数据中心里面有个小Bug,但是这个Bug就像【隐性基因】一样,一般情况下不会显性出来发病。这个Bug就是【沪铝】这个品种的合约属性的模板有2份,分别出现在了【期货合约属性】和【期权合约属性】里面,本来有2个地方出现,也算大问题,问题就出在了2份【合约属性】属性值不一样,其中很巧的是【MinMove】在【期权模板】中的值恰好是1,而不是5。TB的数据团队在创建【合约模板】【T_al.SHFE】时,一是重复在【期权合约模板】里面创建了【期货合约模板】,二是【沪铝合约模板】的【MinMove】盘口报价比较特殊,创建的时候可能是因为从普通品种的【模板数据】复制来的为1。
回复:牛,太细节了。
最小变动是minmove*pricescale
回复://------------------------------------------------------------------------// 简称: demo_minmove// 名称: // 类别: 公式应用// 类型: 用户应用// 输出: Void//------------------------------------------------------------------------Params //此处添加参数Vars //此处添加变量Defs //此处添加公式函数 Events //此处实现事件函数 //初始化事件函数,策略运行期间,首先运行且只有一次 OnInit() { } OnReady() { print("--------分隔1--------"); Print("MinMove:" + Text(MinMove())); print("--------分隔2--------"); Print("PriceScale:" + Text(PriceScale())); print("--------分隔3--------"); Print("相乘:" + Text(PriceScale*MinMove)); } //Bar更新事件函数,参数indexs表示变化的数据源图层ID数组 OnBar(ArrayRef<Integer> indexs) { }
回复:
回复:还是不对呀
回复:已经搞明白了,谢谢。
???为什么我print一下是5?
回复:我也很迷惑,应该是5才对。