スーパートレンドLSMAロングストラテジー (Super Trend LSMA Long Strategy) は,スーパートレンド指標とLSMA移動平均を組み合わせたロングストラテジーである.株式や仮想通貨などの長期トレンド市場に適しており,より長い時間枠でよりうまく機能する.
この戦略の取引規則は以下のとおりです
ロング エントリー シグナル: スーパー トレンド インジケーターがロング シグナルを出し,閉じる価格が LSMA 移動平均値以上になるとロングする.
ロングアウトシグナル: スーパートレンドインジケーターがショートシグナルを出したらロングシグナルを閉じる.
つまり,スーパートレンドは全体的なトレンド方向を決定するために使用され,LSMAは特定のエントリーポイントを決定するために使用されます.
この戦略は,トレンドフォローと移動平均を組み合わせます.大きなトレンドを捉え,移動平均を使用して偽信号をフィルタリングすることで,罠にはまりないようにすることができます.単一のトレンドインジケーターまたは移動平均を使用すると比較して,よりよいリスク制御があります.
さらに,スーパートレンド自体も一定の遅れがあります.LSMAのスムージング機能と組み合わせると,市場のノイズを効果的にフィルタリングし,偽のブレイクによって誤導されないことができます.
この戦略の最大のリスクは,トレンド逆転点を正確に決定できないことである.スーパートレンドとLSMAの遅れにより,トレンドが変化すると損失が拡大する可能性がある.リスクを制御するために,タイムリーストップロスを使用する必要があります.
また,パラメータ設定は戦略パフォーマンスにも影響する.ATRパラメータまたはファクターパラメータが正しく設定されていない場合,スーパートレンドの有効性は損なわれる.LSMA期間が短すぎると,フィルタリング効果が低下し,ノイズに脆弱になる.したがって,パラメータ最適化は重要です.
この戦略は,次の側面で最適化できます.
機械学習アルゴリズムを使って パラメータを自動的に最適化して 異なる市場環境に最適化します
ストップ・ロスのメカニズムを追加します. 損失が事前に設定されたストップ・ロスのレベルに達すると強制的な清算です.
ポジション管理モジュールを追加する.主要なトレンドが形成されたときにポジションを適切に増加し,トレンドが終了したときのポジションを減らす.
トレンド逆転リスクを避けるため,波動性指標,ボリューム指標など,より多くのフィルタリング指標を追加します.
傾向を判断するために 単純なスーパートレンドではなく ディープラーニングモデルを使用し 傾向決定を よりスマートにします
スーパートレンド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)