この戦略は,トレンド方向を決定するために,ボリンジャーバンドの上帯,中帯,下帯と200日移動平均の関係を使用します. 上向きのトレンド中に価格が下向きに触ると長値になり,下向きのトレンド中に価格が上向きに触ると短値になります.
この戦略は,まずボリンジャーバンドでトレンド方向を決定する.その後,ボリンジャーバンドの波動性範囲を移動平均値と組み合わせて,方向的正確性と適正な利益のロックを保証する取引システムを形成する. パーマータ選択とストップ損失のいくつかの問題がまだあり,最適化やメカニズム追加によりより良いパフォーマンスを達成するためにさらに改善することができます.
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 1m 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/ // © Aayonga //@version=5 strategy("boll trend", overlay=true,initial_capital=1000,default_qty_type=strategy.fixed, default_qty_value=1 ) bollL=input.int(20,minval=1,title = "length") bollmult=input.float(2.3,minval=0,step=0.1,title = "mult") basis=ta.ema(close,bollL) dev=bollmult*ta.stdev(close,bollL) upper=basis+dev lower=basis-dev smaL=input.int(200,minval=1,step=1,title = "trend") sma=ta.sma(close,smaL) //多头趋势 longT=upper>sma and basis>sma and lower>=sma //空头趋势 shortT=upper<sma and basis<sma and lower<=sma //入场位 longE=ta.crossover(close,lower) shortE=ta.crossover(close,upper) //出场位 longEXIT=ta.crossover(high,upper) or ta.crossunder(close,ta.sma(close,300)) shortEXIT=ta.crossunder(low,lower) or ta.crossover(close,ta.sma(close,250)) if longT and longE strategy.entry("多long",strategy.long) if longEXIT strategy.close("多long",comment = "close long") if shortE and shortT strategy.entry("空short",strategy.short) if shortEXIT strategy.close("空short",comment = "close short")