Strategi Mengikuti Tren Saat Ini


Tanggal Pembuatan: 2023-09-21 15:00:08 Akhirnya memodifikasi: 2023-09-21 15:00:08
menyalin: 0 Jumlah klik: 615
1
fokus pada
1617
Pengikut

Ringkasan

Strategi PresentTrend adalah strategi mengikuti tren yang unik. Strategi ini menggabungkan tren pasar jangka pendek dan jangka panjang, sehingga dapat digunakan untuk kondisi pasar yang berbeda.

Prinsip Strategi

Strategi ini terdiri dari dua bagian:

  1. Indikator RSI atau MFI khusus: Indikator ini menghitung nilai PresentTrend berdasarkan RSI atau MFI, dan menghasilkan sinyal beli dan jual berdasarkan nilai tersebut, yang menunjukkan pembalikan tren potensial.

  2. Indikator ATR: Indikator yang mengikuti tren populer yang menggunakan rentang rata-rata real (ATR) [2].

Ketika sinyal beli dan jual dari kedua strategi dipicu pada saat yang sama, strategi akan membuka posisi untuk melakukan over atau under. Ini dapat memastikan bahwa perdagangan hanya terjadi ketika tren jangka pendek dan jangka panjang konsisten, sehingga meningkatkan keandalan strategi.

Keunggulan Strategis

  • Kombinasi tren jangka pendek dan jangka panjang, berlaku untuk kondisi pasar yang berbeda
  • Menggunakan indikator khusus dan ATR untuk meningkatkan keandalan sinyal
  • Opsi perdagangan hanya-lebih, hanya-kurang atau dua arah, sesuai dengan gaya perdagangan yang berbeda
  • Parameter default dioptimalkan untuk menyeimbangkan sensitivitas dan stabilitas
  • Parameter dapat disesuaikan dengan preferensi pribadi, strategi optimasi

Risiko Strategis dan Solusi

  • Semua tren mengikuti strategi yang berisiko untuk dieksploitasi
  • Transaksi dua arah multi ruang dapat meningkatkan jumlah transaksi dan biaya.
  • Setting parameter yang tidak tepat dapat menghasilkan terlalu banyak sinyal kesalahan
  • Siklus kepemilikan perdagangan dapat dipersingkat secara tepat untuk mengurangi risiko risiko risiko
  • Anda dapat memilih untuk hanya melakukan over atau short, mengurangi jumlah transaksi.
  • Parameter harus diuji secara menyeluruh dan disesuaikan dengan tepat untuk memastikan bahwa parameter masuk akal

Arah optimasi strategi

  • Meningkatkan mekanisme penghentian kerugian dan pengendalian kerugian tunggal
  • Tergabung dengan indikator lain untuk memfilter sinyal dan mengurangi kesalahan transaksi
  • Menguji berbagai parameter siklus pegangan untuk mencari parameter optimal
  • Mencoba mengoptimalkan parameter secara otomatis berdasarkan pembelajaran mesin
  • Menggunakan lebih banyak sumber data, seperti informasi aliran pesanan
  • Optimalkan kode kebijakan untuk meningkatkan efektivitas pelaksanaan

Meringkaskan

Strategi PresentTrend secara keseluruhan adalah strategi trend following yang sangat efektif. Ini menggabungkan indikator tren jangka pendek dan jangka panjang untuk meningkatkan keandalan sinyal sambil tetap sensitif. Dengan menyesuaikan arah, parameter, dan menambahkan logika tambahan, strategi ini dapat beradaptasi dengan lingkungan pasar dan kebutuhan pedagang yang berbeda.

Kode Sumber Strategi
/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading

//@version=5

// Define the strategy settings
strategy('PresentTrend - Strategy [presentTrading]' , overlay=true, precision=3, default_qty_type=strategy.cash, 
 commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, 
  currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital= 10000)

// Define the input parameters
priceSource  = input.source(title='Source', defval=hlc3, group='PresentTrend') // The price source to use
lengthParam  = input.int(title='Length', defval=14, group='PresentTrend') // The length of the moving average
multiplier = input.float(title='Multiplier', defval=1.618, step=0.1, group='PresentTrend') // The multiplier for the ATR
indicatorChoice  = input.bool(title='Whether to use RSI or MFI', defval=false, group='PresentTrend') // Whether to use RSI or MFI

// Add a parameter for choosing Long or Short
tradeDirection = input.string(title="Trade Direction", defval="Both", options=["Long", "Short", "Both"])

// Calculate the ATR and the upT and downT values
ATR = ta.sma(ta.tr, lengthParam)
upperThreshold = low - ATR * multiplier 
lowerThreshold  = high + ATR * multiplier 

// Initialize the PresentTrend indicator
PresentTrend = 0.0

// Calculate the PresentTrend indicator
PresentTrend := (indicatorChoice ? ta.rsi(priceSource, lengthParam) >= 50 : ta.mfi(hlc3, lengthParam) >= 50) ? upperThreshold < nz(PresentTrend[1]) ? nz(PresentTrend[1]) : upperThreshold : lowerThreshold > nz(PresentTrend[1]) ? nz(PresentTrend[1]) : lowerThreshold

// Calculate the buy and sell signals
longSignal  = ta.crossover(PresentTrend, PresentTrend[2])
shortSignal  = ta.crossunder(PresentTrend, PresentTrend[2])

// Calculate the number of bars since the last buy and sell signals
barsSinceBuy = ta.barssince(longSignal)
barsSinceSell = ta.barssince(shortSignal)
previousBuy = ta.barssince(longSignal[1])
previousSell = ta.barssince(shortSignal[1])

// Initialize the direction variable
trendDirection = 0

// Calculate the direction of the trend
trendDirection := longSignal and previousBuy > barsSinceSell ? 1 : shortSignal and previousSell > barsSinceBuy ? -1 : trendDirection[1]

// Check the trade direction parameter before entering a trade
if (trendDirection == 1 and (tradeDirection == "Long" or tradeDirection == "Both"))
    strategy.entry("Buy", strategy.long) 
if (trendDirection == -1 and (tradeDirection == "Short" or tradeDirection == "Both"))
    strategy.entry("Sell", strategy.short) 

// Add a stop mechanism when the tradeDirection is one-sided
if (tradeDirection == "Long" and trendDirection == -1)
    strategy.close("Buy")
if (tradeDirection == "Short" and trendDirection == 1)
    strategy.close("Sell")

// Visualization
plot(PresentTrend, color=color.blue, title="PresentTrend")
plotshape(series=longSignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal")
plotshape(series=shortSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal")