アルゴリズム暗号取引に関する多くの記事は、取引リグの構築とコードのバックテストの現実を単純化しすぎています。 ここでは、バックテストの3つの側面を確認します。これらの側面は、見過ごされがちですが、 結果を達成するための鍵.
それを正しく理解しましょう。バックテストの3つの鍵です。
- キャンドル 低い値 ストップ用
- 管理する 執行価格
- 繰り返し バックテストと実際の比較
これは、強力なバックテストが 大変な努力 (驚くことではありません!)しかし、これをさらに掘り下げてみましょう。
多くのバックテストリグはキャンドルを使用しています 閉じる 各ティックの値。 ストップロス注文によるライブ取引 それはあなたの位置を止めるティックの低い値です.
さあo例でわかりました。 下のBTCのチャートで、下の緑のろうそくの青い線で、そのティックの低から高のほぼ中間で買い注文を実行するとします。
次のティックの安値は、それがタイトなストップロスだった場合、ストップをトリガーする可能性があります。 しかし、バックテストコードがクローズでストップロスSELLを想定している場合、そうではなく、 シミュレーションでは、位置は前方に伸びます。 緑のエントリーティック(クロス)に続く赤いろうそくをよく見てください。その近い値と低い値は大きく異なります。 この特定のケースでは、後者はより大きな利益を示します。
したがって、オープンよりも高い価格で購入することの影響 がある可能性があり シミュレーションとバックテストに深刻な影響を及ぼします。 です 実行価格とティックオープンの差は、代わりにポジションが拡大して利益を得る方法に大きな違いになる可能性があります。
執行価格は、取引の利益に連鎖的な影響を与える可能性があります。
2つのポジションを考えてみましょう。20.00つは20.50(ラウンド数を使用するため)で入力され、もう0.50つはXNUMXで入力され、わずかに高い(マーケットバイ)価格です。 この[比較的小さい] XNUMX単位の差は カスケード効果 時間の経過に伴うポジションの利益について。 どうして? 後続のティックで20.50の位置が停止する可能性があるため、低値はストップロス設定よりも低くなる可能性があります。 その間、最初のポジションは利益を上げるためにさらに多くのティックを続けます。 大きな違い!
これに対処するには、実行価格を見積もる必要があります…
バックテストの仕事は、過去に実行されたときのモデル/戦略からのリターンを推定することであることを覚えておくことが重要です。
バックテストコードは、買い側または売り側で取引が受け取った価格(過去形)を知りません。
過去の過去の市場データを見ると、実際の注文執行価格はわかりません。 確かにあなたはポジションの実際の価格を示すログを持っているかもしれませんが、バックトレーダーは個々の取引ログではなく一般的な市場データを見ています。
エントリー時のティックに始値を使用することは現実的ではなく、終値を使用することもありません。 なぜこれが大きな違いを生むのですか? 前のセクションで説明したように、より高い執行価格でのエントリーは、バックテストシミュレーションよりも早く指値売り注文をトリガーする可能性があるためです。
バックテストの結果を少し悲観的にする必要があります。
実行価格を正確に見積もる場所についての本当の答えはありません。シミュレーションでこれを正確に正しく取得することはできないことを理解することが重要です。 購入注文のオープン価格を想定することは、一般的に楽観的であり、理想的なアプローチではありません。 同様に、SELL注文の終値を想定すると、実際の結果から大きく外れる可能性があります。
市場で購入
選択できるオプションは次のとおりです 成行注文の購入:
a)ティックのOPENとCLOSEの中間(または事前定義された距離)で実行価格を見積もります
b)ティックのLOWとHIGHの中間(または事前定義された距離)で実行価格を見積もります
c)OPENまたはLOWとCLOSEまたはHIGHの間でランダムな価格を選択した
市場の行動は本質的にランダムである傾向がありますが、あなたのバックテストコードのため、私は(c)のファンではありません べき等ではありません。 同じデータで実行されるたびに異なる結果が返されます。 これは厄介です。
オプション(b)はより不安定な市場を強調していますが、オプション(a)はそれほど不安定ではありません。 これはあなた次第ですが、選択する必要があります。 あなたは、例えば、使用することができます CVIなどのボラティリティ指数 次に、バックテストしている期間のその値に従って選択します。
SELL指値注文をとる利益
選択できるオプションは次のとおりです SELL指値注文をとる利益のために:
a)ティックのOPENとHIGHの中間(または事前定義された距離)で実行価格を見積もります
b)ティックのCLOSEとHIGHの中間の執行価格を見積もる
c)上記のキャンドル値の間でランダムな価格を選択した
ストップロスSELL指値注文
選択できるオプションは次のとおりです ストップロスSELL指値注文の場合:
a)ティックのOPENとCLOSEの中間の執行価格を見積もる
b)ティックのCLOSEとLOWの中間の執行価格を見積もる
c)上記のキャンドル値の間でランダムな価格を選択した
注文に応じて、LOW値とHIGH値が使用されていることに注意してください。 スタンス。 利益確定指値売り注文は価格の上昇に対処し、ストップロス予防指値売り注文は価格の低下に対処します。 どちらも、制限値を超えるギャップに直面する可能性があります。
ストップロス指値注文を過ぎたギャップダウンへの対処
ポジションロスを拡大するための非常に一般的な方法は、 価格ギャップ-ストップロス指値注文を超えて。 トレーディングリグは、ストップロス指値注文の下のポジションを特定し、それがさらに赤字になる前にその上でマーケット売り注文を実行することによってこれを管理する必要があります。
ストップロス成行注文をサポートしない多くの取引所を覚えておいてください。 Binanceなので、使用を余儀なくされます ストップロス制限 あなたの立場を守るための命令。 ストップロス指値注文には「ストップ価格」と「指値価格」があり、前者は後者の価格で指値売りをトリガーします。
Binanceなどの多くの取引所は、ストップロス指値注文をサポートしていません。
これは、バックテストアルゴリズムにとってどのような意味がありますか? 保守的/悲観的な見方をするためには、 どこかの販売価格 ストップの制限価格とティックローの間。 比率が低いほど、結果はより保守的になります。 これらのストップロス指値注文のかなりの割合が指値価格で実行される場合がありますが、他の注文は指値価格を下回って実行され、 これを説明する必要があります.
売り注文をとる利益の会計処理
トレーディングリグが利益確定モデルをサポートしている場合(そうすべきです)、出口レベルに達するとポジションが利益でクローズされる場合、これらの注文は積極的に管理する必要があります。
このシナリオでは、成行注文は利益をテーブルに残し、特定の価格で指値売り注文を行う方が良いでしょう。
ポジションで利益を得ようとするときの強力なアプローチは、オーダーブックのトップを取得し(上記を参照)、SELL制限価格をこれらの価格のXNUMXつに設定することです。 これは、現時点での成行注文よりも高い価格(利益)で約定する可能性があります。
これは、バックテストアルゴリズムにとってどのような意味がありますか? 保守的/悲観的な見方をするためには、 利益を生む出口レベルと高値の間の価格。 実際の販売価格は オーダーブックスプレッドに依存 取引時ですが、もちろんバックテストシミュレーターには「オーダーブック」がないので、入手可能なデータから見積もる必要があります。
実際の結果と比較しない限り、バックテストアルゴリズムを改善する方法はありません。 繰り返し.
バックテストの結果を実際の取引結果と繰り返し比較しない限り、バックテストに自信を持つことはできません。
これを実現する方法の具体例を次に示します。
- ライブトレーディングリグを一定期間実行します。 24時間
- 結果をログに記録します:各取引、各出口、各ストップロス
- この期間の後、同じ期間にバックテストコードを実行します
- バックテストの結果を実際の結果と比較してください!
各取引を詳細に比較します。実際のライブ取引を表していないバックテストコードはどのような仮定をしましたか?
違いは何ですか?
- あなたのバックテストは楽観的ですか? もしそうならどこ? どうやって? どうして?
- あなたのバックテストは過度に悲観的ですか?
バックテストで一貫して少し悲観的な結果を表示する必要があります。 保守的。
これを数回行った後、トレーディングリグをオフにして、バックテストコードとトレーディングリグの両方を進化させてから、 反復する.
ライブトレーディングリグは比較的小さな注文サイズで実行できるため、テストとして実行するのにそれほど費用はかかりません。
もちろん、どの期間でも市場で予期しない行動が発生します。ここでのポイントは、バックテストで実際に明らかになったものを明らかに推定していない領域を特定することです。
これを行うときに私が見つけたもののいくつかの例:
- バックテストはLIMITSELLの価格について過度に楽観的でした。実際の取引では、利益を削減するギャップダウンの状況がしばしばありました。
- バックテストはBUY実行価格について過度に楽観的でした。実際の取引では、ティックオープン価格が実行されることはめったにありませんでした。
- バックテストは、ティック内の低い値でSTOP-LOSS売り注文をキャプチャしていませんでした。実際の取引では、これはポジションを早期に終了していました。
これはあなたの暗号取引リグから利益を得る唯一の方法です。 バックテストを時間の経過とともに進化させ、実際の結果を繰り返して改善します。
アルゴリズム取引モデルのバックテストは大変な作業です。 これは当然のことです。 ここには「簡単な道」はありません。
- 7
- Action
- ALGO
- アルゴリズム
- アルゴリズム
- 物品
- 自動化
- バックテスティング
- ビンランス
- BTC
- 建物
- 購入
- 原因となる
- 閉まっている
- コード
- コマンドと
- 続ける
- クリプト
- 暗号取引
- データ
- 取引
- 取引
- 詳細
- DID
- 距離
- EV
- 交換について
- 出口
- 詳細
- 顔
- 名
- フォワード
- GM
- GP
- グリーン
- GV
- こちら
- ハイ
- 認定条件
- How To
- hr
- HTTPS
- ia
- 識別する
- 影響
- index
- IP
- IT
- ジョブ
- ジャンプ
- キー
- レベル
- LG
- LINE
- LP
- 市場
- ミディアム
- ML
- 番号
- 開いた
- オプション
- オプション
- 注文
- 受注
- ブランド
- 利益
- 守る
- 現実
- 結果
- 収益
- レビュー
- リグ
- ラン
- 売る
- セッションに
- 設定
- サイズ
- 小さい
- So
- サポート
- サポート
- 驚き
- test
- 時間
- top
- トレード
- トレーディング
- 値
- 詳しく見る
- ボラティリティ(変動性)
- W
- 以内