
この戦略は,ブリン帯の上線と下線を計算し,長期短期移動平均の方向と組み合わせて,トレンドの方向に低点を購入し,高点を売る自動取引戦略を実現している.その考えは,株の長線のトレンドの方向を追跡し,ショートラインの調整時に低点を購入し,高点をオーバーバイしたときに売り,多頭ポジションを構築し,利益を実現することである.
この戦略は,主に以下の部分によって自動取引を実現します.
ブリン帯の上下軌を計算する. closeのn周期標準差を計算して,ブリン帯通路の上下軌を導き出す.
長期短期トレンド判断:長期300周期と短期20周期のSMAを計算し,株全体の傾向と現在の段階の傾向を判断する.
買入シグナル: クローズがブリンを突破して下落し,長期SMAが上方,短期SMAが上昇し始めるときは,区間の低点と考えられ,買入シグナルを生成する.
売る信号: 閉塞がブリン帯を突破して軌道に乗ったとき,長期SMAは下にあり,短期SMAは下落し始めると,区間の高点と考えられ,売る信号が生じる.
OCO委託グループを使用して,停止損失と停止停止を保証します.
このような設計により,大トレンドに適合した場合には,短期調整の買い時と超買い高点の売り時を自動的に識別し,トレンド取引戦略を実現することができる.
この戦略の利点は以下の通りです.
自動でトレンドを認識し,人工判断をせずに操作の難易度を減らす.
短期的な調整の購入のタイミングを体系的に捉え,低点を見逃さないようにする.
システム的に,高値を超えた時を特定し,その時に売り出しをします.
リスクのコントロールを有効にするために,ストップとストップポイントを設定します.
勝率を上げるため,無効な取引信号の多くをフィルターできます.
市場を動かすには,トレンドを追跡し,タイミングでポジションを調整できます.
戦略は明確で理解しやすいので,後続的に最適化できます.
この戦略にはいくつかのリスクがあります.
株の不適切な選択は,トレンドを追跡できない可能性があります.
パラメータが正しく設定されていないため,取引頻度が高くなり,取引のタイミングが間違える可能性があります.
突発的な出来事により,トレンドが逆転し,損失が拡大する可能性があります.
ストップポイントがあまりにも近く設定され,ストップポイントが頻繁に発生する可能性があります.
取引量が不足しているため,取引が完了できない可能性があります.
短時間での反射は,過適合を引き起こす可能性がある.
対応策には,流動性があり,傾向が顕著な株を選択し,最適な効果を達成するためにパラメータを調整し,重大ニュースの反転を予防するために注目し,ストップ・ローズを適切に緩和し,実際の取引量を評価し,反測サイクルテストの安定性を拡大するなどが含まれています.
この戦略は以下の方向から最適化できます.
ブリン帯周期,標準差倍数,移動平均周期など,最適のパラメータの組み合わせを見つける.
追跡ストップ,平均ストップなどのストップ方法を追加し,リスクをさらに制御する.
ポジション管理を増やし,ポイントに応じてポジションサイズを調整し,資金利用効率を管理する.
取引量指数と組み合わせて,低量の無効ブレイクを避ける.
比較的強い指標を組み合わせて,買い物や売却の方向性を決定する.
機械学習アルゴリズムを追加し,パラメータの自動最適化と戦略評価を実現する.
他の戦略と組み合わせて,多戦略の組み合わせを作り,安定性を高める.
これらの最適化により,戦略の効果と安定性をさらに高めることができます.
この戦略の全体的な考え方は明確で分かりやすく,短期的な低点の買取と高点の販売のタイミングを体系的に捕捉することによって,株式のトレンドを効果的に追跡し,リスクを制御した前提でより良い収益を得ることができます.この戦略は,パラメータ最適化,止損方法の改善,ポジション管理などによってさらに向上させることができ,実場で大きな応用可能性があります.この戦略は,自動化トレンド取引のための良い基盤の枠組みを提供します.
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Buy Dip Sell Rip Strategy", overlay=true)
source = close
length = input(15, minval=1)
mult = input(1.25, minval=0.001, maxval=50)
longMAPeriod = input(300, minval=5)
shortMAPeriod = input(20, minval=5)
basis = sma(source, length)
longMA = sma(source, longMAPeriod)
prevLongMA = sma(close[1],longMAPeriod)
shortMA = sma(source, shortMAPeriod)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)
if (source > lower and source[1] < lower)
if (longMA < source and shortMA>source)
strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
else
strategy.close("BBandSE")
else
strategy.cancel(id="BBandLE")
if (source > upper and source[1] < upper)
if (longMA > source and shortMA < source)
strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
else
strategy.close("BBandLE")
else
strategy.cancel(id="BBandSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)