ブロックチェーンの定量投資シリーズ - ダイナミックバランス戦略

作者: リン・ハーン優しさ作成日:2019年3月26日 11:52:11 更新日:

原作: FMZ 量子www.fmz.com

定量的な取引の"本当の物"は,あなたが本当に利益を得ることができる場所です.

NO. 1

ウォーレン・バフェットのメンター ベンジャミン・グラハムは 『インテリジェント・投資家』という本で 株と債券が動的にバランスをとる 取引モデルについて言及しましたimgこの取引モデルはとてもシンプルです

持てる資金の50%は株式基金に 投資され 残りの50%は債券基金に 投資されます つまり 株式と債券はそれぞれ半分を占めています

固定間隔や市場の変化に基づく資産ポジション再バランスでは,株式資産と債券資産の比率が最初の1:1に戻ります.

購入・販売のタイミングや 購入・販売の金額などです. とてもシンプルで効果的です.

NO.2

この方法では,債券ファンドの変動は実際に株式変動よりもはるかに低く,非常に小さいので,ここに債券は"参照アンカー"として使用されます.つまり,債券を使用して,株があまりにも多く,またはあまりにも少なく上昇しているかどうかを測定します.

株価が上昇すると,株価の市場価値は債券の市場価値よりも大きくなる.この2つの市場価値比が限界値を超えると,総ポジションは再調整され,株価が売却され,債券が購入され,株価と債券価値比が初期1:1に戻る.

株価が下がると,株価の市場価値は債券の市場価値より低くなります.この2つの市場価値比が限界値を超えると,総ポジションは再調整され,株式は購入され,債券は売却され,債券価値と株式価値の市場資本比が初期1:1に戻ります.img価値投資の先駆者として,グラハムは素晴らしいアイデアを提示しました. 価値投資の先駆者として,グラハムは,価値投資の先駆者として,価値投資の先駆者として,価値投資の先駆者として,価値投資の先駆者として,価値投資の先駆者として,価値投資の先駆者として,

仮想通貨市場でも使わないのか?

NO.3

ブロックチェーンの資産 動的バランス戦略 BTC

戦略の論理

BTCの現在の価値によると,口座残高は6400ドル現金と1BTCで保持されています. つまり,BTCの市場価値に対する現金の初期比率は1:1です.

BTCの価格が7400ドルに上昇すると,つまりBTCの市場価値が口座残高よりも高く,その間の差が設定された値を超えると, (7400-6400)/7400/2コインが販売されます.それはBTCが値上がりし,現金を交換する必要があることを意味します.

BTCの価格が5400ドルに下がり,つまり BTCの市場価値が口座残高よりも低く,両者の差が設定された限界を超えると, (6400-5400) / 5400/2コインを購入します. BTCが減価し,BTCを買い戻す必要があります.

この方法により,BTCが値上げされるか減価されるかに関わらず,口座残高とBTCの市場価値は常に動的に等しく保たれます.BTCが値下げされた場合,一部を購入し,バランススケールと同様に再び上昇すると売却します.

NO.4

プログラミングコードでそれを実装するにはどうすればいいですか?

まず,戦略的枠組みを見てみましょう.

// strategy parameter
var threshold = 0.05; // Threshold
var LoopInterval = 60; // Polling interval(seconds)
var MinStock = 0.001; // Minimum transaction volume
var XPrecision = 4; // Quantity accuracy
var ZPrecision = 8; // Price accuracy

// Withdrawal order function
function CancelPendingOrders() {

}

// Placing Order function
function onTick() {

}

// Main function
function main() {
    // Filter non-critical information
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // Polling mode
        if (onTick()) { // Execute the onTick function
            CancelPendingOrders(); // Cancel unexecuted pending orders
        }
        Sleep(LoopInterval * 1000); // Sleep
    }
}

戦略の枠組み全体が非常にシンプルで, main関数, onTick注文の配置関数, CancelPendingOrders関数,そして必要なパラメータです.

NO.5

オーダーモジュール

// Placing Order function
function onTick() {
    var acc = _C(exchange.GetAccount); // Get account information
    var ticker = _C(exchange.GetTicker); // Get Tick data
    var spread = ticker.Sell - ticker.Buy; // Get the bid-ask spread of Tick data
    // 0.5 times the difference between the account balance and the current position value
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / Account Balance
    LogStatus('ratio:', ratio, _D()); // Print ratio and current time
    if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
        return false; // return false
    }
    if (ratio > 0) { // If ratio is greater than 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
        if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Buy order
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
        if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell order
    }
    return true; // return true
}

注文トランザクションの論理は明確で,すべてのコメントがコードに書かれています. 拡大するには画像をクリックできます.

主なプロセスは次のとおりです

口座情報を入手する

ティックのデータを取れ

Tick のデータで,Bid/Ask の差を計算する.

口座残高とBTC市場価値の差を計算する.

取引のトリガー条件,注文価格,注文量を計算する.

注文して返品する

NO.6

待機中の注文モジュールをキャンセル

// Withdrawal order function
function CancelPendingOrders() {
    Sleep(1000); // Sleep 1 second
    var ret = false;
    while (true) {
        var orders = null;
        // Continue to get an array of unexecuted orders, if an exception is returned, continue to get
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // Sleep 1 second
        }
        if (orders.length == 0) { // If the order array is empty
            return ret; // Return to withdrawal status
        }
        for (var j = 0; j < orders.length; j++) { // Traversing the array of unexecuted orders
            exchange.CancelOrder(orders[j].Id); // Cancel unexecuted orders one by one
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // Sleep 1 second
            }
        }
    }
}

キャンセル待機注文モジュールはさらにシンプルで,手順は以下のとおりです:

注文を撤回する前に1秒待って下さい,なぜなら,一部の取引所にはサーバーの遅延があるかもしれません.

実行されていない命令の配列を取得し,例外が返される場合は,成功するまで試し続けます.

実行されていないオーダー配列が空いている場合,すぐに引き取り状態を返します.

実行されていないオーダーがある場合は,配列全体を横断し,オーダーIDに従ってオーダーを取り消します.

NO.7

この戦略は,すべてのプログラミングソースコードですimg imgFMZの定量取引プラットフォームで 80行のコードで, 完全なブロックチェーンBTCダイナミックバランス戦略が成功裏に構築されました. しかし,これほど単純な戦略,何か価値がありますか?

NO.8

次に,この単純なダイナミックバランス戦略をテストして,それが有効かどうかを確認しましょう. 以下は,BTCの歴史的なデータに対するバックテストです.

バックテスト環境imgバックテスト性能imgバックテスト曲線img同じ期間のBTC価格グラフですimgショックを受けたか?

BTCは8ヶ月間下落を続け 最大の下落でも70%を超え 多くの投資家がブロックチェーン資産への信頼を失いました

この戦略の累積収益は160%にも上り,年収のリターン・トゥ・リスク比は5を超えています. このような単純な取引戦略では,この投資収益は"All-in"タイプのプレイヤーの大半を超えています.

NO.9

このバランス戦略は,一つの基本パラメーター (限界値) を持つもので,非常にシンプルな投資方法であり,過剰な収益ではなく,安定した利益を追求します.

トレンド戦略とは異なり,ダイナミックバランス戦略はトレンドに反する.この戦略は,市場が熱すぎるとポジションを減らして冷却することです.市場が荒れ果てると,それは隠されます.これはマクロ経済規制に似ている.

実際,動的バランス戦略は,価格が予測不能であり,同時に価格変動を把握するという考えに基づいています.動的バランス戦略の主要な核心は,資産配分比と引き金値を設定し調整することです.

記事の長さを考えると,記事がすべてについて包括的なものになるのは不可能です. 昔の語のように. 男に魚を与えると一日食べさせる. 男に魚を教えれば一生食べさせる. ダイナミックバランス戦略の最も重要なことは投資アイデアです. この記事の個々のBTC資産をブロックチェーンの資産ポートフォリオのバスケットに置き換えることもできます.img最後に 本文を 本名本 『The Intelligent Investor』の段落で締めくくりましょう

株式市場は,価値を正確に測定する"計測器"ではない.その反対に,それは"投票機"である.数え切れないほどの人々が行う決定は理性的で感情的なドーパントである.これらの選択が行われる時もたくさんある.それは理性の価値判断とは遠い.投資の秘訣は,価格が本質的な価値よりもはるかに低いときに投資し,市場の傾向が上昇すると信じることです.

  • ベンジャミン・グラハム

ソースコードを直接コピーするには:https://www.fmz.com/strategy/110900

勉強したり ダウンロードしたり レンタルしたり 購入したりできます

NO.10

私達について

このウェブサイトを運営する理由は,現行の状況を変えることであり,この世界には"本当の物"が不足しており,詐欺が多く,コミュニケーションがほとんど深くない.より純粋な量的な取引学習とコミュニケーションプラットフォームを作成することです.詳細については,当社のウェブサイトをご覧ください (www.fmz.com)

この記事が役に立ったと感じたら,友達に転送して応援してください. 共有することも知恵の種です!

連絡してください

テレグラム: FMZ Quant

メール:henry@fmz.com

ウェブサイト:www.fmz.com


もっと