
Strategi ini menggunakan indikator pergerakan harga untuk menentukan arah perdagangan. Secara khusus, ia mengira garis purata dan harga purata secara berasingan, menghasilkan isyarat beli apabila harga melintasi garis purata dan harga purata. Untuk menyaring isyarat palsu, ia memerlukan tidak ada isyarat serupa sebelumnya.
Strategi ini berdasarkan kepada indikator pergerakan harga untuk menilai arah trend. Pertama, mengira garis purata dan purata harga:
swmaClose = swma(close)
vwapClose = vwap(close)
Di antaranya,swmaIni adalah purata sukan.vwapHarga purata bertimbangan untuk jumlah yang diperdagangkan. Kedua-duanya boleh mencerminkan purata harga.
Kemudian perbandingan harga dengan nilai rata-rata untuk menentukan sama ada ia berada di atas garis rata-rata dan nilai rata-rata, untuk menentukan sama ada ia adalah isyarat bullish:
swmaLong = close > swmaClose
vwapLong = close > vwapClose
Untuk menyaring isyarat palsu, minta kedua-dua penunjuk ini tidak memberi isyarat sebelum ini:
triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
Ini adalah satu-satunya cara untuk mengesan bahawa anda sedang berada di dalam keadaan yang tidak sihat.
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]
Akhirnya, apabila isyarat naik disimpan dan harga naik semula ke garis rata, isyarat bukaan dihasilkan:
startLong = saveLong and swmaLong
Ini boleh menyaring beberapa isyarat palsu dan menjadikan isyarat lebih dipercayai.
Strategi ini juga mengandungi seting stop loss. Jarak stop loss boleh dikonfigurasi, dan seting stop loss adalah beberapa kali ganda.
Strategi ini mempunyai kelebihan berikut:
Strategi ini mempunyai beberapa risiko:
Kaedah pencegahan:
Strategi ini juga boleh dioptimumkan dengan:
Pengoptimuman ini dapat meningkatkan fleksibiliti, kestabilan dan tahap keuntungan strategi.
Strategi pengesanan pergerakan harga ini secara keseluruhan adalah strategi pengesanan trend yang mudah, langsung, dan logik. Strategi ini menggunakan garis purata harga dan harga purata untuk menentukan arah pergerakan harga, dan merancang mekanisme pengesahan pelbagai langkah untuk meningkatkan kualiti isyarat. Strategi ini juga mengandungi tetapan hentian hentian yang munasabah. Dari segi jumlah kod, logik strategi sangat ringkas, hanya memerlukan lebih dari 20 baris skrip pin.
/*backtest
start: 2023-12-03 00:00:00
end: 2024-01-02 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title = "Simple Price Momentum", shorttitle = "SPM", overlay = true, initial_capital = 20000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.025)
// How To Create A Simple Trading Strategy With TradingView
// https://docs.google.com/document/d/1fXxCtPuGgTXb-RuBJNbwlfgkeiLTK5060LfTrzRlr5k/view
swmaClose = swma(close)
vwapClose = vwap(close)
swmaLong = close > swmaClose
vwapLong = close > vwapClose
triggerLong = vwapLong and not vwapLong[1] and not swmaLong and not swmaLong[1]
saveLong = false, saveLong := triggerLong ? true : not vwapLong ? false : saveLong[1]
startLong = saveLong and swmaLong
startLong := input(false, "Consecutive Orders") ? startLong : startLong and not startLong[1]
stopLoss = input(250, "Stop Loss", step = 50)
takeProfit = input(10, "Reward/Risk") * stopLoss
strategy.entry("Open Long", strategy.long, when = startLong)
strategy.exit("Exit Long", "Open Long", profit = stopLoss, loss = takeProfit)
// bgcolor(swmaLong ? color.blue : na)
// bgcolor(vwapLong ? color.orange : na)
// bgcolor(triggerLong ? color.purple : na)
// bgcolor(saveLong ? color.yellow : na)
bgcolor(startLong[1] ? color.green : na)