
双方向逆転戦略は,前日の取引範囲に基づいて,当日のストップ・ローズ買取注文を設定する簡単なビットコイン取引戦略である.この戦略の核心思想は,当日の開場価格が前日の閉場価格より上昇した場合,高点の近くでストップ・ローズ買取を設定することであり,当日の開場価格が前日の閉場価格より下落した場合,低点の近くでストップ・ローズ買取を設定することである.
この戦略は,まず,前日の取引範囲を計算し,すなわち,最高価格減最小価格を計算します. そして,その日の開盘後に,価格が前日の閉盘価格より上昇したかどうかを判断します.上昇した場合は,止損買入価格が開盤価格と前日の取引範囲の0.6倍に設定され,下落した場合は,止損買入価格が開盤価格と前日の取引範囲の1.8倍に設定されます.
具体的には,この戦略には以下の2つの入場ルールがあります.
もし,当日の開場価格が前日の閉場価格より高い場合 (longCond1が満たされ),そして再測時間ウィンドウ内で (window) が満たされ),開場価格と前日の範囲の0.6倍分のストップロスを購入 (strategy.long1) します.
もし,その日の開場価格が前日の閉場価格より低い場合 ((longCond2が満たされ),再測時間ウィンドウ内では,開場価格加えて前日の範囲の1.8倍のストップロスを購入する ((strategy.long2) 。
この戦略は,上記の2つのストップを触発した後にポジションを開き,その日の終了前にstrategy.close_all () により平仓する.
双方向の逆転戦略には以下の利点があります.
逆転を捉え,方向偏見なし.この戦略は,価格上昇と下落の両方を同時に考慮し,異なる方向の突破逆転を捉えることができる.
リスクは制御可能で,止損保護がある.戦略は,止損価格を事前に設定し,一回の取引の最大損失を効果的に制御することができる.
毎日清算して,夜間リスクを避ける.その日の終盤前に清算して,夜間持たないことで,夜間大幅な変動のリスクを減らすことができる.
取引頻度が高いため,ショートライン操作に適している.毎日1つの取引日しか持っていないため,高い取引頻度を確保することができる.
戦略はシンプルで明快で,理解し,実行しやすい.
しかし,両方向の逆転策にはいくつかのリスクがあります.
止損距離の選択が不適切である場合,止損が突破される可能性があります.止損距離が小さすぎると,極端な場合,直接突破され,損失が生じることがあります.
取引頻度が高すぎると取引費用のプレッシャーが生じます.毎日のポジションを平らにする高頻度の取引は手数料を多く積む可能性があります.
大規模な震動の傾向下では容易に止損する.震動の動きの停止損失は,より容易に誘発され,その結果,損失が発生する.
継続的にトレンドを捉えることができない. この戦略は,トレンドが突破した後に継続的にトレンドの利益を捉えることができない.
この戦略は以下の点で最適化できます.
ストップ距離を最適化します.異なるストップ位置をテストして最適なストップポイントを見つけることができます.また,市場の変動程度に応じてストップ距離を動的に調整することもできます.
トレンドフィルターを追加します. 入場前に大きなレベルのトレンドの方向を判断し,逆向きの取引を避けることができます.
ポジション開設規則の最適化. 突破前に分時図形状判断を加えるか,量能論理判断を加え,ポジション開設精度を高めるかを考慮することができる.
ポジションの最適化を増やす. 移動ストップやトレンド追跡EXITを追加して継続的な利益を得るためのテストを行う.
異なる取引品種をテストする.この戦略は,波動が大きい品種に適している可能性があり,異なる品種のデータをテストして,最適の品種を見つける.
機械学習の技術と組み合わせて. 停止距離,開仓規則などのパラメータを最適化するために機械学習を使用することを検討することができます.
双方向逆転戦略は,全体的に非常に簡潔で実用的ショートライン戦略である.それは,価格の反転上昇と下落の状況に同時に適しており,反転の機会を効果的に捕捉することができる.しかし,この戦略にはいくつかのリスクがあり,リスクを軽減し,戦略の安定性を高めるために,ストップダスト距離,開設ルールなどの最適化が必要である.この戦略は,キーポイントを把握して最適化することができれば,非常に実用的ショートライン取引ツールになることができる.
/*backtest
start: 2023-10-02 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Simple strat", shorttitle="Simple Strat", overlay=true)
// X001TK R1 strategy
//
//
// This strategy combines the special approach in previous daily range trading
//
// This strategy goes long on stop buy order which is calculated as previous day range
// multiplied by special number.
//
// This pure strategy does not have any
// stop loss or take profit money management logic.
//
// Exit rule is simple. We close the position on market close or next day open
//
//
//
//
// Input
length = input(10, minval=1)
stopLossPercent=input(1.1,"Stop Loss Percent")
profitPercent=input(9,"Profit Percent")
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2000)
ToMonth = input(defval = 3, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2029, title = "To Year", minval = 2017)
ses_cls = input(defval=true, title="End of Session Close Out?")
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === STRATEGY ===
// conditions
longCond1 = close>close[1]
longCond2 = close<close[1]
strategy.entry("long1", strategy.long, when=longCond1==true and window()==true, stop=close+(high - low)*0.6)
strategy.entry("long2", strategy.long, when=longCond2==true and window()==true, stop=close+(high - low)*1.8)
strategy.close_all(when=ses_cls)
// === /STRATEGY ===