Strategi Mengikuti Trend Trend Sekarang


Tarikh penciptaan: 2023-09-21 15:00:08 Akhirnya diubah suai: 2023-09-21 15:00:08
Salin: 0 Bilangan klik: 615
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi PresentTrend adalah strategi mengikut trend yang unik. Strategi ini menggabungkan trend pasaran jangka pendek dan jangka panjang, menjadikannya sesuai untuk keadaan pasaran yang berbeza.

Prinsip Strategi

Strategi ini terdiri daripada dua bahagian:

  1. Indikator RSI atau MFI tersuai: Indikator ini mengira nilai PresentTrend berdasarkan RSI atau MFI, dan menghasilkan isyarat beli dan jual berdasarkan nilai Gold Fork Dead Fork yang menunjukkan pembalikan trend yang berpotensi.

  2. Indeks ATR: Ini adalah satu trend popular yang mengikuti petunjuk, menggunakan purata rentang turun naik sebenar ((ATR) }}.

Apabila kedua-dua strategi membeli dan menjual isyarat yang dicetuskan pada masa yang sama, strategi itu akan membuka kedudukan untuk lebih atau kurang. Ini dapat memastikan perdagangan hanya berlaku apabila trend jangka pendek dan jangka panjang adalah sama, dan dengan itu meningkatkan kebolehpercayaan strategi.

Kelebihan Strategik

  • Menggabungkan trend jangka pendek dan jangka panjang untuk pelbagai keadaan pasaran
  • Menggunakan penunjuk tersuai dan ATR untuk meningkatkan kebolehpercayaan isyarat
  • Pilihan untuk berdagang hanya dalam jumlah yang banyak, hanya dalam jumlah yang sedikit atau berdagang dua arah, menyesuaikan diri dengan gaya perdagangan yang berbeza
  • Parameter lalai dioptimumkan untuk menyeimbangkan sensitiviti dan kestabilan
  • Parameter boleh disesuaikan mengikut keutamaan peribadi, strategi pengoptimuman

Risiko Strategik dan Penyelesaian

  • Semua trend mengikut strategi yang ada risiko untuk direbit
  • Transaksi dua hala yang berbilang ruang mungkin meningkatkan jumlah transaksi dan bayaran
  • Parameter yang tidak betul mungkin menghasilkan terlalu banyak isyarat silap
  • Memperolehi jangka masa pegangan perdagangan yang lebih pendek untuk mengurangkan risiko risiko
  • Anda boleh memilih untuk berdagang lebih banyak atau lebih sedikit.
  • Parameter harus diuji dan diselaraskan dengan betul untuk memastikan ia munasabah

Arah pengoptimuman strategi

  • Meningkatkan mekanisme penangguhan kerugian untuk mengawal kerugian individu
  • Gabungan dengan petunjuk lain untuk memfilter isyarat dan mengurangkan kesilapan perdagangan
  • Menguji parameter kitaran pegangan yang berbeza untuk mencari parameter yang optimum
  • Cuba mengoptimumkan parameter secara automatik berdasarkan pembelajaran mesin
  • Menggunakan lebih banyak sumber data, seperti maklumat aliran pesanan
  • Mengoptimumkan kod strategi dan meningkatkan kecekapan pelaksanaan

ringkaskan

Strategi PresentTrend secara keseluruhan adalah strategi mengikuti trend yang sangat berkesan. Ia menggabungkan indikator trend jangka pendek dan jangka panjang, meningkatkan kebolehpercayaan isyarat sambil mengekalkan kepekaan. Dengan menyesuaikan arah, parameter, dan menambah logik tambahan, strategi ini dapat disesuaikan dengan keadaan pasaran yang berbeza dan keperluan peniaga.

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