Templat 3.2: Kelas Perdagangan Mata Wang Digital (Sempadan, Masa Depan Sokong Masa Depan OKCoin/BitVC)

Penulis:Mimpi kecil, Dicipta: 2017-01-04 19:00:10, Dikemas kini: 2017-10-11 10:27:01

Templat 3.2: Kelas Perdagangan Mata Wang Digital (Sempadan, Masa Depan Sokong Masa Depan OKCoin/BitVC)


Bab 3.1 menunjukkan satu templat dagangan spot, yang sangat memudahkan kesukaran untuk menulis strategi spot. Tetapi proses dagangan futures sangat berbeza dengan spot, jadi fungsi dagangan futures yang diintegrasikan berdasarkan templat spot, kini terbuka.

img

Di sini, anda boleh melihat video yang telah diunggah di laman web ini.

img

  • Barang sedia ada:

    Pada masa yang sama seperti pada masa yang sama, wang digital yang lebih awal, wang digital yang lebih baru, wang digital yang lebih baru, wang digital yang lebih baru, wang digital yang lebih baru, dan wang digital yang lebih baru.

  • Masa hadapan:

    Parameter:img

    img

    Kod percubaan yang dibawa oleh strategi:

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

    Penggunaan:img

Kod ujian dalam dasar (pilih templat rujukan)

img

Strategi ujian:

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

Jika ada sebarang soalan, selamat menghubungi penulis, terima kasih banyak!


Lebih lanjut

YundiKenapa saya tidak dapat mencari perpustakaan perdagangan mata wang digital JS, dan tidak ada strategi di dalamnya?

Saya bukan pakcik yang jahat.Apakah harga yang digunakan untuk $.Buy ((0.5)?

luar undang2Adakah versi python anda juga menyokong OKEX futures?

mudah-chunJika anda ingin tahu, apakah maksud ret? Apakah singkatan dari perkataan dalam bahasa Inggeris? RECOVER T?

mudah-chunDi manakah versi PY?

yhfggAdakah terdapat versi Python?

Mimpi kecilPerpustakaan perdagangan mata wang digital berjangka adalah tidak rasmi kerana pertukaran yang mempunyai antarmuka penyimpanan yang sering tertunda, yang boleh menyebabkan pesanan berulang, jadi ia dibatalkan secara terbuka.

YundiHi, ini adalah masa hadapan komoditi dan komoditi, saya bertanya di dalam kumpulan, JS digital currency futures library telah hilang kerana ada bug.

Mimpi kecil/upload/asset/16c4dcc69723e302152c.png Di tempat ini.

Mimpi kecilPada masa itu, harga pesaingnya, ditambah dengan sedikit penurunan harga.

Mimpi kecilJS saya sebenarnya juga ditulis mengikut struktur masa hadapan komoditi, boleh digunakan sebagai rujukan.

luar undang2Adakah anda akan lebih suka menggunakan js, dengan rujukan templat Python mengenai niaga hadapan okx?

Mimpi kecilPython tidak mempunyai fungsi niaga hadapan. Tidak ada pemindahan >_<

Mimpi kecilreturn bermaksud nilai pulangan, biasanya digunakan untuk menyimpan sementara fungsi yang mengembalikan nilai.

mudah-chunTerima kasih. Terima kasih.

Mimpi kecilhttps://www.botvs.com/strategy/21104, mungkin sedikit berbeza dengan versi JS, yang dipindahkan mengikut JS.

Mimpi kecilTerdapat versi python, tetapi ia kurang digunakan.