連続的なダウンアップの逆転戦略

作者: リン・ハーンチャオチャン開催日:2024-03-08 17:01:33
タグ:

img

概要

連続ダウンアップ逆転戦略は,価格のダウンアップの連続性に基づいた定量的な取引戦略である.この戦略は,短期的なトレンド逆転機会を把握するために,X連続ダウンキャンドルが最低点を突破し,Y連続アップキャンドルが続くパターンを特定する.この戦略の背後にある主なアイデアは,価格が連続ダウンを経験した後,下落勢が解放されたことを示唆する.その後,連続アップが発生した場合,それは上昇勢力が蓄積し始め,価格がリバウンドを招くことを示唆する.したがって,この戦略は,価格逆転機会を下落から上昇に掴み,利益を生むことを試みる.

戦略原則

連続的なダウンアップ逆転戦略の原則は,次のステップに分けられる:

  1. パラメータ設定: 連続下行バー数 (consecutiveBarsDown) と連続上行バー数 (consecutiveBarsUp) を設定します.
  2. 市場傾向を決定する: 現在の価格の連続ダウンバー (dns) と連続アップバー (ups) の数を数える.
  3. 入場条件:次の条件が満たされた場合,ロングポジションを開く.
    • 現在の取引時間はバックテスト範囲内です (日付)
    • 前回の2つのキャンドルは,連続して,設定値に減少しました.
    • 連続BarsUpの設定値に上昇しました
    • 現行のポジションはありません (アクティブではありません)
  4. ストップ・ロスを設定する: ポジションを開いた後,ストップ・ロスの価格 (stop_loss) を,最も最近の3つのキャンドルの閉じる価格の最低点に設定する.
  5. 出口条件:次の条件が満たされたとき,ポジションを閉じる.
    • 現在の取引時間はバックテスト範囲内です (日付)
    • 現存する位置 (アクティブ)
    • 閉じる価格がストップ・ロスの価格 (ストップ・ロスの価格 < ストップ・ロスの価格) より低いか,最高価格 (ストップ・ロスの価格 < ストップ・ロスの価格) を2倍減したATRより低い (ストップ・ロスの価格 < 高値 - 2 * atr(7))
  6. 変数をリセットする: ポジションを閉じると,アクティブ変数を false と entry_bar_index を非常に大きな値にリセットする.

この戦略は,連続したダウンとアップのパターンを利用し,下落から上昇への逆転の機会を捉えようとします.同時に,リスクを制御するために厳格なストップロスの条件を設定します.

利点分析

連続的なダウンアップの逆転戦略には以下の利点があります.

  1. トレンドセンシビリティ: 連続したダウンとアップバーの数を数えることで,戦略は価格動向の変化に比較的敏感で,潜在的な逆転機会を迅速に特定することができます.
  2. シンプルで明瞭なパターン: 戦略は,明確なルールがあり,理解し実行するのが簡単で,連続したダウンとアップのシンプルなパターンに基づいています.
  3. 厳格なストップ損失: 戦略は,ポジションを開くときに比較的厳格なストップ損失条件 (最も最近の3つのキャンドルの閉じる価格の最低点) を設定し,トレンドが継続できなければ,損失を制御するタイミングで退出することができます.
  4. 調整可能なパラメータ: 市場特性と取引手段に応じて,連続したダウンバーとアップバーの数を調整することができ,戦略の柔軟性を高めます.

リスク分析

連続的なダウンアップの逆転戦略にはいくつかの利点があるが,以下のリスクに直面している.

  1. 取引頻度:市場の変動が高い場合,価格はしばしば戦略の入出条件を誘発し,取引の数と取引コストの増加につながります.
  2. ストップ・ロスの配置: ストップ・ロスのポジションは,最も最近の3つのキャンドルの閉じる価格の最低点であり,ストップ・ロスはエントリー価格にあまりにも近い結果になり,通常の市場変動中にストップ・ロスを引き起こす可能性があり,不必要な損失を引き起こす可能性があります.
  3. トレンド継続リスク: この戦略は主に逆転の機会を捉えるが,市場の傾向が強く続く場合,逆転パターンが失敗し,戦略の連続的な損失につながる可能性があります.

これらのリスクに対処するために,次の最適化措置を検討できます.

  • 市場変動の特徴に基づいて,連続したダウンバーとアップバーの数に関する要件を動的に調整し,頻繁な取引を減らす.
  • ストップ・ロスの設定方法を最適化し,例えばATRまたは%ストップ・ロスを使用し,価格に変動の余地を与える.
  • 強いトレンドが続く市場環境では,逆トレンドの取引を避けるために,トレードを減らしたり,逆トレードを考慮してください.

最適化方向

連続ダウンアップ逆転戦略は,以下の最適化方向を持っています:

  1. より多くの指標を導入する: 連続したダウンとアップバーの数に加えて,RSIとMACDなどの他の技術指標が組み合わせられ,エントリーと出口信号の正確性を向上させることができます. 確認のために複数の指標を使用することで,誤った信号を削減し,戦略の収益性を向上させることができます.
  2. ストップ・ロスの最適化とトレード・プロフィート:現在,戦略は固定ストップ・ロスのポジション (最も最近の3個のキャンドルの閉じる価格の最低点) を使用している.ATRストップ・ロスのようなダイナミックストップ・ロスの方法やトレード・ストップ・ロスの方法が検討できる.同時に,ターゲットの利益が一定のパーセントに達するとポジションを閉じるようなトレード・プロフィートの条件を追加することができる.
  3. 異なる市場環境に適応する: 戦略は,動揺する市場においてよりよいパフォーマンスを発揮し,傾向のある市場におけるリスクに直面する可能性があります. 異なる市場状態に適応するために,戦略パラメータを動的に調整するか,市場の状況の変化に応じて取引を停止することを考慮することができます.
  4. ポジションサイジングを組み込む:現在,戦略は完全なポジションで動作する.ポジションサイジングの概念は,市場リスクと個人リスク寛容に基づいて各取引のサイズを調整して,全体的なリスクを制御するために導入することができます.
  5. 他の戦略と組み合わせる: 連続的なダウンアップ逆転戦略は,トレンドを追及する戦略や平均逆転戦略などの他の戦略と組み合わせて戦略ポートフォリオを形成し,全体的な収益の安定性を向上させることができます.

上記の最適化措置により,連続的なダウンアップ逆転戦略は市場の変化により良く適応し,リスクを制御し,収益性と安定性を向上させることができます.

概要

連続ダウンアップ逆転戦略は,価格連続性に基づく定量的な取引戦略である. 連続したダウンアップのパターンを特定することで,短期間の市場逆転の機会を把握する. 戦略ルールは単純で明確で,価格動向の変化に比較的敏感であり,リスクを制御するための厳格なストップ損失条件を有する. 同時に,戦略パラメータは市場特性に合わせて調整することができ,柔軟性を高める.

しかし,この戦略には,頻繁な取引,潜在的に過度に厳格なストップロスの配置,および強いトレンド市場でのパフォーマンス低下など,いくつかのリスクもあります.これらのリスクに対処するために,パラメータを動的に調整し,ストップロスのポジションを最適化し,異なる市場環境で異なる戦略を採用するなどの措置を検討することができます.

さらに,戦略には,より多くの指標を導入し,ストップ・ロストとテイク・プロフィートを最適化し,異なる市場環境に適応し,ポジションサイジングを組み込み,他の戦略と組み合わせることなど,いくつかの最適化方向があります.継続的な最適化と改善を通じて,連続的なダウンアップ逆転戦略はより堅牢で効果的な定量的な取引戦略になることができます.

全体として,連続ダウンアップ逆転戦略は,短期間の市場逆転機会を把握して利益を生むことで,シンプルで効果的な取引アイデアを提供します.しかし,実用的な応用では,より良い取引結果を達成するために戦略を適切に最適化し調整するために,特定の市場状況と個人的なリスク偏好を組み合わせることが必要です.

結論として,連続的なダウンアップ逆転戦略は,短期的な市場逆転から利益を得るためのシンプルなアプローチを提供しています. しかし,現実の世界での実施では,定量的な取引戦略としての有効性を最大化するために,市場の状況と個人のリスク耐性に基づいて適切な最適化と適応が必要です.


/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bottom Out Strategy", overlay=true)
consecutiveBarsUp = input(2)
consecutiveBarsDown = input(3)
price = close
ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0
dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0
var entry_bar_index = 1000000
var active = false
var stop_loss = 0.0

// === INPUT BACKTEST RANGE ===
i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From")
i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru")
// === FUNCTION EXAMPLE ===
date() => true

entry_condition() => 
	date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active

exit_condition() =>
	date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7))

if (entry_condition())
	strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry")
	entry_bar_index := bar_index
	active := true
	stop_loss := math.min(close, close[1], close[2])
	// log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss)
if (exit_condition())
	strategy.close("ConsDnLong", comment = "CDLClose")
	// log.info("Close at bar {0}", bar_index)
	entry_bar_index := 1000000
	active := false
// if (dns >= consecutiveBarsDown)
// 	strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE")
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)
plot(high - 2* ta.atr(7))

もっと