このページには多くの興味深い戦略があります (https://www.fmz.com/squareその頃,ほとんどの仮想通貨取引所の API インターフェースは,rest
多くの戦略は,rest
また,取引所によるrest
戦略が正しく機能できないことが原因です.
戦略が変更される限り,webソケットインターフェースのサポートを追加するには,戦略コードにいくつかの変更が必要であり,これは通常かなり面倒である (戦略を変更する難しさは,それを書き直すよりもはるかに高い).
Webソケット市場コートインターフェースを使うことができます.
FMZ Quantプラットフォームの柔軟性はこうです
テンプレートクラスライブラリを使用します.
exchange.GetTicker
.
戦略のコードを変更することなく,データによって駆動され,押しwebsocket
市場インターフェース
コード書き言語はJavaScriptプログラミング言語を使用しています.
例えば クラシックな戦略を修正する必要があるとき
戦略アドレス:https://www.fmz.com/strategy/9929
戦略のコードを見てみましょう 戦略はtick
市場価格を評価する.Buy
, Sell
そしてLast
についてticker
データticker
FMZ Quant プラットフォームの API 機能でデータを取得します.exchange.GetTicker
目標が明確になったexchange.GetTicker
機能するHook
操作 (つまり,別のバージョンに置き換える)
戦略の論理に影響します. Webソケットにシームレスにドッキングしたいのです.
次の主人公がデビューする
テンプレートクラスライブラリを作ります.
2つのパラメータを設定します.SeamlessConnWS
template.
この2つは,websocket
この項目の制限により,我々は,ただ,この操作を入力します.hook
実施するexchange.GetTicker
インターフェース.したがって,我々はパラメータを有効にする必要があります ((Hook_GetTicker
) についてGetTicker
インターフェースwebsocket
mode.
交換websocket
特定の引用符に購読し,その後,交換の機能コードがデータをプッシュするのを待つ. 特定のコードはここで説明されていません.SeamlessConnWS
FMZ Quant の公式 API ドキュメンテーションです.init
テンプレート内の関数とグローバル変数_DictConnectCreater
, _ConnMap
:
コード部分:
var _DictConnectCreater = {
"Huobi" : WSConnecter_Huobi,
"Binance" : WSConnecter_Binance,
}
var _ConnMap = {}
function init () {
if (IsUsedWebSocket) {
var connectCreater = null
if (exchanges.length != 1) {
Log("Switching to the ws interface only for the "exchange" exchange object (ie, the first added exchange object)")
}
var isFound = false
for (var name in _DictConnectCreater) {
if (exchange.GetName() == name) {
connectCreater = _DictConnectCreater[name]
isFound = true
}
}
if (!isFound) {
throw "Did not find an implementation"
}
if (Hook_GetTicker) {
var symbol = exchange.GetCurrency()
_ConnMap.GetTicker = connectCreater("GetTicker", symbol)
exchange.GetTicker = function () {
return _C(_ConnMap.GetTicker.Read)
}
}
// ...
}
}
このテンプレートでは,websocket
2つの取引所の市場インターフェースであるBinanceとHuobi.init
SeamlessConnWS
テンプレートinit
実際の市場運営の進展の中で最初に実行されます.
代替できるのですexchange.GetTicker
機能とコードを使用するwebsocket
Webソケット市場へのシームレスなドッキングを実現する.
SeamlessConnWS
テンプレートアドレス:https://www.fmz.com/strategy/167755
ケーキのピース!SeamlessConnWS
図示のように,
テンプレートチェックをクリックし,保存ボタンをクリックしてください.
取引先が取引ペアを選びます 取引先が取引ペアを選びます
制御パラメータを開くSeamlessConnWS
template.
実行してください:
157行にプリントログコードを 追加しました 交換によってプリントされたデータを出力します
ロボットログの表示:
戦略コードのどの行も修正する必要はありません.websocket
市場インターフェース
この例は,exchange.GetTicker
市場インターフェース機能,その他の市場インターフェース,例えばexchange.GetDepth
, exchange.GetTrades
そしてexchange.GetRecords
標準のテンプレートではSeamlessConnWS
更に拡大してみてください
特別リンクの実施についてwebsocket
テンプレートで,Dial
例えば,パラメータ -2 を指定できます. このパラメータは,read()
バッファーの最新のデータのみを返します.websocket
接続が受付しました
読んでくれてありがとう