Membeli/Menjual pada Strategi Penutupan Lilin

Penulis:ChaoZhang, Tanggal: 2024-01-08 11:11:18
Tag:

img

Gambaran umum

Strategi ini memicu sinyal beli/jual dengan membandingkan harga penutupan lilin saat ini dan lilin sebelumnya.

Secara khusus, jika lilin saat ini ditutup di atas harga tertinggi dari lilin sebelumnya, sinyal beli dipicu.

Logika Strategi

  1. Dapatkan harga tertinggi dan terendah historis dari kerangka waktu yang ditentukan (misalnya harian, per jam)
  2. Menghitung stop loss dan mengambil keuntungan jarak
    • Jarak stop loss = Candle sebelumnya tertinggi - Candle sebelumnya terendah
    • Jarak mengambil keuntungan = Jarak stop loss * 3 (1:3 rasio risiko-manfaat)
  3. Tentukan hubungan antara penutupan saat ini dan sebelumnya tinggi/rendah
    • Jika penutupan saat ini > lilin sebelumnya tertinggi, pemicu sinyal beli
    • Jika penutupan saat ini < lilin sebelumnya terendah, pemicu sinyal jual
  4. Setel stop loss dan take profit setelah masuk
    • Setelah membeli, mengatur stop loss pada candle sebelumnya terendah - jarak stop loss, mengambil keuntungan pada candle sebelumnya tertinggi + mengambil keuntungan jarak
    • Setelah menjual, mengatur stop loss pada candles sebelumnya tertinggi + stop loss jarak, mengambil keuntungan pada candles sebelumnya terendah - mengambil keuntungan jarak

Di atas adalah logika dasar perdagangan strategi ini.

Analisis Keuntungan

  • Gagasan strategi yang sederhana dan jelas, mudah dipahami dan diterapkan
  • Gunakan informasi candlestick untuk menentukan arah tren
  • Memiliki mekanisme stop loss dan take profit untuk mengendalikan risiko

Analisis Risiko

  • Penghakiman yang didasarkan hanya pada satu kerangka waktu dapat menghasilkan lebih banyak sinyal palsu
  • Tidak mempertimbangkan faktor lain seperti perubahan volume, volatilitas dll.
  • Pengaturan stop loss dan take profit mungkin tidak tepat, terlalu luas atau terlalu ketat keduanya berisiko

Arahan Optimasi

  • Gabungkan lebih banyak faktor untuk mengkonfirmasi sinyal masuk, seperti volume, rata-rata bergerak dll.
  • Mengoptimalkan stop loss dan mengambil keuntungan algoritma untuk memiliki lebih wajar stop loss dan cukup mengambil keuntungan
  • Pengaturan parameter mungkin diperlukan untuk produk yang berbeda
  • Kerangka waktu yang lebih lama dapat diuji

Ringkasan

Ide strategi sederhana dan jelas secara keseluruhan, menggunakan harga penutupan lilin untuk menentukan arah tren dan juga memiliki stop loss / take profit untuk mengendalikan risiko, ini dapat berfungsi sebagai strategi dasar untuk saham dan perdagangan crypto.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)

var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na

// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"

// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)

if bar_index > 0
    prevLowest := pastLow[1]
    prevHighest := pastHigh[1]

currentClose = close

if not na(prevLowest) and not na(prevHighest)
    slDistance := prevHighest - prevLowest
    tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio

// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)

// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)

plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")







Lebih banyak