Strategi berasaskan masa dengan ATR mengambil keuntungan

Penulis:ChaoZhang, Tarikh: 2024-01-29 16:13:57
Tag:

img

Ringkasan

Idea utama strategi ini adalah untuk menggabungkan masa dan penunjuk ATR untuk mencapai stop loss dan mengambil keuntungan automatik. Strategi ini akan membuka kedudukan pada titik masa tetap untuk membeli atau menjual, dan menggunakan penunjuk ATR untuk mengira harga stop loss dan mengambil keuntungan yang munasabah. Ini membolehkan perdagangan automatik yang cekap, mengurangkan kekerapan operasi manual, dan berkesan mengawal risiko melalui penunjuk ATR.

Prinsip Strategi

Strategi ini menggunakan pembolehubah jam dan minit digabungkan dengan jika keadaan untuk mencetuskan kedudukan pembukaan pada titik masa yang ditentukan dalam parameter strategi tradeTime. Sebagai contoh, menetapkannya pada 0700 bermakna ia akan mencetuskan kedudukan pembukaan pada jam 7 pagi waktu Beijing.

Selepas membuka kedudukan, strategi akan menggunakan fungsi ta.atr() untuk mengira nilai penunjuk ATR selama 5 minit terakhir, dan menggunakannya sebagai asas untuk berhenti kerugian dan mengambil keuntungan.

Ini mencapai pembukaan automatik berdasarkan titik masa, dan hentikan kerugian dan ambil keuntungan berdasarkan penunjuk ATR. Dengan itu mengurangkan kekerapan operasi manual, sambil mengawal risiko dengan berkesan.

Analisis Kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Tingkat automatik yang tinggi. Ia boleh membuka kedudukan tanpa pengawasan pada masa yang ditentukan, sangat mengurangkan kekerapan operasi manual.

  2. Stop loss dan mengambil keuntungan berdasarkan penunjuk ATR dapat mengawal kerugian tunggal dengan berkesan.

  3. Skalabilitas yang kuat. Mudah untuk menggabungkan lebih banyak penunjuk atau algoritma pembelajaran mesin untuk membantu keputusan. Sebagai contoh, menggabungkan purata bergerak untuk menentukan trend.

  4. Mudah untuk melaksanakan arbitraj antara komoditi. Hanya menetapkan masa perdagangan yang sama untuk produk yang berbeza untuk dengan mudah melaksanakan strategi perdagangan tersebar.

  5. Mudah diintegrasikan ke dalam sistem perdagangan automatik. Digabungkan dengan pengurusan tugas yang dijadualkan, program strategi boleh berjalan 24 jam tanpa pengawasan untuk mencapai automasi penuh.

Analisis Risiko

Strategi ini juga mempunyai beberapa risiko:

  1. Risiko peristiwa pasaran: Kejadian Black Swan yang besar boleh menyebabkan turun naik harga yang melampau, mencetuskan berhenti dan kerugian yang lebih besar.

  2. Risiko kecairan: Sesetengah produk mempunyai kecairan yang lemah dan tidak dapat ditutup sepenuhnya pada titik mengambil keuntungan.

  3. Risiko pengoptimuman parameter ATR. Parameter ATR memerlukan ujian dan pengoptimuman berulang, tetapan yang tidak betul akan mempengaruhi prestasi strategi.

  4. Risiko pengoptimuman titik masa. Waktu bukaan tetap mungkin kehilangan peluang pasaran, memerlukan penyesuaian berdasarkan lebih banyak penunjuk.

Pengoptimuman Strategi

Strategi ini boleh dioptimumkan lagi dalam dimensi berikut:

  1. Menggabungkan lebih banyak penunjuk untuk menilai keadaan pasaran, mengelakkan pembukaan dalam persekitaran yang tidak menguntungkan.

  2. Gunakan algoritma pembelajaran mesin untuk meramalkan titik masa optimum. Kumpulkan lebih banyak data sejarah, gunakan model LSTM dll.

  3. Kembangkan ke dalam perantara komoditi menggunakan platform seperti Heartbeat. Cari peluang berdasarkan korelasi industri.

  4. Mengoptimumkan parameter ATR dan tetapan Stop Loss / Take Profit melalui lebih banyak backtesting.

  5. Jalankan strategi pada pelayan, mengintegrasikan tugas berjam-jam, mencapai perdagangan 24x7 sepenuhnya automatik.

Kesimpulan

Strategi ini mengintegrasikan masa dan ATR untuk mencapai perdagangan stop loss automatik yang cekap dan mengambil keuntungan. Melalui pengoptimuman parameter, alfa yang stabil dapat diperoleh. Ia juga mempunyai kemampuan skala dan integrasi yang besar sebagai strategi kuantiti yang disyorkan.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-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 Sell", 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)")


Lebih lanjut