Strategi pembelian masa henti rugi berdasarkan masa dan ATR


Tarikh penciptaan: 2024-02-28 17:36:50 Akhirnya diubah suai: 2024-02-28 17:36:50
Salin: 0 Bilangan klik: 630
1
fokus pada
1617
Pengikut

Strategi pembelian masa henti rugi berdasarkan masa dan ATR

Gambaran keseluruhan

Idea teras strategi ini adalah untuk menetapkan masa dan titik berhenti untuk membeli dengan menggabungkan masa dan penunjuk ATR. Strategi ini menghantar isyarat membeli pada masa yang ditetapkan pada masa yang ditetapkan, dengan harga penutupan pada masa itu sebagai harga membeli, dan kemudian dengan harga membeli ditambah nilai ATR sebagai titik berhenti. Dengan cara ini, anda boleh menyaring beberapa masa membeli yang tidak sesuai, dan menggunakan ATR untuk mengawal risiko.

Prinsip Strategi

Strategi ini terdiri daripada beberapa bahagian:

  1. Parameter input: termasuk pembelian masa timeTrade dan parameter ATRatrLength. timeTrade menentukan masa pembelian, danatrLength menentukan parameter kitaran ATR.

  2. Mengira Indeks ATR: Mengira nilai Indeks ATR mengikut parameteratrLengthatrValue。

  3. Tentukan syarat beli: menghasilkan isyarat beli apabila kombinasi jam dan minit sama dengan timeTrade.

  4. Menerbitkan arahan pembelian: melakukan pembelian lebih banyak apabila memenuhi syarat pembelian, mencatat harga pembelian buyprice.

  5. Tetapkan titik henti: titik henti ditambah nilai ATR pada harga beli. Apabila harga menembusi titik henti, henti keluar.

  6. Lukis: Lukis garisan pelarasan.

Analisis kelebihan

Kelebihan terbesar strategi ini adalah menggunakan masa dan ATR untuk mengkonfirmasi kedua-dua masa dan titik berhenti. Ini mengelakkan pembelian pasaran secara buta dan mengawal risiko dengan berkesan. Kedua, titik berhenti yang ditetapkan menggunakan ATR adalah dinamik dan dapat menetapkan ruang berhenti yang munasabah berdasarkan tahap turun naik pasaran.

Analisis risiko

Risiko utama dalam strategi ini ialah:

  1. Apabila anda membeli pada masa yang tidak tepat, anda mungkin terlepas peluang yang lebih baik atau membeli di pasaran yang tidak sesuai.

  2. Tetapan parameter ATR yang tidak betul, titik tolak yang terlalu besar atau terlalu kecil akan menjejaskan kesan strategi.

  3. Tidak dapat mengesan trend garis panjang dengan berkesan, lebih sesuai untuk operasi garis pendek.

  4. Tidak mengambil kira faktor analisis asas.

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan cara berikut:

  1. Model berbilang faktor untuk menentukan masa pembelian yang lebih saintifik.

  2. Tetapan parameter ATR yang dioptimumkan dengan model kadar lonjakan.

  3. Menambah mekanisme trend-tracking untuk tempoh pegangan yang lebih lama.

  4. Ini adalah analisis asas untuk menilai kelayakan masa pembelian.

ringkaskan

Strategi ini secara keseluruhannya adalah strategi perdagangan intraday frekuensi tinggi yang lebih mudah dan intuitif. Gagasan utamanya adalah menggunakan masa dan pengesahan dua kali indikator ATR untuk mengunci masa pembelian dan titik berhenti. Kelebihannya adalah risiko boleh dikawal dan agak mudah dilaksanakan.

Kod 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)")