Templat 3.2: Kelas Perdagangan Mata Uang Digital (Integrated Cash, Futures Support OKCoin Futures/BitVC)

Penulis:Mimpi kecil, Dibuat: 2017-01-04 19:00:10, Diperbarui: 2017-10-11 10:27:01

Templat 3.2: Kelas Perdagangan Mata Uang Digital (Integrated Cash, Futures Support OKCoin Futures/BitVC)


Bab 3.1 menunjukkan sebuah template perdagangan spot, yang sangat menyederhanakan kesulitan menulis strategi spot. Namun, proses perdagangan futures sangat berbeda dari spot, sehingga fungsi perdagangan futures yang terintegrasi berdasarkan template spot, sekarang terbuka.

img

"Sudah terbuka di Strategy Square:

img

  • Di mana Anda bisa mendapatkannya?

    Di sisi real-time, cryptocurrency ini sama dengan cryptocurrency real-time sebelumnya.

  • Masa depan:

    Parameter:img

    img

    Strategi ini membawa kode uji coba:

    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

Kode pengujian dalam kebijakan (pilih template referensi)

img

Strategi pengujian:

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 pertanyaan, bug, silakan hubungi penulis, terima kasih banyak!


Lebih banyak

YundiMengapa saya tidak dapat menemukan JS's cryptocurrency trading library, tidak ada strategi di dalamnya.

Aku bukan paman yang buruk.Berapa harga untuk $.Buy ((0.5)?

OutlawjkApakah versi python juga mendukung OKEX futures?

sederhana-chunJika Anda ingin tahu apa yang dimaksud dengan ret, apakah itu singkatan dari kata-kata dalam bahasa Inggris?

sederhana-chunDi mana versi PY?

yhfggApakah ada versi Python yang tersedia?

Mimpi kecilPerpustakaan perdagangan mata uang kripto berjangka adalah tidak resmi, karena interfaces pemegang saham sering mengalami keterlambatan, yang dapat menyebabkan order berulang, sehingga dibatalkan publik.

YundiHalo, ini adalah futures komoditas dan komoditas, saya bertanya di grup, JS digital currency futures library hilang karena ada bug.

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

Mimpi kecilSaat itu, harga saingan, ditambah sedikit penurunan harga.

Mimpi kecilJS saya sebenarnya juga ditulis berdasarkan struktur futures komoditas, jadi saya bisa merujuknya.

OutlawjkApakah Anda akan lebih memilih untuk menggunakan js, dengan referensi template Python untuk OKEX futures?

Mimpi kecilPython tidak memiliki fitur berjangka Tidak ada transplantasi >_<

Mimpi kecilreturn berarti nilai yang dikembalikan, umumnya digunakan untuk menyimpan sementara suatu fungsi yang mengembalikan nilai.

sederhana-chunTerima kasih.

Mimpi kecilhttps://www.botvs.com/strategy/21104, mungkin sedikit berbeda dari versi JS, yang dipindahkan dari JS.

Mimpi kecilAda versi python, tetapi lebih jarang digunakan.