
この戦略は,チャネルブレイク原理に基づいており,均線交差を退出信号として使用し,先物および指数取引に適用されます.
一定周期内の最高値と最低値を計算し,上下チャネルを構築する.
価格が上通路を突破すると,多めに;価格が下通路を突破すると,空いてください.
速期と遅期の2つのSMA平均線を計算する.
多時,速期SMA上は慢期SMA,平多ポジション;空き時,速期SMA下は慢期SMA,平空ポジション.
経路と均等なシステムと組み合わせれば,利益の確率を高めることができる.
経路を判断して,ankelの定期を旋回し,均線を判断して,トレンドを終了する.
単線フィルタリングは,不必要な取引を減らすためにwhipsawを回避します.
経路範囲のパラメータは,異なる周期と波動率市場に対応して調整できます.
経路の範囲は正しく設定されていないため,破口の機会を逃すか,より多くの偽破口を生成する可能性があります.
平均線のパラメータが正しく設定されていないため,早すぎたり遅すぎたりしてポジションを退出することがあります.
ポジションの規模を合理的に管理し,単一の損失を過大にしないようにする必要があります.
突破の後に効果があるかどうか注意して,追いかけるのを防ぎます.
異なるパラメータの下での戦略の収益率と勝利率をテストし,通路範囲と平均線周期を最適化する.
トレンド指標のフィルタリングと突破信号の組み合わせにより,突破の成功率を高めます.
ポジション管理機構の追加,例えば,固定シェア,マーティンゲルなど.
単一損失を抑えるための損失防止メカニズムの追加
この戦略は,市場回転と熱点を判断するためのチャネルを使用し,トレンドの終わりを判断し,合理的なパラメータを設定することで,強力な市場で安定した収益を達成できます.しかし,whipsawがもたらす損失を防止する必要があり,ポジションとリスク管理を最適化することは非常に重要です.パラメータ調整,シグナルフィルタリングおよびリスク管理手段の使用により,戦略の安定性をさらに強化できます.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-13 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/
// © anshuanshu333
//@version=4
// strategy("ChBrkOutStrategySMA", overlay=true, initial_capital = 200000)
length = input(title="Length", type=input.integer, minval=1, maxval=1000, defval=7)
fastSMA = sma(close,9)
slowSMA = sma(close,21)
upBound = highest(high, length)
downBound = lowest(low, length)
boundLongEntry = ((close >= upBound) or (high >= upBound)) and fastSMA>slowSMA and (close > open)
boundShortEntry =((close <= downBound) or (low <= downBound)) and fastSMA<slowSMA and (close <open)
u=plot(upBound, title = "Upper Bound",color=color.blue, linewidth=1)
l=plot(downBound, title = "Lower Bound",color=color.red, linewidth=1)
plot(fastSMA,title = "Fast SMA", color = color.red, linewidth =2)
plot(slowSMA,title = "Slow SMA" ,color = color.green, linewidth =1)
fill(u,l, transp=95)
plot(avg(upBound,downBound), title = "Avg", color=color.gray,linewidth =1)
if (boundLongEntry )
strategy.entry("LE", long = true)
if (boundShortEntry)
strategy.entry("SE", long = false)
SmaLongExit = crossunder(fastSMA,slowSMA)
SmaShortExit = crossover(fastSMA,slowSMA)
//Close TRades
if (strategy.position_size > 0)
strategy.close(id="LE",when= SmaLongExit)
if (strategy.position_size < 0)
strategy.close(id="SE",when= SmaShortExit)