
Strategi ini menilai overbought dan oversold di pasar dengan menghitung deviasi harga emas dari rata-rata pergerakan indeks 21 hari, digabungkan dengan standar deviasi, dan mengambil strategi pelacakan tren ketika deviasi mencapai standar deviasi tertentu, sambil mengatur mekanisme stop loss untuk mengendalikan risiko.
Ini adalah strategi pelacakan tren yang mendasari overbought dan oversold pasar berdasarkan pergerakan harga dan standar deviasi, dengan keuntungan sebagai berikut:
Strategi ini juga memiliki beberapa risiko:
Solusi:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini secara keseluruhan adalah strategi pelacakan tren yang masuk akal. Ini menggunakan rata-rata bergerak untuk menentukan arah tren utama, dan dengan pengolahan standar deviasi harga, dapat dengan jelas menilai kondisi overbought dan oversold di pasar, sehingga menghasilkan sinyal perdagangan. Mengatur cara stop loss yang masuk akal juga memungkinkan strategi untuk mengendalikan risiko sambil menjamin keuntungan.
/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("GC Momentum Strategy with Stoploss and Limits", overlay=true)
// Input for the length of the EMA
ema_length = input.int(21, title="EMA Length", minval=1)
// Exponential function parameters
steepness = 2
// Calculate the EMA
ema = ta.ema(close, ema_length)
// Calculate the deviation of the close price from the EMA
deviation = close - ema
// Calculate the standard deviation of the deviation
std_dev = ta.stdev(deviation, ema_length)
// Calculate the Z-score
z_score = deviation / std_dev
// Long entry condition if Z-score crosses +0.5 and is below 3 standard deviations
long_condition = ta.crossover(z_score, 0.5)
// Short entry condition if Z-score crosses -0.5 and is above -3 standard deviations
short_condition = ta.crossunder(z_score, -0.5)
// Exit long position if Z-score converges below 0.5 from top
exit_long_condition = ta.crossunder(z_score, 0.5)
// Exit short position if Z-score converges above -0.5 from below
exit_short_condition = ta.crossover(z_score, -0.5)
// Stop loss condition if Z-score crosses above 3 or below -3
stop_loss_long = ta.crossover(z_score, 3)
stop_loss_short = ta.crossunder(z_score, -3)
// Enter and exit positions based on conditions
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
if (exit_long_condition)
strategy.close("Long")
if (exit_short_condition)
strategy.close("Short")
if (stop_loss_long)
strategy.close("Long")
if (stop_loss_short)
strategy.close("Short")
// Plot the Z-score on the chart
plot(z_score, title="Z-score", color=color.blue, linewidth=2)
// Optional: Plot zero lines for reference
hline(0.5, "Upper Threshold", color=color.red)
hline(-0.5, "Lower Threshold", color=color.green)