
この戦略は,逆転取引方法 ((低点を購入する) とトレンド追跡論理 ((価格がMA200以上である場合にのみ) を組み合わせている. この戦略は,資産の低点を購入するときに最も利益を得る可能性のある最適なタイミングを見つけることを目的としている. 長期移動平均線上にある価格は,短期価格の弱い資産を購入する際の利益を得る可能性を高めることを意味します.
この策略は,価格が回顧期間の全体の変化のパーセントを計算することによって,価格が相対的な低点にあるかどうかを判断する.全体的な変化のパーセントが3%未満であるときは,価格が低点にあると考えられる.さらに,策略は,トレンドを判断する指標として200日単一の移動平均を設定する.価格が200日移動平均より高い場合にのみ,買入シグナルを発信する.このように,策略はMEANの回帰原理と多空配合原理の両方を利用し,トレンドが向上するときに低点を購入し,利益を上げる.
この戦略は,トレンド取引と逆転取引の利点を組み合わせている.一方では,長期移動平均を使用してトレンドを判断し,トレンド下落時に盲目買いを避ける.一方では,逆転買い低点は,短期的な調整時により良い入場タイミングを得ることを可能にする.この両者の組み合わせは,取引の安全性を保証するとともに,利益の確率を高める.さらに,戦略のパラメータの最適化スペースが広く,異なる市場に応じてパラメータの調整が可能で,強い適応性がある.
この戦略の最大のリスクは,買取シグナルが発せられた後に価格がさらに下落し,損失が拡大する可能性があることにある.また,もし市場が長期横軸で,価格が移動平均を破ることができない場合,戦略が失敗することにもつながる.これらのリスクを軽減するために,移動平均周期を適切に短縮し,買取条件を最適化して,十分な安全マージンがあることを保証する.
この戦略は,以下のいくつかの点で最適化できます: 1) 移動平均周期を最適化して,異なる市場に対応する; 2) 購入条件を最適化して,十分なマージンレッジを確保する; 3) 損失を制御するストップ・ロース戦略を追加する; 4) 他の指標と組み合わせて,トレンドと低点を判断する,正確性を向上させる.
この戦略は全体的にトレンドフォローと逆転取引思想を組み合わせた典型的な戦略である.これは取引の安全性を保証するとともに,利益の確率を高める.強力な実戦価値を持つ.パラメータ最適化と止損戦略の最適化により,戦略の安定性と実戦効果をさらに強化することができる.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)
//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)
//Percent change
inp_lkb = input(1, title='Lookback Period')
perc_change(lkb) =>
overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100
// Call the function
overall = perc_change(inp_lkb)
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12)
fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31)
fromYear = input(defval = 2020, title = "From Year", type = input.integer, minval = 1970)
thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12)
thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31)
thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970)
showDate = input(defval = true, title = "Show Date Range", type = input.bool)
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"
//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA)
strategy.close(id="long", when = window() and overall>1)
bgcolor(color = showDate and window() ? color.gray : na, transp = 90)
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)