マルチタイムフレーム ディープ戦略を購入

作者: リン・ハーンチャオチャン開催日:2023年10月27日 16:56:23
タグ:

img

概要

マルチタイムフレーム・バイ・ディップ戦略は,特に上向き期間に印象的な利益を生むことができる比較的単純な自動化された取引戦略である.すべての価格ディップは購入のために意図されているわけではない.このシステムは,各取引を最適化するためのマルチタイムフレームアプローチに基づいている.

この戦略は,過去12時間で価格が著しく上昇したときに,1時間の時間枠で急激な価格低下を捕捉する.急激な上昇傾向の間,利益を取ることによる行動は,便利な価格で入場する機会を提供するフラッシュクラッシュを引き起こす.

スクリプトのセットアップは 30分間のタイムフレームで最適化されています. 異なるタイムフレームに合うようにパラメータを調整できます.

システムでは,次の場合,購入信号を起動します.

  • 前回の2本のキャンドルから価格が1%下がる (1時間の時間枠 = 2本の30分のキャンドル)
  • 価格が過去12時間で3%上昇しました (24個の30分キャンドルは希望された時間枠に等しい)

この設定は20以上の異なる暗号取引ペアで 150以上のバックテストを実行して最適化されています

この戦略では,各オーダーは利用可能な資本の30%を取引することを想定している. 0.1%の取引手数料が考慮されている.手数料は,最大の仮想通貨取引所であるBinanceで適用されるベース手数料に準拠している.

戦略の論理

マルチタイムフレーム・バイ・ディップ戦略の基本理念は,長期と短期のタイムフレームを組み合わせてエントリー・シグナルを決定することです.

まず,1 時間 の 期間 を 調べ て,急激 な 値下げ が 起き て いる か を 見る.前 の 2 つの ろうそく と 比べ て,現在 の ろうそく が 1% 以上 落ち て いる か を 調べ て 確認 する.

2つ目は,12時間の時間枠をチェックし,長期的に見ると有意な上昇傾向があるかどうかを確認します.これは,過去12時間で価格が3%以上上昇したかどうかを計算することによって確認されます.

短期的な下落と長期的な上昇傾向があるときのみ,買い信号が発信されます.

この組み合わせは,長期的下落傾向を盲目的に購入することを避けながら,短期的な引き下げ機会を把握します. タイムフレームの組み合わせは,戦略をより堅牢で信頼性のあるものになります.

この戦略は技術的に2つの方法を使いますperc_change()2つの時間枠をチェックするための異なるパラメータを持つ関数. 1つは12時間の変化をチェックし,もう1つは1時間の変化をチェックします.両方の条件が満たされると,購入信号が起動します.

利点分析

マルチタイムフレームの買い下げ戦略の最大の利点は,トレンドを効果的に決定し,引き戻し機会を把握できるということです.具体的には,主な利点は以下の通りです.

  1. 2つのタイムフレームを組み合わせることで 長期的下落傾向の買取を避け 不必要な損失を減らすことができます

  2. 短期的な時間軸は 急激な引き下げを記録し 低入場価格をもたらします

  3. バックテストと最適化されたパラメータにより 戦略は暗号の高い変動に適しています

  4. 取引手数料も考慮され,シミュレーションは実際の取引に近い.

  5. シンプルな論理とパラメータの構成により 分かりやすく調整できます

  6. 異なる取引対に広く適用され,柔軟性が高い.

リスク分析

多期購入・ダウン戦略には,主に次の分野でのリスクもあります.

  1. 偽のブレイクリスクは完全に回避できないため 短期的な引き下げはトレンド逆転かもしれません

  2. 固定パラメータは市場の変化に完全に適応できず,調整が必要になる可能性があります.

  3. バックテストはシミュレーションでは常にうまく行われますが ライブ取引では違いがあります

  4. 価格変動の際に最適なエントリーポイントを見逃すリスクがあります

  5. 単一の戦略は システムリスクに 弱いものです

  6. 高周波取引は取引手数料の負担を増やします

リスクについては,いくつかの最適化対策を検討できます.

  1. 短期間と長期間のトレンドを特定するためにより多くの指標を追加し,精度を向上します.

  2. パラメータを最適化し,市場により動的に適応させる

  3. バックテストからの違いを測定するための実態環境でのテスト戦略

  4. タイムラグを減らすために タイムフレームを適切に調整します

  5. システムリスクの多様化のために複数の関連性のない戦略を使用する.

  6. 適切なストップロスを設定し,取引ごとにリスクを制御するために利益を取ります.

オプティマイゼーションの方向性

多期購入・ドップ戦略を最適化するには,主に以下の分野において,まだ大きな余地があります.

  1. 安定性を高めるために ボリンジャー帯,RSIなどより多くの指標を追加します

  2. 動的パラメータ最適化のための機械学習モデルを組み込み,変化する市場に対応する.

  3. ストップ・ロスを最適化し,取引ごとにリスクを低減するために利益戦略を講じます

  4. バックテストにより多くの取引ペアとタイムフレームで最適なパラメータセットを見つける.

  5. アルバイト取引からの誤った信号を避けるために,ボリュームの変化を組み込む.

  6. リスク管理のモジュールを追加します.資産の配置,ポジションのサイズなど,全体的なリスクを制御します.

  7. トレンドフォロー,アービトラージなど,他のアルゴリズム戦略の種類を探求します.

  8. より複雑な複数のタイムフレームの組み合わせを調査して 最適なセットを見つけます

  9. イベントを取引の原動力として利用するニュース取引要素を組み込む.

これらの最適化技術により,戦略は暗号市場の複雑性のためにより堅牢で知的で包括的になることができます.しかし,あらゆる最適化には過度に適した問題を避けるために慎重なテストが必要です.

結論

マルチタイムフレーム・バイ・ディップ戦略は,非常に実用的な短期的取引システムである.それは,比較的効率的でありながら正確性を向上させるために,短期的および長期的時間次元の両方を同時に検討する.適切なパラメータチューニングと最適化により,ほとんどの取引市場,特にトレンド資産に適応することができます.

しかし,どんな機械的戦略と同様に,それはトレーダーに合理的であり続け,継続的に最適化し,変化する市場に適応することを要求する制限があります. 成功する戦略は常に進化し,静止ではありません.

結論として,マルチタイムフレームバイ・ディープ戦略は,アルゴリズム取引のための優れたテンプレートを提供します. タイムフレームを選択し,パラメータを構成し,バックテスト,リスク管理などの重要なポイントを要約します. この戦略を賢明に適用し,実践を通じて改善することで,トレーダーはデータの海の中で不可欠な手がかりを把握し,市場で一貫したアルファを達成することができます.


/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule

//@version=1
strategy(shorttitle='Multi Time Frame Buy the Dips',title='Multi Time Frame Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)


//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       

showDate  = input(defval = true, title = "Show Date Range")

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

inp_lkb = input(24, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)
overall_2 = perc_change(inp_lkb_2)

//Entry

dip= -(input(1))
increase= (input(3))

strategy.entry(id="long", long = true, when = overall > increase and overall_2 < dip and window()) 

//Exit
Stop_loss= ((input (3))/100)
Take_profit= ((input (4))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())


もっと