avatar of 发明者量化-小小梦 发明者量化-小小梦
konzentrieren Sie sich auf Private Nachricht
4
konzentrieren Sie sich auf
1271
Anhänger

3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

Erstellt in: 2017-01-04 19:00:10, aktualisiert am: 2017-10-11 10:27:01
comments   19
hits   5333

3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)


In Abschnitt 3.1 wird ein Modell für den Handel mit Bargeld vorgestellt, was die Schwierigkeit der Erstellung einer Strategie für den Handel mit Bargeld erheblich vereinfacht. Der Handel mit Futures unterscheidet sich jedoch erheblich von dem mit Bargeld, so dass die Funktionalität für den Handel mit Futures auf der Grundlage des Modells für den Handel mit Bargeld integriert wurde und jetzt veröffentlicht wird.

3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

Das ist eine sehr schwierige Aufgabe, die ich nicht bewältigen kann.

3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

  • ### In Bar:

Die Bargeld-Seite ist wie die vorherige von der Krypto-Bargeld-Handelsgruppe.

  • ### Termin:

Parameter: 3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

Der Testcode für die Strategie:

  function main() {
    if (exchange.GetName() === 'Futures_OKCoin') {
        var info = exchange.SetContractType("this_week");
        Log("info 返回值:", info);
        Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
        var depth = exchange.GetDepth();
        var p = $.NewPositionManager();
        p.OpenShort("this_week", 10, depth.Bids[0].Price - 2);
        Log(exchange.GetPosition());
        Sleep(500 * 1000);
        depth = exchange.GetDepth();
        var ret = p.Cover("this_week", depth.Bids[0].Price + 2, 5);
        Log("cover ret:", ret);
        //LogProfit(p.Profit());
        Log(exchange.GetPosition());
        Log("-----------------------------测试分割线----------------------------------------");
        var depth = exchange.GetDepth();
        p.OpenLong("this_week", 20, depth.Bids[0].Price + 2);
        Log(exchange.GetPosition());
        Sleep(500 * 1000);
        depth = exchange.GetDepth();
        var ret = p.Cover("this_week", depth.Bids[0].Price - 2, 10, PD_LONG);
        Log("cover ret:", ret);
        Log(exchange.GetPosition());
        Log("-----------------------------测试分割线----------------------------------------");
        var ret = p.Cover("this_week", depth.Bids[0].Price - 3, 10, PD_LONG);
        Log("cover ret:", ret);
        var ret = p.Cover("this_week", depth.Bids[0].Price + 3, 5, PD_SHORT);
        Log("cover ret:", ret);
        Log(exchange.GetPosition());
    } else if (exchange.GetName() === 'Futures_BitVC') {
        var info = exchange.SetContractType("week");
        Log("info 返回值:", info);
        Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
        var depth = exchange.GetDepth();
        var p = $.NewPositionManager();
        p.OpenLong("week", 500, depth.Bids[0].Price + 2);
        Log(exchange.GetPosition());
        Sleep(500 * 1000);
        depth = exchange.GetDepth();
        var ret = p.Cover("week", depth.Bids[0].Price - 2, 500);
        Log("cover ret:", ret);
        Log(exchange.GetPosition());
        Log("-----------------------------测试分割线----------------------------------------");
        var info = exchange.SetContractType("week");
        Log("info 返回值:", info);
        Log("当前持仓信息", exchange.GetPosition(), _C(exchange.GetTicker));
        var depth = exchange.GetDepth();
        p.OpenShort("week", 600, depth.Bids[0].Price - 2);
        Log(exchange.GetPosition());
        Sleep(500 * 1000);
        depth = exchange.GetDepth();
        var ret = p.Cover("week", depth.Bids[0].Price - 2, 500, PD_SHORT);
        Log("cover ret:", ret);
        Log(exchange.GetPosition());
        Log("-----------------------------测试分割线----------------------------------------");
        var ret = p.Cover("week", depth.Bids[0].Price + 3, 100, PD_SHORT);
        Log("cover ret:", ret);
        //p.Cover("week", depth.Asks[0].Price - 3, 300, PD_LONG);
        Log(exchange.GetPosition());
    } else if(exchange.GetName() === 'huobi' || exchange.GetName() === 'OKCoin'){
        Log($.GetAccount());
        Log($.Buy(0.5));
        Log($.Sell(0.5));
        exchange.Buy(1000, 3);
        $.CancelPendingOrders(exchanges[0]);
        Log($.Cross(30, 7));
        Log($.Cross([1,2,3,2.8,3.5], [3,1.9,2,5,0.6]));
    }
  }

Verwendung: 3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

Testcode in der Strategie ((Auswahl der Referenzvorlage))

3.2 Vorlage: Digitale Währungshandelsbibliothek (integrierte Spot- und Futures-Unterstützung für OKCoin-Futures/BitVC)

Teststrategie:

function main(){
    var p = $.NewPositionManager();
    var i = 0;
    exchanges[0].SetContractType("this_week");
    var isFirst = true;
    var ret = null;
    while(true){
        var depth = _C(exchanges[0].GetDepth);
        var positions = _C(exchanges[0].GetPosition);
        var len = positions.length;
        if(isFirst === true && i % 3 === 0 && len === 0){
            ret = p.OpenLong("this_week", 1 + (i % 3) + (i % 2), depth.Asks[0].Price);
            isFirst = false;
        }else if(isFirst === false){
            ret = p.OpenShort("this_week", 1 + (i % 3) + (i % 2), depth.Bids[0].Price);
            isFirst = true;
        }else{
            for(var j = 0 ; j < len; j++){
                if(positions[j].Type === PD_LONG){
                    ret = p.Cover("this_week", depth.Bids[0].Price - 2, positions[j].Amount, PD_LONG);
                }else if(positions[j].Type === PD_SHORT){
                    ret = p.Cover("this_week", depth.Asks[0].Price + 2, positions[j].Amount, PD_SHORT);    
                }
                Log("ret:", ret);
            }
        }
        Log("ret", ret, "---------------------#FF0000");
        i++;
        Sleep(1000 * 60 * 15);
    }
}

Wenn Sie Fragen haben, BUG, kontaktieren Sie den Autor, vielen Dank!