1
집중하다
0
수행원

시뮬레이션 백테스트의 수익 개요를 보면 판매만 있고 구매는 없다는 것입니다.

만든 날짜: 2020-12-07 23:24:34, 업데이트 날짜:
comments   2
hits   1050

시뮬레이션 백테스트의 수익 개요를 보면 판매만 있고 구매는 없다는 것입니다.

시뮬레이션 백테스트의 수익 개요를 보면 판매만 있고 구매는 없다는 것입니다.

그림에서 보듯이, 현금 거래를 테스트했을 때, 수익 개요의 차트는 구매를 빈 창고로 간주하고, 판매는 통계가 없으며, 어떤 신을 가리킬 수 있는지 모르겠습니다. 다른 하나는exchange.GetPosition()포지션을 얻는 방법은 피드백에서 지원되지 않는 것으로 나타났습니다. 코드는 다음과 같습니다.

/*backtest
start: 2020-05-01 00:00:00
end: 2020-12-03 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Huobi","currency":"BTC_USDT"}]
*/

var times = 0;
var lasttime = null;
var hasPosition = false; //持仓数量

function main() {
    Log("strategy started.");
    while(true){
        var records = _C(exchange.GetRecords, PERIOD_D1);
            records = records.slice(-20);
        var {Time} = records[records.length - 1];
        if(lasttime != Time){
            lasttime = Time;
            var fast = TA.MA(records, 5);
            var slow = TA.MA(records, 20);
            
            var lastFast1 = fast[fast.length - 2];
            var lastSlow1 = slow[slow.length - 2];
            var lastFast2 = fast[fast.length - 3];
            var lastSlow2 = slow[slow.length - 3];
            
            if(lastFast2 < lastSlow2 && lastFast1 > lastSlow1 && !hasPosition){
                //当前为金叉
                //$.Buy(0.001);
                exchange.Buy(-1, 0.01);
                hasPosition = true;
            }
            if(lastFast2 > lastSlow2 && lastFast1 < lastSlow1 && hasPosition){
                //当前为死叉
                exchange.Sell(-1, 0.01);
                hasPosition = false;
            }
        }
    }
}

function init() {
    const account = _C(exchange.GetAccount);
    Log('strategy inted.', exchange.GetName(), account);
}