关于PriceScale价格缩放因子的问题,比如:铁矿石,最小波动价格为0.5,允许跳点为5点,现在价格是800,那么向上是802.5,向下是797.5。
逻辑一:那么,在定义是最小价格位输入0.5(手动输入),缩放因子为1(手动输入),允许跳点为5(手动输入),也就是0.5*1*5=2.5
逻辑二:那么,定义是最小价格位输入1(默认值),缩放因为为(1/最小变动价位),也就是1/0.5=2,允许跳点为5(手动输入),也就是1*2*5=10
这两个逻辑,哪一个逻辑符合上面的要求呢?
代码逻辑如下:
// --- 策略参数 ---
Params
//String Symbol("rb0000");
Numeric PriceOffset(5); // 滑点控制(允许多少滑点)
Numeric Rate(0.0005); // 手续费率
Numeric MinMove(1); // 最小变动价位(默认就是1)
Numeric PriceScale(1); // 价格缩放因子(就是用1除以合约最小变动价位,如合约最小变动为0.5,就是1/0.5=2)
Numeric ContractSize(10); // 合约乘数
Numeric UserMarginRate(0.1); // 保证金比例(手工参数)
// ===== 资金需求计算 =====
Numeric TickPrice = PriceOffset * MinMove * PriceScale;
Numeric OneLotMargin = Close * ContractSize * UserMarginRate;
Numeric OneLotFee = Close * ContractSize * Rate;
Numeric OneLotSlippage = TickPrice;
Numeric OneLotFunds = OneLotMargin + OneLotFee + OneLotSlippage;
Numeric RequiredFunds = OneLotFunds * EntryLots;
Numeric AvailableCapital = Portfolio_CurrentCapital();
一跳就是minmove*pricescale,5跳就是5*minmove*pricescale
上面说的什么意思看不懂