1
konzentrieren Sie sich auf
0
Anhänger

Die Gewinnübersicht des simulierten Backtests zeigt, dass nur Verkäufe, jedoch keine Käufe stattfinden.

Erstellt in: 2020-12-07 23:24:34, aktualisiert am:
comments   2
hits   1050

Die Gewinnübersicht des simulierten Backtests zeigt, dass nur Verkäufe, jedoch keine Käufe stattfinden.

Die Gewinnübersicht des simulierten Backtests zeigt, dass nur Verkäufe, jedoch keine Käufe stattfinden.

Wie in der Abbildung zu sehen ist, habe ich beim Testen von Bargeldgeschäften festgestellt, dass die Übersicht über die Erträge den Kauf als leere Lagerhaltung betrachtet und die Verkäufe ohne Statistiken, ohne zu wissen, welcher große Gott es aufzeigen kann. Das andere ist,exchange.GetPosition()Die Methode zur Erlangung von Positionen wurde in der Rückmeldung als nicht unterstützt angezeigt. Der Code lautet wie folgt:

/*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);
}