
Strategi ini menggunakan metode garis rata-rata multi-frame timeframe, menggunakan garis rata-rata jangka panjang untuk menentukan arah tren besar, garis rata-rata jangka pendek untuk menentukan arah tren jangka pendek, masuk ke dalam lebih / kurang ketika garis panjang dan garis pendek mengkonfirmasi tren yang sama; Ketika garis pendek kembali ke garis panjang, menilai pembentukan kesempatan masuk untuk penyesuaian jangka pendek, saat ini melakukan operasi terbalik. Strategi ini terutama berlaku untuk saham dengan tren garis panjang menengah.
Strategi ini menggunakan 200 hari rata-rata bergerak sederhana untuk menentukan arah tren jangka panjang, menggunakan 10 hari rata-rata bergerak sederhana untuk menentukan arah tren jangka pendek. Ketika harga saham di atas rata-rata 200 hari dan di bawah rata-rata 10 hari, ini menunjukkan bahwa saat ini berada dalam fase kenaikan garis panjang dan pemulihan garis pendek, maka lakukan lebih banyak; ketika harga saham di bawah rata-rata 200 hari dan di atas rata-rata 10 hari, ini menunjukkan bahwa saat ini berada dalam fase penurunan garis panjang dan rebound garis pendek, maka lakukan lebih banyak.
Secara khusus, ketika memenuhi kondisi berikut, masuk lebih banyak: harga penutupan > 200 hari rata-rata dan harga penutupan < 10 hari rata-rata; ketika memenuhi kondisi berikut, masuk kosong: harga penutupan < 200 hari rata-rata dan harga penutupan > 10 hari rata-rata.
Setelah masuk, atur mekanisme stop loss, jika lebih dari 10% mundur dari harga beli, stop loss keluar. Sementara itu, jika Anda mengatur opsi i_lowerClose, Anda akan menunggu harga penutupan yang lebih rendah untuk masuk lagi, yang dapat menghindari stop loss yang terlalu sensitif.
Strategi ini dikombinasikan dengan rata-rata multi-frame time frame untuk menangkap arah tren garis tengah dan panjang dengan probabilitas yang lebih besar. Strategi utsch memberikan waktu masuk yang lebih baik ketika rata-rata jangka pendek berbalik ke rata-rata jangka panjang. Dibandingkan dengan sistem rata-rata tunggal, kemungkinan yang lebih kecil untuk ditargetkan karena penyesuaian jangka pendek.
Strategi ini memiliki risiko yang dapat dikendalikan. Dengan pengaturan stop loss rasio 10% untuk mengendalikan kerugian, dan dengan pengaturan kondisi penyaringan waktu, trading dapat dihindari pada periode waktu tertentu.
Strategi ini masih memiliki risiko untuk ditargetkan. Jika penyesuaian garis pendek terlalu lama atau penyesuaian terlalu besar, dapat memicu stop loss dan ditargetkan. Ini berarti risiko kerugian.
Strategi ini kurang cocok untuk varietas perdagangan. Untuk saham yang sangat berfluktuasi dan memiliki waktu penyesuaian yang panjang, strategi ini mudah terhenti dan tidak efektif.
Strategi ini juga menghadapi kerugian yang lebih besar ketika ada penyesuaian besar pada pasar secara keseluruhan. Strategi ini mungkin sulit untuk menghasilkan keuntungan, misalnya, selama krisis keuangan.
Lebih banyak sistem garis rata dapat diperkenalkan, membentuk mekanisme pemfilteran ganda. Misalnya, menambahkan garis rata-rata 50 hari, masuk hanya dipertimbangkan jika harga penutupan berada di antara garis rata-rata 50 hari dan garis rata-rata 200 hari. Ini dapat lebih memilih varietas yang lebih baik dalam tren.
Anda dapat mengatur stop loss floating. Secara khusus, setelah masuk, Anda dapat mengatur stop loss variabel sesuai dengan rentang fluktuasi saham, bukan stop loss 10% yang tetap. Ini dapat mengurangi kemungkinan stop loss yang tidak perlu dipicu.
Strategi ini dapat digabungkan dengan indikator lain untuk menilai kondisi pasar. Misalnya, MACD, strategi ini dapat ditangguhkan untuk menghindari kerugian ketika MACD menunjukkan bahwa pasar telah keluar. Ini dapat mengontrol mulai dan menutup strategi berdasarkan penilaian pasar besar.
Strategi ini secara keseluruhan adalah strategi rata-rata jangka waktu yang khas. Ini menggabungkan rata-rata jangka pendek dan panjang, dan kemungkinan besar menangkap tren garis panjang dan menengah, sementara mengambil kesempatan untuk masuk ke garis pendek. Risiko strategi juga dapat dikendalikan.
/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
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/
// © irfanp056
// @version=5
strategy("Simple Pullback Strategy",
overlay=true) // Interactive Brokers rate
// Get user input
i_ma1 = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2 = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")
// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)
// Check filter(s)
f_dateFilter = true
// Check buy/sell conditions
var float buyPrice = 0
buyCondition = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition = strategy.position_size > 0 and stopDistance > i_stopPercent
// Enter positions
if buyCondition
strategy.entry(id="Long", direction=strategy.long)
if buyCondition[1]
buyPrice := open
// Exit positions
if sellCondition or stopCondition
strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
buyPrice := na
// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)