回测数据粒度对回测的影响

以下测试代码,对于不同的数据粒度(A.实盘级别回测、B.模拟级别回测较小底层K线周期、C.模拟级别回测较大底层K线周期、其它等..),均有不同表现。交易次数、盈亏结果均不同。回测时应尽量保持较小的数据粒度,数据粒度过大可能回测较快,但是结果可能并不客观。

/*backtest
start: 2025-04-01 08:00:00
end: 2025-04-18 00:00:00
period: 1m
exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":1000000}]
mode: 1
*/

var delta = 50
var lotSize = 0.001
var lastPrice = null
var direction = null 

function main() {
    while (true) {
        var ticker = _C(exchange.GetTicker)
        if (!lastPrice) {
            lastPrice = ticker.Last
        }
        var diff = ticker.Last - lastPrice
        if ((!direction || direction == "long") && diff >= delta) {
            // 价格上涨超过阈值 -> 做空
            exchange.Sell(ticker.Last, lotSize)
            Log("做空 @", ticker.Last)
            direction = "short"
        } else if ((!direction || direction == "short") && diff <= -delta) {
            // 价格下跌超过阈值 -> 做多
            exchange.Buy(ticker.Last, lotSize)
            Log("做多 @", ticker.Last)
            direction = "long"
        }
        // Tick 模式中尽可能短,K线回测中没影响
        Sleep(100)
    }
}