この戦略は”Jancok Strategycs v3”と呼ばれ,移動平均 ((MA),移動平均の収束散度 ((MACD),相対的に強い指標 ((RSI) と平均実際の範囲 ((ATR) に基づく多指標のトレンド追跡戦略である.この戦略の主な構想は,複数の指標の組み合わせを使用して市場トレンドを判断し,トレンドの方向で取引することです.この戦略は,ダイナミックなストップとストップの方法,およびリスク管理を制御し,収益を最適化するためにATRに基づいたリスク管理も採用しています.
この戦略は,次の4つの指標を使って市場動向を判断します.
この戦略の取引論理は以下の通りです.
“Jancok Strategycs v3”は,複数の指標の組み合わせに基づいたトレンド追跡戦略で,移動平均,MACD,RSI,ATRなどの指標によって市場のトレンドを判断し,動的ストップとトラッキングストップなどのリスク管理手段を使用して,リスクを制御し,収益を最適化します.この戦略の優点は,トレンド判断の正確性が高く,リスク管理の柔軟性があり,適応性が強いということです.しかしながら,偽信号,パラメータ設定の感受性,黒天事件などの一定のリスクもあります.将来,より多くの指標,パラメータの最適化を選択し,ポジション管理に加わり,最大リトロール制限などの方法を設定することで,戦略の性能と安定性をさらに向上させることができます.
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © financialAccou42381
//@version=5
strategy("Jancok Strategycs v3", overlay=true, initial_capital=100, currency="USD")
// Inputs
short_ma_length = input.int(9, title="Short MA Length", minval=1)
long_ma_length = input.int(21, title="Long MA Length", minval=1)
atr_multiplier_for_sl = input.float(2, title="ATR Multiplier for Stop Loss", minval=1.0)
atr_multiplier_for_tp = input.float(4, title="ATR Multiplier for Take Profit", minval=1.0)
volume_ma_length = input.int(20, title="Volume MA Length", minval=1)
volatility_threshold = input.float(1.5, title="Volatility Threshold", minval=0.1, step=0.1)
use_trailing_stop = input.bool(false, title="Use Trailing Stop")
trailing_stop_atr_multiplier = input.float(2.5, title="Trailing Stop ATR Multiplier", minval=1.0)
// Calculating indicators
short_ma = ta.sma(close, short_ma_length)
long_ma = ta.sma(close, long_ma_length)
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
atr = ta.atr(14)
volume_ma = ta.sma(volume, volume_ma_length)
volatility = atr / close
// Plotting indicators
plot(short_ma, color=color.red)
plot(long_ma, color=color.blue)
// Defining entry conditions with added indicators and filters
long_condition = ta.crossover(short_ma, long_ma) and (macdLine > signalLine) and (volume > volume_ma) and (volatility < volatility_threshold)
short_condition = ta.crossunder(short_ma, long_ma) and (macdLine < signalLine) and (volume > volume_ma) and (volatility < volatility_threshold)
// Entering trades with dynamic stop loss and take profit based on ATR
if (long_condition)
strategy.entry("Long", strategy.long)
if use_trailing_stop
strategy.exit("Exit Long", "Long", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5)
else
strategy.exit("Exit Long", "Long", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)
if (short_condition)
strategy.entry("Short", strategy.short)
if use_trailing_stop
strategy.exit("Exit Short", "Short", trail_points=atr * trailing_stop_atr_multiplier, trail_offset=atr * 0.5)
else
strategy.exit("Exit Short", "Short", loss=atr * atr_multiplier_for_sl, profit=atr * atr_multiplier_for_tp)