これは移動平均の交差に基づくトレンド追跡戦略で,ストップ・ロスト・マネジメントとレバレッジ効果を組み合わせて,複数の市場のトレンドを識別し,利益を最大化することを目的としています.
この戦略は,高速移動平均線と遅い移動平均線の交差を取引信号として使用する.高速移動平均線の上をゆっくり移動平均線を横切るときに,多頭ポジションをとる.高速移動平均線の下をゆっくり移動平均線を横切るときに,空頭ポジションをとる.
非主要トレンドのノイズ取引をフィルタリングするために,戦略は200日移動平均をトレンドフィルターとして導入します.価格が200日移動平均以上または以下である場合にのみ取引シグナルを発信します.
戦略は区間取引のストップ・ロスの策略を採用する.取引後に固定比例のストップ・ロスとストップ・ロスを設定する.例えば,ストップ・ロスは1%,ストップ・プールは1%,価格がストップ・ロスまたはストップ・プールの価格に触れたときに平仓する.
取引収益性を高めるために,戦略はレバレッジ効果を採用する.異なる市場の特徴に応じて,適切なレバレッジ比率を選択することができる.例えば,10倍レバレッジ.
戦略の優点の一つは,暗号通貨,株式,および期貨市場を含む複数の市場のトレンドを識別し,戦略の適用範囲を拡大することが可能である.
スロー・メジャー・クロスとトレンド・フィルタを適用することで,トレンドの方向をよりよく識別し,トレンドの動きの中でよりよい勝率を得ることができる.
区間ストップストップ戦略は,単一の損失を許容可能な範囲で制御し,戦略の安定した動作に有利である.
杆効果は,取引の利潤を大きくし,戦略の利点を最大限に活用します.
ビジュアルなインタフェースのデザインで,異なる背景色のロゴを使用し,多頭と空頭市場,ユーザーは直観的に現在の市場状況を判断することができます.
戦略はトレンド取引の考えに基づいている. 波動的な市場での取引効果は割引されます. ポジションの大きさを適切に制御する必要があります.
固定比率のストップ・ストラップは,ブレイクされるリスクがあるため,ストップ・ストラップの幅は,特定の市場に応じて調整されるべきである.
取引の規模を大きくし,取引のリスクを大きくする.負債の範囲を超えて負債の割合をコントロールする必要があります.
移動平均は遅延性があり,取引信号の遅延が問題になる可能性があります.
異なるパラメータの組み合わせの下での戦略のパフォーマンスを研究し,パラメータの組み合わせが優れている快慢平均線長を選択できます.
他の指標やモデルをフィルタリング信号として組み合わせて,戦略の正確性を向上させることができる.例えばATRのストップ,RSI指標などの導入.
DC指数などのトレンド識別指標を研究して,戦略のトレンド判断能力をさらに向上させることができる.
戦略信号の最適化には,機械学習モデルを組み合わせて,より効果的な取引タイミングを特定することができます.
ストップ・ストップの幅を動的に調整し,波動率や市場の状況に応じてより合理的なストップ・ストップを設定することを考えることができます.
この戦略は,全体として,より科学的システム的なトレンド追跡方法を採用し,同時に,損失停止とレバレッジを補足してリスクを制御し,利益を拡大する.この戦略は,複数の市場に広く適用され,安定した余剰利益を得ることを期待する.しかし,パラメータの最適化,風力制御,戦略更新などの側面に注意する必要がある.
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
////////////////////////////////////////////////////////////////////////////////
// Bozz Strategy
// Developed for Godstime
// Version 1.1
// 11/28/2021
////////////////////////////////////////////////////////////////////////////////
//@version=4
// strategy("Bozz Strategy", "", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, margin_long=0, margin_short=0)
// ----------------------------- Inputs ------------------------------------- //
source_ma_type = input("EMA", "Source MA Type", options=["SMA", "EMA"])
source_ma_length = input(50, "Source MA Length")
fast_ma_length = input(20, "Fast MA Length")
slow_ma_length = input(50, "Slow MA Length")
use_trend_filter = input(true, "Trend Filter")
trend_filter_ma_type = input("EMA", "Trend Filter MA Type", options=["SMA", "EMA"])
trend_filter_ma_length = input(200, "Trend Filter MA Period")
show_mas = input(true, "Show MAs")
swing_trading_mode = input(false, "Swing Trading")
// -------------------------- Calculations ---------------------------------- //
fast_ma = ema(close, fast_ma_length)
slow_ma = ema(close, slow_ma_length)
source_ma = source_ma_type == "EMA"? ema(close, source_ma_length):
sma(close, source_ma_length)
trend_filter_ma = trend_filter_ma_type == "EMA"? ema(close, trend_filter_ma_length):
sma(close, trend_filter_ma_length)
// --------------------------- Conditions ----------------------------------- //
uptrend = not use_trend_filter or close > trend_filter_ma
buy_cond = crossover(fast_ma, slow_ma) and uptrend
downtrend = not use_trend_filter or close < trend_filter_ma
sell_cond = crossunder(fast_ma, slow_ma) and downtrend
// ---------------------------- Plotting ------------------------------------ //
bgcolor(use_trend_filter and downtrend? color.red: use_trend_filter? color.green: na)
plot(show_mas? fast_ma: na, "Fast MA", color.green)
plot(show_mas? slow_ma: na, "Slow MA", color.red)
plot(show_mas? source_ma: na, "Source MA", color.purple)
plot(show_mas? trend_filter_ma: na, "Trend Filter MA", color.blue)
// ---------------------------- Trading ------------------------------------ //
// Inputs
sl_perc = input(1.0, "Stop Loss (in %)", group="Backtest Control")/100
tp_perc = input(1.0, "Take Profit (in %)", group="Backtest Control")/100
leverage = input(10, "Leverage", maxval=100, group="Backtest Control")
bt_start_time = input(timestamp("2021 01 01"), "Backtest Start Time", input.time, group="Backtest Control")
bt_end_time = input(timestamp("2021 12 31"), "Backtest End Time", input.time, group="Backtest Control")
// Trading Window
in_trading_window = true
trade_qty = (strategy.equity * leverage) / close
// Long Side
strategy.entry("Long Entry", strategy.long, when=buy_cond and in_trading_window)
long_tp = strategy.position_avg_price * (1 + tp_perc)
long_sl = strategy.position_avg_price * (1 - sl_perc)
if not swing_trading_mode
strategy.exit("Long Exit", "Long Entry", limit=long_tp, stop=long_sl)
// Short Side
strategy.entry("Short Entry", strategy.short, when=sell_cond and in_trading_window)
short_tp = strategy.position_avg_price * (1 - tp_perc)
short_sl = strategy.position_avg_price * (1 + sl_perc)
if not swing_trading_mode
strategy.exit("Short Exit", "Short Entry", limit=short_tp, stop=short_sl)
// End of trading window close
strategy.close_all(when=not in_trading_window)