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