これは,LazyBear
この戦略の核心は,LazyBear
これは非常にシンプルで実用的な傾向です.主な利点は以下の通りです.
この戦略にはいくつかのリスクがあります:
主な解決策は以下の通りです
さらに最適化できる余地があります.
概要すると,これは非常にシンプルで実用的な波動トレンドフォロー戦略である.価格変動の波動トレンドをモデル化することで,WT
/*backtest start: 2023-11-18 00:00:00 end: 2023-12-18 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // // @author LazyBear // // If you use this code in its original/modified form, do drop me a note. // //@version=4 // === 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 = 2021, 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) // === INPUT SHOW PLOT === showDate = input(defval = true, title = "Show Date Range", type = input.bool) // === FUNCTION EXAMPLE === 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" n1 = input(10, "Channel Length") n2 = input(21, "Average Length") obLevel1 = input(60, "Over Bought Level 1") obLevel2 = input(53, "Over Bought Level 2") osLevel1 = input(-60, "Over Sold Level 1") osLevel2 = input(-53, "Over Sold Level 2") ap = hlc3 esa = ema(ap, n1) d = ema(abs(ap - esa), n1) ci = (ap - esa) / (0.015 * d) tci = ema(ci, n2) wt1 = tci wt2 = sma(wt1,4) plot(0, color=color.gray) plot(obLevel1, color=color.red) plot(osLevel1, color=color.green) plot(obLevel2, color=color.red, style=3) plot(osLevel2, color=color.green, style=3) plot(wt1, color=color.white) plot(wt2, color=color.fuchsia) plot(wt1-wt2, color=color.new(color.blue, 80), style=plot.style_area) //Strategy strategy(title="T!M - Wave Trend Strategy", overlay = false, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 1000, currency = currency.NONE, default_qty_type = strategy.cash, default_qty_value = 1000, commission_type = "percent", commission_value = 0.1, calc_on_every_tick=false, process_orders_on_close=true) longCondition = crossover(wt1, wt2) shortCondition = crossunder(wt1, wt2) strategy.entry(id="Long Entry", comment="buy", long=true, when=longCondition and window()) strategy.close("Long Entry", comment="sell", when=shortCondition and window()) //strategy.entry(id="Short Entry", long=false, when=shortCondition)