オープンドライブ戦略

作者: リン・ハーンチャオチャン,日付: 2023年10月23日 15:13:49
タグ:

img

概要

オープンドライブ戦略は,市場が開かれた後,毎取引日の最初の30分間で価格の行動を観察し,強い方向的なブレイクアウトを特定し,その方向のトレンドトレードに入ります.主にオープン後に流動性と取引量が増加することを利用し,より大きな価格変動と方向的な力を発生させることができます.

戦略の論理

  1. オープン後に極端な価格動きを測定するのに十分な時間が必要です.

  2. この時間帯で開いているバーを特定してください: 0700-0715, 0800-0815, 1300-1315, 1430-1445.

  3. オープンバーが満たすかどうかを確認します:

    • 低バー近くで開いて,高バー近くで閉じ (上バー)

    • または,バー近くでオープン,バー近くで閉鎖低 (ダウンバー)

    • そして,前回の5バー高を1x5バー範囲に超えたり,前回の5バー低を1x5バー範囲に超えたり (ブレイクアウト)

  4. 上記条件を満たす場合は,信号バーの後に3バーその方向にトレンドトレードを入力します.

  5. 入力バーの高低でストップ損失を設定する.

  6. 3バー (90分) 保持し,その後退場する.

利点分析

  • オープン後,高流動性による強い方向動向を捉える.
  • ブレイクフィルターは,揺れる条件から偽信号を避ける
  • より長い時間枠が過剰取引を減らす
  • ストップ・ロスは過剰な損失を回避する

リスク分析

  • 固定開業時間帯は,トレンドブレイクを逃すリスクがある
  • 十分なブレイクドレッシング値がない場合,有効な信号をフィルターする可能性があります.
  • 固定保持時間は特定の条件に適応できない
  • トレーリングストップがトレンドをフォローできない

考える 方法

  • より多くのパラメータでオープン期間を動的に決定
  • ブレイクドレッシュルを最適化する
  • 変動に基づいて保持時間を調整する
  • トレイリングストップ手順を追加する

改善 の 方向

  • 信号の質を向上させるためにより多くの指標を組み込む
  • より頻繁な時間枠で取引を入力する
  • バックテストに基づいて,オープン期間,ブレイクアウトの値,ストップなどのパラメータを最適化
  • 利潤を上げるために,後退停止,再入国などを検討します.
  • 最適品を見つけるために様々な製品でバックテスト

概要

オープンドライブ戦略は,オープン後に強い方向ブレイクを捕捉することでトレンドに従っている.ランダムエントリと比較して,より良いリスク・リターン特性を提供している.鍵は適切なパラメータチューニング,楽器選択,バランス周波数と収益性である.追加の分析を持つ経験豊富なトレーダーに適している.


/*backtest
start: 2023-10-15 00:00:00
end: 2023-10-22 00:00:00
period: 10m
basePeriod: 1m
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/
// © Marcns_

//@version=5
// a script that highlights open drives around cash market opens throughout the day
// this indicator identifies the following cash open, open drives 0700 - 0715 / 0800 - 0815 / 1300 - 1315 / 1430 - 1445 
// an open drive is when a cash market opens and price runs either up or down away from the opening price, often this will be the high or the low the remainer of the session or day
// and often identify a trend session
strategy("Open Drive", commission_type =  strategy.commission.cash_per_contract, commission_value = 3.8 )

// open drive filter times - all times GMT
eu_sev = time(timeframe.period, "0700-0715", "GB")
eu_eig = time(timeframe.period, "0800-0815", "GB")
us_one = time(timeframe.period, "1300-1315", "GB")
us_two = time(timeframe.period, "1430-1445", "GB")


// identify bar that opens at low and closes at high + vice versa 
// bar needs to open at one extreme and close at another 
TrndExThreshold_Open = 0.15
TrndExThreshold_Close = 0.15

// add a bar range expansion filter - range of bar correlates to volume, high volume = wider range. This script will be able to filter for a break of a 5 bar range +100% or -100%

fbhi = ta.highest(5)
fblo = ta.lowest(5)

fbr = (fbhi - fblo)

RangeEx_up = 0.0

if high >= (fbhi[1] + fbr[1])
    RangeEx_up := 1.0
else
    na

// range ex down

RangeEx_do = 0.0

if low <= (fblo[1] - fbr[1]) 
    RangeEx_do := 1.0
else
    na


//#1 open within 5% of low

OpenAtLow = 0.0 

if (close > open) and (open-low) / (high-low) < TrndExThreshold_Open
    OpenAtLow := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtHigh = 0.0

if (close > open) and (high-close) / (high-low) < TrndExThreshold_Close
    CloseAtHigh := 1.0
else
    na 

OD_Up = 0.0

if (OpenAtLow + CloseAtHigh + RangeEx_up == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Up := 1
else
    na

plot(OD_Up, title = "OD_up")



OpenAtHigh = 0.0 

if (close < open) and (high-open) / (high-low) < TrndExThreshold_Open
    OpenAtHigh := 1.0
else 
    na 

//#2 close within 5% of high
    
CloseAtLow = 0.0

if (close < open) and (close-low) / (high-low) < TrndExThreshold_Close
    CloseAtLow := 1.0
else
    na 

OD_Down = 0.0

if (OpenAtHigh + CloseAtLow + RangeEx_do == 3.0) and ( eu_sev or eu_eig or us_one or us_two)
    OD_Down := -1
else
    na

plot(OD_Down, title = "OD_down", color = color.red)


//3sma

ma = ta.sma(close,3)

// one time framing - highlight bars the make a series of lower highs or higher lows to identify trend 
// one time frame up 
otf_u = 0.0

if close > ma and close[1] > ma[1]
    otf_u := 1
else
    na
// one time frame down 
otf_d = 0.0

if close < ma and close[1] < ma[1]
    otf_d := 1
else
    na


//bgcolor(otf_u ? color.rgb(76, 175, 79, 70) : na)
//bgcolor(otf_d ? color.rgb(255, 82, 82, 66) : na)

// record high and low of entry bar into variable for absolute stop
// buy stop
bs = 0.0

if OD_Up
    bs := low[1]
else
    na

// sell stop
ss = 0.0

if OD_Down
    ss := high[1]
else
    na




// strategy entry and exits 
// long
if OD_Up
    strategy.entry("el", strategy.long, 2)
if ta.barssince(OD_Up)> 3 
    strategy.exit(id = "ex" , from_entry = "el", limit = close)

// short 
if OD_Down
    strategy.entry("es", strategy.short, 2)
if ta.barssince(OD_Down)> 3
    strategy.exit(id = "ex" , from_entry = "es", limit = close)



もっと