Trality Rule Builderで簡単なトレーディングボットを作る(コードなし!)。
ALEXANDER KAHL
2020年3月15日 – 7 読む
目次
トラリティ・ルールビルダーは、独自のルール作りを支援します。
暗号取引ボット をコード化する必要なく作成できます。私たちは、このルールベースのボット作成エディターを、可能な限りシンプルに、そして必要な限り洗練されたものにするために開発しています。シンプルさは、ボットのロジックを作成するためのドラッグ&ドロップのメカニズムによって達成されています。洗練されたボット作成機能は、取引に必要な柔軟性を提供するために、日々増え続ける機能によって実現されています。
おそらく、最も簡単な方法は、簡単な取引ボットを作成する方法を段階的に紹介することです。この方法でルールビルダーの基本的な概念に慣れ、より高度な設定テクニックを紹介することができます。
デモのために、1つの通貨ペア、すなわちBTCUSDTで簡単なトレンドフォロー戦略を作成します。
新しいボットを作成する
さっそく始めてみましょう。ルールビルダーでボットを作成するには、ボットに名前を付けて、ボットタイプとして「ルール」を選択するだけです。次に、取引する取引所と、アルゴリズムに使用する相場資産を選択します。今のところ Binance をサポートしていますが、まもなく他の取引所もサポートする予定です。クォートアセットは、すべてのトレードが実行される通貨を表します。
アセットを選択する
ここで、ボットを実行する基本資産(複数可)を選択します。つまり、相場資産で売買されるコインを選択します。この例では、BTC を選択し、BTCUSDT というシンボルで取引することにします。
パラメータと一般設定の追加
実際にボットの戦略を定義し始める前に、ボットの一般的な設定を定義したいと思います。すべてのパラメータと設定の詳細については、Trality Docsに移動して ルールビルダーのセクション.
今のところ、「最大購入額」をポートフォリオ価値の95%に設定するだけです。つまり、いつでも見積もり資産の5%を保有することになります。
ストラテジーを定義する
さて、ここからが面白いところです。すべてのトレーディングボットの核となるのは、ストラテジーの設計です。この時点で、実際の売買シグナルを指定します。より正確には、あなたの戦略は、売買シグナルを生成する様々な事前定義された戦略で構成されています。
私たちの目標は、上昇トレンドが検出されたときにBTCを購入し、逆トレンドが起こっているときにBTCを売却するためのエントリポイントを識別しようとする単純なトレンドフォロー戦略を定義することです。このようなシグナルとしてよく使われるのが、移動平均線のクロスオーバーです。詳しい解説は、前回の ブログ記事 同じMAクロス戦略をPythonエディタと ドキュメント をご覧ください。
最初のシグナルを追加するために、ストラテジー・タブで新規追加ボタンをクリックします。ポップアップメニューから「MA-Crossover」を選択し、エキスパートボックスにチェックを入れて、この定義済みのストラテジーの詳細を調整します。
ここでは、ストラテジーの種類、シグナルの種類(買いまたは売り)、間隔、インディケータのパラメータを指定し、シグナルを保持することもできます。の詳細な説明については、以下を参照してください。 ドキュメント.混乱を避けるため、ここで選択されている「MAタイプ」は、指数移動平均(EMA)であることに注意してください。
重要なのは、売買シグナルを指定すると、シグナルの方向性、または技術的には指標の組み合わせが自動的に決定されることです。つまり、MA-Crossover BUYは、短いEMA(20)が長いEMA(40)を下からクロスするたびに買い注文を生成します。同様に、MA-Crossover SELLは、長いEMA(40)がEMA(20)を上からクロスすると、売り注文を出します。
MA-Crossoverは1時間足でEMA(20)とEMA(40)を使い、買い、売りの両タイプを選択しています。ストラテジー概要には、トリガーとなるシグナル、名前、実行される間隔が表示されています。その結果、以下のような予備戦略が出来上がりました。
ストラテジーのバックテスト
バックテストは、あなたの取引戦略の履歴シミュレーションです。異なる市場環境下でのパフォーマンスとリスクを理解するのに役立ちます。歴史は必ずしも繰り返されないことに注意してください。また、バックテストにはよくある間違いがいくつかありますので、覚えておいてください。バックテストは、良い戦略を検証するのではなく、悪い戦略を排除するためのツールであると考えるべきです。
我々の目的では、我々のアルゴリズムの潜在的な欠点を見つけるために、異なる時間枠と様々なシナリオで我々のボットをテストします。まず最初に、過去12ヶ月間、このボットをバックテストしてみましょう。我々の戦略のバックテスト結果は右のパネルで見ることができます。
この取引ボットでは、トレンドが非常によく識別されているようです。単純なバイ・アンド・ホールド戦略をはるかに凌駕しています。さらに、過去1ヶ月、3ヶ月、6ヶ月の間でも比較的良い結果を示しています(ここでは示していません。)また、ETHUSDTのような他のペアでも、この基本戦略は単純なバイ・アンド・ホールド戦略より優れているようです。
これはちょっと出来すぎのような気がします。そこで、もっと難しい期間を見てみましょう。2019年の第1四半期(2019.01.01~19.04.01)を考えてみます。この期間は、BTCUSDTの乱高下と大規模な価格ジャンプが特徴です。バックテストを実行し、シンボルタブでエントリーシグナルとエグジットシグナルを確認します。
見ての通り、市場が~8%上昇している間、我々は~5%下落しています。私たちの戦略には2つの問題があるようです。1つ目は、価格が急激に変動している時に、EMAのシグナルが非常に接近しているため、頻繁にポジションを建てたり閉じたりして、取引手数料と損失を累積していることです。第二に、このような速い値動きの時、EMAのクロス売りシグナルは遅れがちで、すでに勢いがなくなっている時に取引を終了してしまう。
次のステップでは、私たちの戦略を改良し、上記の問題に対処するようにします。
戦略を練り直す
RSIで早期終了
このセクションでは、先に述べた欠点を避けるために、より早く市場から退出する方法を見つけようとします。これを行うために、私たちは RSI戦略 は、与えられた時間軸における平均的な上昇と平均的な下降を関連付けるものです。その結果、このシグナルは、上昇と下降の動きの強さを測定するために使用することができます。RSIの売りシグナルを次のように追加します。
ここで、2つの売りシグナルをマウスでドラッグすることによって、ブール論理で結合します。その結果、次のようなストラテジーができあがります。このように、シグナルを組み合わせるには 任意の または であり の操作を行います。
改良した戦略を同じ 12 ヶ月間で再実行すると、パフォーマンスが向上していることがわかります。
しかし、2019年第1四半期のテストでは、RSIシグナルは私たちの出口ポイントを全く変えず、パフォーマンスも変わりません。それでも、トレンドの方向性(MA-Crossover)と動きの強さを測る追加の出口シグナルを組み合わせることは合理的であると思われます。RSIの出口値だけでなく、適切な移動平均の窓を選択することは、実際には市場のボラティリティに依存する可能性があります。
買い注文のクールダウン期間
そこで、連続した買いシグナルの回数を減らす方法を見つけたいと思います。そのために、買い注文のための「クールダウン」期間を戦略に追加します。これは、横ばい相場でポジションを頻繁にオープンしたりクローズしたりするのを避けるのに有効です。クールダウン期間を8時間に設定すると、ボットが8時間以内に連続してロングポジションを持つのを防ぐことができます。
12ヶ月のバックテストでは、この制限は実際にパフォーマンスを低下させます。取引回数を減らし、手数料を節約しているにもかかわらず、ボットは有益な取引に入ることを妨げられているようです。
それにもかかわらず、クールダウン期間は実際に2019.01.01~2019.04.01のテスト期間内に達成した損失を-4%に減らしています。
結論として、ボットのパフォーマンスを理解するためには、異なる時間枠でのテストと同様に、異なる開始点を選択することが重要であることがわかります。戦略を洗練させることは、時にトレードオフを伴い、慎重に検討する必要があります。
研究、改善、そして本稼働
上記では、トラリピを使った取引ボットの設定方法を非常に単純化した例を設計しましたが、これは適切な戦略研究とは言えないということを意識しています。実際、Lopez de Pradoがその著書で書いているように 金融機械学習に関する著書:
よくある誤解は、バックテストをリサーチの道具と考えることです。リサーチとバックテストは飲酒運転と同じです。バックテストの影響を受けて研究してはいけません。
とはいえ、この図解で、あなたの投資アイデアをトラリピで取引可能なストラテジーに簡単に変換し、直感的な方法で修正、設定、テストできることを納得していただけたと思います。ストラテジーの作成に自信がついたら、トレーディングボットをライブトレードに導入するのはとても簡単です。
免責事項:バックテストは将来の結果を示すものではありません。上記の記事は単なる意見であり、トレーディングボットやトレーディングアルゴリズムがどのように使用できるか、または使用すべきかを示唆するものではなく、いかなる種類のトレーディングアドバイスも表すものではありません。