デジタル通貨先物取引所は既にたくさんあるが,先物衍生品として,デジタル通貨オプション取引は,現在市場にある取引所はほとんどない.オプション取引をサポートする取引所は,Deribit,BitMEXである.量化取引の分野では,オプション取引には,いくつかの戦略もあります.例えば,いくつかの情報に言及されているオプション戦略を検索します:
タイプ | |||||
---|---|---|---|---|---|
方向性戦略: | 買取オプション | 売る | 牛市で |
牛市が落ちる | |
– | 買取する | 売るオプション | 熊市が |
熊市が落ちる | |
波動率戦略: | 売れるスプレス | 広範囲販売 | 購入する | ブロードスレンダーを購入する | |
負債をカバーする戦略: | 準備はいい | 予備は落ちる | 保護的な |
保護的な下落 | |
– | 多頭双極 | 空頭双極 | – | – |
引用する接続
オプション取引戦略の作成には,基本的な下注,市場取得,取消,保有取得などの操作を熟知する必要があります. 戦略の作成は依然として発明者の量化取引プラットフォームを使用しています. 発明者の量化取引プラットフォームは現在,デジタル通貨量化取引分野におけるサポートの主なものは,コイン取引,契約取引,レバレッジ取引です. オプション取引に関する情報はあまり多くありません. 下記は"Deribit"取引所の例で,発明者の量化取引プラットフォームを使用してデジタル通貨オプション取引を行う方法を説明します.
アフィリエイトのアーカイブhttps://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument模擬ディスク:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument
アナログディスクのウェブサイトでアカウントを登録し,API KEYを開き,API KEYにアクセスできます.
オプション取引の4つの基本的な概念は,
DeribitのAPI文書を見ると,Deribitの市場インターフェースは,先物やオプション市場にアクセスするための単なる転送です.instrument_name
参数が違う (instrument_name は SetContractType により設定されている) となると,基本的に市場を取得するインターフェースに沿って行えます.GetTicker
投資家は,投資家の利益を得るために,投資を行う.
もちろん,発明者による量化取引プラットフォームのデフォルトパッケージは,Deribit取引所のリアルディスクで,まずは,次のコードを使用して,アナログディスクに切り替える必要があります:
exchange.IO("base", "https://test.deribit.com")
取引先の取引先を設定します.BTC-27DEC19-7000-P
ナイジェリア人
これは27DEC19の有効期限で,有効価格は7000の負債です.
exchange.SetContractType("BTC-27DEC19-7000-P")
このオプション契約の取得の仕組みをテストするために,コードを実行します.
function main () {
exchange.IO("base", "https://test.deribit.com")
exchange.SetContractType("BTC-27DEC19-7000-P")
var ticker = exchange.GetTicker()
Log(ticker)
}
試行錯誤ツールを使って簡単にテストできます:模擬盤の価格と一致していることがわかります.
他の業界では,インターフェイスでの通話が一致しているので,ここでは概要を述べる必要はなく,以下のようなことを注意してください.
オプション取引はあまり活発ではありません. 取引所は時々,買い手なしまたは売り手なしの状況が発生します. このとき,発明者は取引プラットフォームの底部を量化し,0の値に検出し,エラーを返します.SetErrorFilter("Invalid ticker")
誤報を無視し,それを利用する.GetRawJSON
この関数は,市場からの原始情報包みデータを取得します.
function init() {
SetErrorFilter("Invalid ticker")
}
$.GetTicker = function(e) {
var ticker = e.GetTicker()
if (!ticker) {
try {
var ret = JSON.parse(e.GetRawJSON())
return {
Info : ret,
High : ret.result.stats.high,
Low : ret.result.stats.low,
Buy : ret.result.best_bid_price,
Sell : ret.result.best_ask_price,
Last : ret.result.last_price,
Volume : ret.result.stats.volume,
OpenInterest : 0,
Time : new Date().getTime()
}
} catch (err) {
Log(err)
}
}
return ticker
}
呼び出しではこう書いてある:Log($.GetTicker(exchange))
下記操作は非常にシンプルで,フューチャー取引の比較では,2つの方向での売買のみです.Sell
,Buy
函数列を表示します.
function main () {
exchange.IO("base", "https://test.deribit.com")
exchange.SetContractType("BTC-27DEC19-7000-P")
var id = exchange.Buy(0.017, 1)
Log(exchange.GetOrder(id))
}
模擬ディスクには,ちょうど下された注文も表示されています.
そしてexchange.GetOrder(id)
オーダー情報についてはこちらで確認できます.
撤収は,同じ方法で使用されます.CancelOrder
フォークスルーは,先物取引の際の引き出しと同じです.
アクセス アクセス アクセス アクセス アクセスGetAccount
この関数は,この関数と同じです.
模擬取引所のページの表示
実行コードを取得:
商品の保管には,直接パッケージを使用することはできません.GetPosition
Deribitのデフォルト取引は,オプション取引ではなく,先物取引であるため,この関数で先物保有を入手するだけです.
選択肢の保有権を得る関数は,この関数で包み込む必要があります.
APIドキュメントに収蔵された関数のインターフェース:
$.GetPosition = function(e) {
// /private/get_positions
// currency , kind
var positions = []
var currency = e.GetCurrency()
var arr = currency.split("_")
var baseCurrency = arr[0]
try {
var ret = e.IO("api", "GET", "/api/v2/private/get_positions", "currency=" + baseCurrency + "&kind=option")
for (var i in ret.result) {
if (ret.result[i].size == 0 || ret.result[i].direction == "zero") {
continue
}
var pos = {
Info : ret.result[i],
Amount : ret.result[i].size,
FrozenAmount : 0,
Price : ret.result[i].average_price,
Profit : ret.result[i].floating_profit_loss,
MarginLevel : 0,
Margin : 0,
ContractType : ret.result[i].instrument_name,
Type : ret.result[i].direction == "buy" ? ORDER_TYPE_BUY : ORDER_TYPE_SELL,
}
positions.push(pos)
}
} catch (err) {
Log(err)
positions = null
}
return positions
}
呼び出しLog($.GetPosition(exchange))
株式保有情報を印刷することもできます.
基本操作は完了し,残りはオプション取引戦略の研究です.