スーパートレンド LSMA ロング戦略


作成日: 2023-12-18 10:43:14 最終変更日: 2023-12-18 10:43:14
コピー: 0 クリック数: 903
1
フォロー
1621
フォロワー

スーパートレンド LSMA ロング戦略

概要

スーパートレンドLSMA多頭策略は,スーパートレンド指標とLSMA移動平均を組み合わせた多頭策略である.これは株式,暗号通貨などの長期トレンド市場に適用され,より大きな時間枠でより効果的です.

戦略原則

この戦略の取引ルールは以下の通りです.

多頭入場シグナル:超トレンド指標が多頭入場シグナルを発し,閉盘価格がLSMA移動平均より高いとき,多頭入場を行う.

多頭出場シグナル:超トレンド指標が空調のシグナルを発したときに,平仓多單.

超トレンドの方向を判断し,LSMAのエントリーポイントを判断します.

優位分析

この戦略は,トレンド追跡と移動平均を組み合わせて,大トレンドを捉えることも,均線フィルタリングの誤位現象を利用することもできます.

また,超トレンド自体は遅滞性があるため,LSMAの平滑性により,偽突破の誤導を避けるために市場の騒音を効果的にフィルターすることができます.

リスク分析

この戦略の最大のリスクは,トレンドの逆転点を正確に判断できないことである.トレンドが転じるとき,スーパートレンドとLSMAの遅滞性により,損失が拡大する可能性がある.このとき,リスクを制御するために,間に合った止損が必要である.

また,パラメータ設定も戦略のパフォーマンスに影響を与える.ATRパラメータまたは因子パラメータが正しく設定されていない場合,超トレンド判断効果は割引される.LSMA周期が短すぎると,波効果は悪く,騒音の影響を受けやすい.したがって,パラメータ最適化は不可欠である.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 機械学習アルゴリズムを使用して,パラメータを自動的に最適化して,異なる市場環境に最適化します.

  2. 損失を止めるメカニズムを増やす. 損失が,事前に設定された損失の幅に達したときに,強制的に平仓の損失を止める.

  3. ポジション管理モジュールを追加する.大きなトレンドが形成されたときに,ポジションを適切に拡大する.トレンドが終了したときに,ポジションを小さくする.

  4. 波動率指標,量能指標など,トレンドの逆転のリスクを避けるためのフィルタリング指標を追加する.

  5. ディープ・ラーニング・モデルのトレンド判断は,単純な超トレンド判断の代わりに,トレンド判断をより賢明にします.

要約する

超トレンドのLSMA多頭策は,トレンド追跡指標と平均線指標の優位性を統合し,長期間の大きな方向を捉えることができ,また,均線フィルターノイズを利用することもできます.パラメータの最適化,止損機構,リスク制御モジュールの強化により,この策の収益性とリスク制御能力をさらに向上させることができ,非常に実用的な量化策になります.

ストラテジーソースコード
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Supertrend LSMA long Strategy", overlay = true,  pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)


atrPeriod = input(14, "ATR Length")
factor = input(3, "Factor")

//Time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2031, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = time >= startDate and time <= finishDate

//LSMA
lengthx = input(title="Length LSMA", type=input.integer, defval=101)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, lengthx, offset)



[_, direction] = supertrend(factor, atrPeriod)

if(time_cond)
    if change(direction) < 0 and close > lsma
        strategy.entry("long", strategy.long)
    
    if change(direction) > 0 //and close < lsma
        strategy.close("long")
        //strategy.entry("short", strategy.short)

//strategy.close("long",when=close<lsma)
//strategy.close("short",when=change(direction) < 0 )

    
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)