Strategi pembelian waktu stop-loss berdasarkan waktu dan ATR


Tanggal Pembuatan: 2024-02-28 17:36:50 Akhirnya memodifikasi: 2024-02-28 17:36:50
menyalin: 0 Jumlah klik: 630
1
fokus pada
1617
Pengikut

Strategi pembelian waktu stop-loss berdasarkan waktu dan ATR

Ringkasan

Gagasan inti dari strategi ini adalah untuk mengatur waktu dan titik berhenti untuk membeli, dengan kombinasi waktu dan indikator ATR. Strategi ini mengirim sinyal beli pada waktu tertentu pada titik waktu yang ditentukan, dengan harga penutupan saat itu sebagai harga beli, dan kemudian dengan harga beli ditambah nilai ATR sebagai titik berhenti. Dengan demikian, Anda dapat menyaring beberapa waktu pembelian yang tidak sesuai, sambil menggunakan ATR untuk mengendalikan risiko.

Prinsip Strategi

Strategi ini terdiri dari beberapa bagian utama:

  1. Input parameter: termasuk waktu pembelian timeTrade dan parameter ATR atLength.

  2. Hitung indikator ATR: Hitung nilai indikator ATR berdasarkan parameteratrLengthatrValue。

  3. Definisi kondisi beli: menghasilkan sinyal beli ketika kombinasi jam dan menit sama dengan timeTrade.

  4. Mengeluarkan instruksi pembelian: melakukan pembelian lebih banyak jika memenuhi persyaratan pembelian, mencatat harga pembelian buyprice.

  5. Set Stop Loss: Stop Loss ditambah ATR pada harga beli. Stop Loss akan keluar ketika harga melewati Stop Loss.

  6. Gambar: Garis horizontal stop loss.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah penggunaan waktu dan indikator ATR untuk mengkonfirmasi dua kali waktu pembelian dan titik berhenti. Ini menghindari pembelian pasar yang diikuti secara membabi buta dan mengendalikan risiko secara efektif. Kedua, stop loss yang diatur dengan menggunakan ATR adalah perubahan dinamis, yang memungkinkan untuk mengatur batas stop loss yang masuk akal sesuai dengan tingkat fluktuasi pasar.

Analisis risiko

Strategi ini memiliki beberapa risiko utama:

  1. Waktu pembelian yang tidak tepat, mungkin kehilangan waktu pembelian yang lebih baik atau membeli di pasar yang tidak diinginkan.

  2. ATR parameter yang tidak tepat, stop loss terlalu besar atau terlalu kecil akan mempengaruhi efek strategi.

  3. Tidak dapat secara efektif melacak tren garis panjang, lebih cocok untuk operasi garis pendek.

  4. Tidak mempertimbangkan faktor-faktor analisis fundamental.

Arah optimasi

Strategi ini dapat dioptimalkan lebih lanjut dalam beberapa hal:

  1. Model multi-faktor yang digunakan untuk menentukan waktu pembelian yang lebih ilmiah.

  2. Pengaturan parameter ATR dioptimalkan dengan model fluktuasi.

  3. Menambahkan mekanisme pelacakan tren, yang dapat beradaptasi dengan periode kepemilikan yang lebih lama.

  4. Ini adalah analisa fundamental untuk menentukan apakah pembelian itu masuk akal.

Meringkaskan

Strategi ini secara keseluruhan adalah strategi perdagangan intraday frekuensi tinggi yang lebih sederhana dan intuitif. Ide inti adalah menggunakan waktu dan pengesahan ganda indikator ATR untuk mengunci waktu dan titik berhenti. Keuntungan adalah risiko dapat dikontrol, relatif mudah untuk dicapai.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Time-based Strategy with ATR Take Profit", overlay=true)

// Initialize take profit levels
var float takeProfitLevel = na
var float takeProfitLevelForSell = na
var float buyprice = na
var float sellprice = na



// Input for the time when the trade should be executed
tradeTime = input(0700, "Trade Execution Time (HHMM)", "Specify the time in HHMM format", group="Time Settings")

// Calculate ATR for the last 5 minutes
atrLength = input(14, "ATR Length", "Specify ATR length", group="ATR Settings")
atrValue = request.security(syminfo.tickerid, "5", ta.atr(atrLength))

// Define conditions for buy and sell
buyCondition = hour * 100 + minute == tradeTime // and strategy.position_size == 0
sellCondition = hour * 100 + minute == tradeTime // and strategy.position_size > 0
// Execute Buy and Sell orders


if (buyCondition)
    strategy.entry("Buy", strategy.long)
    buyprice := close
    takeProfitLevel := buyprice + atrValue
strategy.exit("Take Profit BUY", from_entry="Buy", limit =takeProfitLevel) 
    

  

// if (sellCondition)
//     strategy.entry("Sell", strategy.short)
//     sellprice := close
//     takeProfitLevelForSell := sellprice -atrValue
// strategy.exit("Take Profit Sell", from_entry="Sell", limit=takeProfitLevelForSell)


// Plot horizontal lines for take profit levels


plot(takeProfitLevel, color=color.green, title="Take Profit Level (Buy)")
plot(takeProfitLevelForSell, color=color.red, title="Take Profit Level (Sell)")