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