功能項(xiàng)目(一)intelligence數(shù)據(jù)獲取

github地址

https://github.com/drip-trader/dripjs

結(jié)構(gòu)圖:

功能

  • 負(fù)責(zé)獲取數(shù)據(jù)的功能項(xiàng)目

platform使用方法

  • import
import { IntelFactory, BitmexSpy } from 'dripjs';

// 生成指定交易所的數(shù)據(jù)接口
const bitmexSpy = IntelFactory.create(BitmexSpy, {
  apiKey: `你的bitmex交易所apiKey`,
  apiSecret: `你的bitmex交易所apiSecret`,
  testnet: true,
});
const pair = 'XBTUSD';
// 訂閱逐筆數(shù)據(jù)
bitmexSpy.getTicker$(pair).subscribe((res) => {
  console.log(res);
});
setTimeout(() => {
  console.log('do stop ticker subscription');
  // 不用時(shí)动分,別忘記退訂
  bitmexSpy.stopTicker(pair);
}, 5000);

  • require
const dripjs = require("dripjs")

// 生成指定交易所的數(shù)據(jù)接口
const bitmexSpy = dripjs.IntelFactory.create(dripjs.BitmexSpy, {
  apiKey: `你的bitmex交易所apiKey`,
  apiSecret: `你的bitmex交易所apiSecret`,
  testnet: true,
})
const pair = 'XBTUSD';
// 訂閱逐筆數(shù)據(jù)
bitmexSpy.getTicker$(pair).subscribe((res) => {
    console.log(res)
});

setTimeout(() => {
  console.log('do stop ticker subscription');
  // 不用時(shí)毅糟,別忘記退訂
  bitmexSpy.stopTicker(pair);
}, 5000);

以上方法可以通過此鏈接,在線測(cè)試

輸出結(jié)果

輸出結(jié)果中,high和low表示的是當(dāng)天最高價(jià)格和最低價(jià)格
顯示為0的原因是澜公,bitmex交易所不提供這樣的websocket數(shù)據(jù)姆另,不要說是bug呀??

程序構(gòu)造

API接口

目前只開發(fā)了5個(gè)主要接口,以后根據(jù)需要還會(huì)繼續(xù)增加接口

方法 方式 說明
getSymbols 一次 獲取全部商品信息
getSymbol 一次 獲取指定商品信息
getBars 一次 獲取 K 線
getTicker$ 實(shí)時(shí) 獲取逐筆情報(bào)
getDepth$ 實(shí)時(shí) 獲取訂單薄
getTransaction$ 實(shí)時(shí) 獲取成交信息

library使用方法

使用方法和上面platform使用方法一樣坟乾,只不過安裝解耦的子模塊:

npm install dripjs-intelligence

然后在import引入時(shí)模塊名稱將dripjs框架模塊改為dripjs-intelligence

import { IntelFactory, BitmexSpy } from 'dripjs-intelligence';

// 生成指定交易所的數(shù)據(jù)接口
const bitmexSpy = IntelFactory.create(BitmexSpy, {
...

tool使用方法

(一)服務(wù)端使用

  • 結(jié)構(gòu)圖


有些同學(xué)以為在墻內(nèi)迹辐,無法通過library正常使用,需要通過翻墻手段甚侣。
drip.js提供tool的方式明吩,只需租用墻外服務(wù)器,通過以下命令安裝數(shù)據(jù)服務(wù):

1殷费、安裝新建空nodejs項(xiàng)目印荔,通過npm安裝工具包:

npm install dripjs-intelligence

2、package.jsonscripts中加入:

  "scripts": {
    "service": "intel-service"
  },

3详羡、設(shè)置數(shù)據(jù)服務(wù)的配置文件

  • 項(xiàng)目根目錄中創(chuàng)建 config文件夾仍律,在里面新建 default.json,并在里面配置如下內(nèi)容:
{
  "container": {
    "intelService": {
      "port": 6531,
      "username": "test",
      "password": "test"
    }
  },
  "exchange": {
    "crypto": {
      "bitmex": {
        "apiKey": "zzz",
        "apiSecret": "xxx"
      },
      "bitmexTestNet": {
        "apiKey": "ccc",
        "apiSecret": "cccx"
      }
    }
  }
}

intelService中的配置項(xiàng)殷绍,port為服務(wù)器開啟的端口染苛,usernamepassword是客戶端連接時(shí)需要傳遞的用戶名密碼主到。
exchange中為各交易所的apikey密碼,只需配置想要用的交易所即可茶行。

4、運(yùn)行數(shù)據(jù)服務(wù)器

npm run service
  • 運(yùn)行圖片


(二)客戶端使用

import { IntelClient } from 'dripjs-intelligence';
import { SupportedExchange } from 'dripjs-types';

async function test() {
  const client = new IntelClient({
    ip: '127.0.0.1',
    port: 6531,
    username: 'test',
    password: 'test',
  });
  const exchange = SupportedExchange.Bitmex;
  const pair = 'XBTUSD';
  
  // 獲取商品列表
  const symbols = await client.getSymbols(exchange);
  console.log('symbols: ', JSON.stringify(symbols));

  // 訂閱單商品數(shù)據(jù)
  client.ticker$(exchange, pair).subscribe((res) => {
    console.log('ticker: ', JSON.stringify(res));
  });
  setTimeout(() => {
    // 不需要數(shù)據(jù)時(shí)登钥,別忘記退訂
    client.stopTicker(exchange, pair);
  }, 3000);

  // 訂閱深度數(shù)據(jù)
  client.depth$(exchange, pair).subscribe((res) => {
    console.log('depth: ', JSON.stringify(res));
  });
  setTimeout(() => {
    client.stopDepth(exchange, pair);
  }, 3000);

  // 訂閱成交數(shù)據(jù)
  client.transaction$(exchange, pair).subscribe((res) => {
    console.log('transaction: ', JSON.stringify(res));
  });
  setTimeout(() => {
    client.stopTransaction(exchange, pair);
  }, 3000);

  setTimeout(() => {
    // 不用時(shí)別忘記斷開與服務(wù)器的連接
    client.disconnect();
  }, 6000);
}

test().catch(e => {
  console.log('error: ', e.message);
});

IntelClient的構(gòu)造函數(shù)中的usernamepassword要和IntelServer的usernamepassword一致畔师,這樣可以保證自己的數(shù)據(jù)服務(wù)不被其他人盜用。
以上示例中為現(xiàn)有實(shí)現(xiàn)功能牧牢,之后會(huì)隨時(shí)補(bǔ)充看锉。

待實(shí)現(xiàn)功能

  • 指定多種商品,同時(shí)訂閱
    例如
import { IntelFactory, BitmexSpy } from 'dripjs';

bitmexSpy.getTicker$('XBTUSD', 'ADAH19').subscribe((res) => {
  console.log(res);
});

輸出: 
{
    "XBTUSD": {
        "ask": 3804,
        "bid": 3803.5,
         ...
    },
    "ADAH19": {
        ...
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末塔鳍,一起剝皮案震驚了整個(gè)濱河市伯铣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轮纫,老刑警劉巖腔寡,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異掌唾,居然都是意外死亡放前,警方通過查閱死者的電腦和手機(jī)忿磅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凭语,“玉大人葱她,你說我怎么就攤上這事∷迫樱” “怎么了吨些?”我有些...
    開封第一講書人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長虫几。 經(jīng)常有香客問我锤灿,道長挽拔,這世上最難降的妖魔是什么辆脸? 我笑而不...
    開封第一講書人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮螃诅,結(jié)果婚禮上啡氢,老公的妹妹穿的比我還像新娘。我一直安慰自己术裸,他們只是感情好倘是,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袭艺,像睡著了一般搀崭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上猾编,一...
    開封第一講書人閱讀 51,727評(píng)論 1 305
  • 那天瘤睹,我揣著相機(jī)與錄音,去河邊找鬼秸弛。 笑死畜吊,一個(gè)胖子當(dāng)著我的面吹牛纱昧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播获茬,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼倔既!你這毒婦竟也來了恕曲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤渤涌,失蹤者是張志新(化名)和其女友劉穎佩谣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體歼捏,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡稿存,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年笨篷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓣履。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡率翅,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出袖迎,到底是詐尸還是另有隱情冕臭,我是刑警寧澤,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布燕锥,位于F島的核電站辜贵,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏归形。R本人自食惡果不足惜托慨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望暇榴。 院中可真熱鬧厚棵,春花似錦、人聲如沸蔼紧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奸例。三九已至彬犯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間查吊,已是汗流浹背谐区。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留菩貌,地道東北人卢佣。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像箭阶,于是被迫代替她去往敵國和親虚茶。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355