戦略は以下で共有されました.https://www.fmz.com/strategy/1088戦略は,デジタル通貨を始めて以来,私の主な戦略です. 継続的な改善と変更の後,それはより複雑になりましたが,主なアイデアは変わりません. 共有されたバージョンは,明らかなバグのない元のバージョンです. それは最もシンプルで明確です. ポジション管理はありません. すべてのトランザクションが満載で,再起動はありませんが,問題を説明するのに十分です.
2014年8月から今年初旬まで,取引所が手数料を請求した.この期間中,運用はかなり良好で,損失時間は非常に少ない.資本は200元から80ビットコインに増加した.具体的なプロセスは,この記事で見ることができる.仮想通貨の自動取引の方法記事シリーズシナブログのXiaocao
次のグラフでは,通貨に変換された資産総数の曲線が示されています.
この戦略の原理は非常にシンプルです.これは準高周波の市場作りの戦略として理解できます.それを読んだ後に人を打ってみたいかもしれません.お金を作れるでしょうか?! 当時,ほとんど誰もがそれを書くことができました.最初はそれほど効果的になるとは思っていなかった.考えがあるだけで実践に注意を払うべきであることがわかります.2014年にビットコインロボットが最初に登場したとき,お金作りの戦略を書くのは簡単すぎました. すべての高周波戦略と同様に,この戦略もオーダーブックに基づいています.下図は典型的なビットコイン取引所のオーダー分布を示しています:
左側には,異なる価格で注文の数を示し,右側には販売注文が表示されています. ビットコインを購入したい人がいれば,注文を待って待って欲しくない場合は,注文のみを受け取りることを選択することが考えられます. 注文の数が多くなった場合,大量に取引が行われ,注文とリストが販売され,価格に影響されます. しかし,この影響は続かないでしょう. 注文を受け取り,販売したい人がいれば,価格は非常に短時間で回復するでしょう. 逆に,コインを売りたい人がいると理解することと似ている. 図上の待機中の注文を例として挙げましょう. 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などの注文を待つ価格を探し,さらに待機し,ピックアップを続けます. (下降深さに従っておくのは適切です). さらに,この戦略は現在の深期未定注文のみに関連しており,歴史的な市場とその独自の歴史的な取引に関心を持っていないことに注意してください. 戦略には単一の損失の概念もありません. 実際,単一の取引の勝利率は非常に高いです.
戦略の共有で見ることができます.www.fmz.com. ここには,基本的な論理機能のみが説明されています. 変更なしに, botvs に付随するシミュレーションボットが実際に完璧に動作しています. これは3年以上前の戦略です. プラットフォームは今でもそれをサポートしています. とても感動的です.
まず,バイド・アスクリープ価格関数GetPrice() を取得するには,オーダー深度情報を取得する必要があります.異なるプラットフォームのオーダー深度情報の長さが異なることに注意してください.すべてのオーダーが横断されても,まだ必要な量はありません (この状況は後期に多くの0.01グリッドオーダーによって引き起こされます).コールがGetPrice (
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回回間料金で終わります. これは,取引の減少の問題だけでなく,市場全体の活動も問題です. しかし,高頻度量的な戦略にはまだ多くの余地があります.