Vorlage 3.2: Digitale Währungstransaktions-Klasse (Integration von Bargeld, Futures unterstützen OKCoin Futures/BitVC)

Schriftsteller:Kleine Träume, Erstellt: 2017-01-04 19:00:10, Aktualisiert: 2017-10-11 10:27:01

Vorlage 3.2: Digitale Währungstransaktions-Klasse (Integration von Bargeld, Futures unterstützen OKCoin Futures/BitVC)


In Kapitel 3.1 wird eine aktuelle Handelsvorlage gezeigt, die die Schwierigkeit, eine aktuelle Strategie zu schreiben, erheblich vereinfacht.

img

Das ist eine sehr schwierige Sache, aber es ist nicht einfach, sie zu lösen.

img

  • Das ist nicht wahr.

    Der Umsatz ist ähnlich wie bei der vorherigen Kryptowährung, der Kryptowährung.

  • Die Futures:

    Parameter:img

    img

    Die Strategie enthält Testcodes:

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

    Verwenden:img

Testcode in der Strategie (siehe Referenzvorlage)

img

Teststrategien:

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

Bitte kontaktieren Sie den Autor, wenn Sie Fragen haben.


Mehr

YundiWarum habe ich die JS-Klasse für den Handel mit digitalen Währungen nicht gefunden?

Ich bin kein schlechter Onkel.Was ist der Preis für $.Buy ((0.5)?

AusgeschlossenKann die Python-Version auch OKEX-Futures unterstützen?

Einfach-chunWas steht für ret? Was ist die Abkürzung für englische Phrasen? RECOVER T?

Einfach-chunWo ist die PY-Version?

YhfggIch bin mit Python vertraut. Gibt es eine Python-Version?

Kleine TräumeDie Handelskatalogie der Kryptowährungs-Futures ist unoffiziell, da die Interface der Börsen häufig verzögert wird, was zu wiederholten Aufträgen führen kann, und wurde daher öffentlich gestrichen.

YundiHallo, dies ist eine Futures- und Futures-Commodity, und ich fragte in der Gruppe, ob die JS Digital Currency Futures-Kategorie wegen eines Bugs nicht mehr verfügbar ist.

Kleine Träume/upload/asset/16c4dcc69723e302152c.png In dieser Position

Kleine TräumeDie Preise der damaligen Konkurrenten, mit einem kleinen Sprung.

Kleine TräumeDas ist momentan nicht geschrieben, aber es gibt eine Python-Vorlage für Commodity-Futures, und mein JS ist tatsächlich auch nach der Struktur von Commodity-Futures geschrieben.

AusgeschlossenIch bin nicht der Meinung, dass man das in einem anderen Sinne tun sollte, sondern es mit einem anderen Wort zu tun hat.

Kleine TräumePython hat keine Futures-Funktion Keine Transplantation.

Kleine Träumereturn bedeutet zurückkehrenden Wert, der im Allgemeinen verwendet wird, um eine Funktion vorübergehend zu speichern, die einen Wert zurückgibt.

Einfach-chunIch danke Ihnen.

Kleine Träumehttps://www.botvs.com/strategy/21104, möglicherweise ein wenig anders als die Version von JS, die nach JS portiert wurde.

Kleine TräumeEs gibt eine Python-Version, aber sie wird seltener verwendet.