Articles

Rで暗号化取引ボットを構築する

UnsplashのBranko Stancevicによる写真

**APIに注意してくださいこのチュートリアルで使用されるサービスではなくなりました。 この記事は、そのことを念頭に置いて説明する目的で読む必要があります。

トレーダーの心は、任意の取引戦略や計画の弱いリンクです。 効果的な取引の実行は、私たちの本能とは反対の方向に実行される人間の入力を必要とします。 私たちは爬虫類の脳が売りたいときに買うべきです。 私達の根性が私達に多くを買ってほしいと思うとき私達は販売するべきである。

クリプトカルトを重要な憲法で取引することはさらに困難です。 若者や新興市場には、激しいFOMO(行方不明の恐怖)を助長する「ポンプグループ」が殺到しており、価格を空高くしてから地球に戻しています。 多くの初心者の投資家はまた、これらの市場、おそらくNYSEの貿易に入ったことがない投資家で取引します。 すべての取引には、メーカーとテイカーがあり、抜け目のない暗号投資家は、スペースをあふれさせる初心者を利用するのは簡単です。

暗号取引から私の感情を切り離し、24/7を開いている市場を利用するために、私は簡単な戦略に従って、私が眠っているように取引を実行する単純な取引ボットを構築することにしました。

多くの”ボットトレーダー”彼らが呼ばれているように、これらの取引を実行するためにPythonプログラミング言語を使用しています。 Googleの場合、「crypto trading bot」では、さまざまなGithubリポジトリにPythonコードへのリンクがあります。私はデータ科学者であり、Rは私の主なツールです。

私は取引ボットを構築するためにR言語を使用する上でまともなチュートリアルを検索しましたが、何も見つかりませんでした。 私はGDAX APIのRラッパーであるパッケージrgdaxを見つけたときに、GDAX APIとインターフェイスするために自分のパッケージを構築するように設定されました。 以下は、あなた自身の戦略を構築するために使用できる取引ボットをつなぎ合わせるためのガイドです。一言で言えば、RGDAXラッパーを介してAPIを介してGDAX取引所でEthereum—USDペアを取引します。 私はこのペアを取引するのが好きです。Ethereum(ETH)は通常強気な姿勢であり、この戦略を輝かせることができます。

注:これは強気市場で数ドルしか稼ぐことができない超単純なスタートです。 すべての意図と目的のために、あなた自身のスタートを構築するためのベースとしてこれを使用してくださ

相対強さ指数(RSI)指標の組み合わせが一時的に売られ過ぎの市場を指しているとき、雄牛が再び価格を押し上げ、利益を集めることができると仮定

購入すると、ボットは1%の利益、4%の利益、7%の利益の最後の3つの指値売り注文を入力します。 これにより、1つ目の注文で別の取引に入るための資金を迅速に解放することができ、7%の注文は全体的な収益性を強化します。RstudioとWindowsタスクスケジューラを使用して、Rコードを定期的に(10分ごとに)実行します。 注文を送信するにはGDAXアカウント、取引通知を受信するにはGmailアカウントが必要です。div>

私たちのプロセス
私たちのプロセス
私たちのプロセス

パート1:ライブラリの呼び出しと関数のビルド

いくつかのライブラリを呼び出すことから始めます:

パッケー rgdaxはgdax apiへのインターフェイスを提供し、mailrはgmailアカウントで私たちに電子メールの更新を送信するために使用され、stringiはjsonから数値を解析するのに役立ち、ttrは技術的な指標の計算を実行することができる。Function:curr_bal_usd&curr_bal_eth

APIセクションでGDAXから生成されたapiキー、シークレット、パスフレーズを使用します。 これらの関数は、GDAXアカウントに、取引で繰り返し使用する最新の残高を照会します。

関数:rsi

この戦略の主な指標としてrsiまたは相対強度指数を使用します。 Curr_rsi14_apiは、15分のキャンドルを使用して、最新の14期間RSIの値を取得します。 Rsi14_api_less_oneなどは、前の期間のRSIを引き込みます:

Function: bid & ask

Next, we will need the current bid and ask prices for our strategy:

Function: usd_hold、eth_hold、cancel_orders

指値注文を反復的に行うためには、すでに注文された注文の現在のステータスを引き出し、注文帳の下に移動しすぎて約定できない注文をキャンセルできるようにする必要があります。 前者の場合はrgdaxパッケージの”holds”関数を使用し、後者の場合は”cancel_order”を使用します。

関数: buy_exe

これは、実際に指値注文を実行するbig-daddy関数です。 この機能が機能するいくつかの手順があります。p>

1. Order_size関数は、丸め誤差を考慮するために0.005ethを少なくするため、毎回できるだけ多くを購入したいので、購入できるethの量を計算します

2。 私たちのWHILE関数は、まだゼロETHを持っている間に指値注文を配置します。

3. 注文がbid()価格で追加され、システムは注文が満たされるように17秒スリープし、注文が満たされたかどうかを確認します。 そうでない場合は、プロセスが繰り返されます。

パート2:変数を格納する

次に、取引ループがより速く実行され、APIのレート制限を超えないように、RSIインジケータ変数をオブジェクdc0c2a4c72″>

パート3:取引ループの実行

これまで、取引ループを実行するために関数と変数を準備してきました。 以下は、実際の取引ループの口頭での散歩です:

USDでのアカウントの現在の残高が$20より大きい場合、ループを開始します。 次に、現在のRSIが30以上で、前の期間のRSIが30以下で、前の3期間のRSIが少なくとも一度は30未満であった場合、現在のUSD残高でできるだけ多くのETHを購次に、この購入価格をCSVファイルに保存します。

次に、この購入価格をCSVファイルに保存します。

その後、私たちは購入行動を私たちに警告するために自分自身に電子メールを送信します。

ループは”buy”を出力し、ログファイルでそれを追跡できるようにします。

その後、システムは3秒間スリープします。益を取るために3階層の指値売り注文を入力します。

私たちの最初の指値売り注文は1%のゲインで利益を取り、次は4%のゲインで利益を取り、最後は7%のゲインで利益を取ります:div>れは全体のスクリプトです。

パート4:スクリプトを自動化するために、Windowsタスクスケジューラを使用して

このボットの全体の目的は、取引のうち、人的エラーを取るために、私たちは、画面に存在することなく、取引を入力できるようにすることです。 これを実現するには、Windowsタスクスケジューラを使用します。簡単にスクリプトをスケジュールするために便利なRstudioアドインを使用してください:

タスクスケジューラでスケジュールされたタスクを変更

rstudio add inで作成されたタスクに移動し、希望する間隔でトリガーを調整します。 私の場合、私は無期限に10分ごとに選択します。p>

あなたのタスクに目を離さないログファイル

スクリプトが実行されるたびに、テキストログファイルにエントリが作成され、スクリプト内のエラーのトラブルシューティング:/div>”ログエントリの開始”と”ログエントリの終了”印刷機能は、私たちのエントリを分離するために便利になる方法を参照してくださ

あなた自身のものにする

このスクリプトを変更して、必要に応じて単純または複雑にすることができます。 私はRstudio用のTensorflowのKerasモジュールからニューラルネットワークを追加して、このスクリプトを改善することに取り組んでいます。 これらのニューラルネットワークは、スクリプトに指数関数的に複雑な要素を追加しますが、データ内の隠されたパターンを見つけるために非常に強力

さらに、TTRパッケージは、モデルを改善するために使用できる多数の財務機能とテクニカル指標を提供します。

このすべてが言われていると、あなたが失う余裕があるより多くのお金で遊んではいけません。 市場はゲームではなく、あなたはあなたのシャツを失うことができます。