遅れた共有: 2014年に毎日5%のリターンを持つビットコイン高周波ロボット

作者: リン・ハーンリディア, 作成日:2023-01-17 16:12:15, 更新日:2023-09-20 09:27:14

img

遅れた共有: 2014年に毎日5%のリターンを持つビットコイン高周波ロボット

戦略の導入

戦略は以下で共有されました.https://www.fmz.com/strategy/1088戦略は,デジタル通貨を始めて以来,私の主な戦略です. 継続的な改善と変更の後,それはより複雑になりましたが,主なアイデアは変わりません. 共有されたバージョンは,明らかなバグのない元のバージョンです. それは最もシンプルで明確です. ポジション管理はありません. すべてのトランザクションが満載で,再起動はありませんが,問題を説明するのに十分です. 2014年8月から今年初旬まで,取引所が手数料を請求した.この期間中,運用はかなり良好で,損失時間は非常に少ない.資本は200元から80ビットコインに増加した.具体的なプロセスは,この記事で見ることができる.仮想通貨の自動取引の方法記事シリーズシナブログのXiaocaoわかったわ 次の図は,私が特に計算したOKcoinプラットフォームのリターン曲線です. 初期資本は1000元です. 初期資本が安定して増加していることを見ることができます. 中央線は,私の戦略が停止したということです. その後,戦略が通貨稼ぎ戦略に変更されたため,人民元でのリターンは急激に変動します. 具体的なプロセスは戦略取引の2年間の要約の記事で説明されています.

img

次のグラフでは,通貨に変換された資産総数の曲線が示されています.

img

なぜこの戦略を共有するのか?

  1. 交換が充電された後 高周波の戦略は ほぼ全て破壊されました 私の戦略も例外ではありません
  2. 長い間何も共有してなかった この記事を書きたかったのはずっと前から
  3. 皆と交流し学びましょう

戦略の原則

この戦略の原理は非常にシンプルです.これは準高周波の市場作りの戦略として理解できます.それを読んだ後に人を打ってみたいかもしれません.お金を作れるでしょうか?! 当時,ほとんど誰もがそれを書くことができました.最初はそれほど効果的になるとは思っていなかった.考えがあるだけで実践に注意を払うべきであることがわかります.2014年にビットコインロボットが最初に登場したとき,お金作りの戦略を書くのは簡単すぎました. すべての高周波戦略と同様に,この戦略もオーダーブックに基づいています.下図は典型的なビットコイン取引所のオーダー分布を示しています:

img

左側には,異なる価格で注文の数を示し,右側には販売注文が表示されています. ビットコインを購入したい人がいれば,注文を待って待って欲しくない場合は,注文のみを受け取りることを選択することが考えられます. 注文の数が多くなった場合,大量に取引が行われ,注文とリストが販売され,価格に影響されます. しかし,この影響は続かないでしょう. 注文を受け取り,販売したい人がいれば,価格は非常に短時間で回復するでしょう. 逆に,コインを売りたい人がいると理解することと似ている. 図上の待機中の注文を例として挙げましょう. 5コインを直接購入したい場合,価格は10377に達します. この時点で,誰かが5コインを直接売却したい場合,価格は10348に達します. 価格差は利益率です. 戦略は10377より少し低い価格で注文を待機します. 例えば10376.99,そして10348より少し高い価格で購入します. 例えば10348.01. これは,状況がちょうど起こった場合,差は明らかに稼げるからです. 毎回それほど完璧ではありませんが,実際には確率を考えると,お金を稼ぐ可能性は信じられないほど高いからです. このパラメータは,もちろん,説明のためには利用できません. 8コインの累積金額を持つ価格を探します.ここでは10377です.その後,この時点での販売価格は0.01マイナス価格です (金額はランダムになります).同様に,累積金額の8コインを探します.ここでは10348です.その後,この時点での販売価格は10348.01です.そして,この時点での購入価格と販売価格の差は10376.99-10348.01=28.98です.これは既定価格の1.5の差よりも大きいので,この2つの価格の差が1.5未満の場合,開通価格プラスまたはマイナス10などの注文を待つ価格を探し,さらに待機し,ピックアップを続けます. (下降深さに従っておくのは適切です). さらに,この戦略は現在の深期未定注文のみに関連しており,歴史的な市場とその独自の歴史的な取引に関心を持っていないことに注意してください. 戦略には単一の損失の概念もありません. 実際,単一の取引の勝利率は非常に高いです.

さらに説明

    1. お金や貨幣が尽きるとどうしたらいいですか. この状況は,私がお金が少ないときに非常に一般的です.ほとんどの場合,私は注文の片側しか待っていませんが,それは大きな問題ではありません.実際には,通貨とお金のバランスロジックを追加することができますが,バランスプロセスで失うことは避けられません.結局,すべての取引は確率の問題です.私は片側での取引を待つことを選択します.もちろん,これは他の側での取引機会も無駄にします.
    1. ポジションは どう管理されますか? 初めは,すべては買い物・販売の 完全なポジションでした. その後,彼らは異なるパラメータに従って異なるグループに分かれ,彼らは一度に完全に閉鎖されませんでした.
    1. ストップ・ロスはありますか? ストラテジーは,購入・販売の完全論理を持っています.ストップ・ロスは必要ありません (議論できるものですが),確率も優先されています.取引は機会であり,ストップ・ロスは残念です.
    1. 稼ぐ戦略に 適応するには? この時点でパラメータは対称である.つまり,8コインアップの累積販売オーダーと8コインダウンの累積購入オーダーがわずかに不均衡である.例えば,15コインアップの累積販売オーダーは販売機会を難しくし,低価格で返還され,通貨を作り,その結果お金を稼ぐ可能性が高い.実際には,初期戦略は通貨とお金の両方が増加するほど効果的です.
    1. 浮動損失をどう対処する? もちろん,単一の取引では,売却後の通貨価格の上昇や購入後の通貨価格の低下などの損失がある.このような浮動損失は,取引が頻繁であり,毎日数千回正常であるため,処理する必要はありません.利益の可能性が大きい限り,浮動損失は正常です.
    1. ブラック・スワンを予防するには? ビットコインにはブラック・スワン時間が多くあり,時には完全に下落し,売却するチャンスはありません. この状況はあまり心配すべきではありません. ブラック・スワン時間はしばしば高い変動をもたらし,戦略はまさにこの部分のお金を稼ぎ,損失もすぐに取り戻すことができます.

コード説明

戦略の共有で見ることができます.www.fmz.com. ここには,基本的な論理機能のみが説明されています. 変更なしに, botvs に付随するシミュレーションボットが実際に完璧に動作しています. これは3年以上前の戦略です. プラットフォームは今でもそれをサポートしています. とても感動的です. まず,バイド・アスクリープ価格関数GetPrice() を取得するには,オーダー深度情報を取得する必要があります.異なるプラットフォームのオーダー深度情報の長さが異なることに注意してください.すべてのオーダーが横断されても,まだ必要な量はありません (この状況は後期に多くの0.01グリッドオーダーによって引き起こされます).コールがGetPrice (Buy) で,購入価格を取得することです.

function GetPrice(Type) {
   //_C() is the fault-tolerant function of the platform
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //Calculate the buy price and get the cumulative depth to a preset price
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //The parameter floatamountbuy is the preset accumulated depth
           if (amountBids>floatamountbuy){
               //Add 0.01 to make the order in the front
              return depth.Bids[i].Price+0.01;}
        }
    }
    //Calculate the selling price similarly
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //After traversing the full depth but still not meeting the demand, a price is returned to avoid bugs
    return depth.Asks[0].Price
}

各ループの主な機能はオンティック (onTick) である. ここで設定されたループ時間は3.5sである.各ループは元のオーダーをキャンセルし,オーダーをリペンドする. シンプルであるほど,バグが少なくなる.

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice is the preset spread, if the bid/ask spread is less than the preset spread, it will pend a relatively deeper price.
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //Cancel all the original orders. In fact, the new price is often the same as the price of the order. At this time, it is not necessary to cancel.
    CancelPendingOrders() 
    //Get account information to determine how much money and how many currencies are currently in the account.
    var account=_C(exchange.GetAccount);
    //The amount of Bitcoins that can be bought, _N() is the precision function of the platform.
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //The amount of Bitcoin that can be sold, note that there is no position limit, buy and sell as much as you can, as I had very little money at the time.
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //Sleep and enter the next loop
    Sleep(sleeptime);
}

終了

このプログラム全体は40行以上しかありませんが,とてもシンプルに見えますが,その当時botvsプラットフォームで1週間以上もかかりました.最大の利点は,早期に開始したことです. 2014年には,市場は動くレンガで支配されていましたが,グリッドと在庫取得の高周波戦略はあまり多くありませんでした,これは戦略を水の中の魚のようにしました. その後,競争はますます激しくなり,私はより多くのお金を持ち,多くの課題に直面しました.対処するために毎回大きな変更をしなければなりませんでしたが,それは一般的にスムーズでした. 取引プラットフォームが請求しないという条件下で,それはプログラムされた取引のための楽園です.小売投資家は料金がない場合,動作する傾向があるため,高周波および仲介手数料の機会を提供します. これらすべては,基本的に0.1-0.2%の2回回間料金で終わります. これは,取引の減少の問題だけでなく,市場全体の活動も問題です. しかし,高頻度量的な戦略にはまだ多くの余地があります.


関連性

もっと