1
Seguir
0
Seguidores

La visión general de las ganancias del backtest simulado es que solo hay ventas, pero no compras.

Creado el: 2020-12-07 23:24:34, Actualizado el:
comments   2
hits   1050

La visión general de las ganancias del backtest simulado es que solo hay ventas, pero no compras.

La visión general de las ganancias del backtest simulado es que solo hay ventas, pero no compras.

Como se muestra en la imagen, cuando probé el comercio de divisas en efectivo, descubrí que el gráfico de la reseña de ganancias consideraba las compras como un almacén vacío, y las ventas no tenían estadísticas, y no sabía a qué dios podía apuntar. Y también…exchange.GetPosition()El método de obtención de la posición no es compatible con este método. El código es el siguiente:

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