Pertukaran purata bergerak dengan strategi keuntungan mengambil berbilang

Penulis:ChaoZhang, Tarikh: 2024-04-26 15:16:12
Tag:SMAMA

img

Ringkasan

Strategi ini menggunakan persilangan dua purata bergerak untuk menentukan trend pasaran. Apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, ia membuka kedudukan panjang, dan sebaliknya untuk kedudukan pendek. Pada masa yang sama, strategi ini menggunakan pelbagai tahap keuntungan, sebahagian menutup kedudukan apabila harga mencapai tahap keuntungan yang telah ditetapkan, dengan itu memaksimumkan pulangan dan mengawal risiko.

Prinsip Strategi

Inti strategi ini adalah menggunakan purata bergerak dari tempoh yang berbeza untuk menangkap trend pasaran. Apabila purata bergerak jangka pendek melintasi di atas purata bergerak jangka panjang, ia menunjukkan bahawa pasaran mungkin memasuki trend menaik, dan kedudukan panjang dibuka. Sebaliknya, apabila purata bergerak jangka pendek melintasi di bawah purata bergerak jangka panjang, ia menunjukkan penurunan yang berpotensi, dan kedudukan pendek dibuka. Sementara itu, strategi menetapkan pelbagai tahap keuntungan, dan apabila harga mencapai tahap ini, ia menutup kedudukan dalam kumpulan mengikut nisbah kedudukan yang telah ditetapkan. Ini membolehkan keuntungan yang lebih besar apabila trend berterusan sambil juga menguruskan risiko.

Kelebihan Strategi

  1. Sederhana dan berkesan: Strategi ini berdasarkan prinsip crossover purata bergerak klasik, yang mudah dan mudah difahami, dan telah terbukti berkesan dalam amalan.
  2. Pelbagai mengambil keuntungan: Dengan menetapkan pelbagai tahap keuntungan dan menutup kedudukan sebahagiannya apabila harga mencapai tahap ini, ia dapat memaksimumkan pulangan sambil juga mengawal risiko.
  3. Parameter fleksibel: Tetapan parameter strategi ini sangat fleksibel. Pengguna boleh menyesuaikan tempoh purata bergerak dan tahap keuntungan mengikut keperluan dan ciri pasaran mereka untuk mencapai hasil yang optimum.

Risiko Strategi

  1. Risiko turun naik pasaran: Apabila pasaran mengalami turun naik yang sengit, isyarat silang yang kerap boleh membawa kepada perdagangan yang kerap, meningkatkan kos transaksi dan risiko pengambilan.
  2. Penentuan risiko parameter: Tetapan parameter yang tidak sesuai boleh menyebabkan prestasi strategi yang buruk, seperti pemilihan tempoh purata bergerak yang tidak betul atau tetapan tahap keuntungan yang tidak munasabah.
  3. Risiko pengiktirafan trend: Strategi ini terutamanya bergantung pada trend. Dalam pasaran yang berbelit-belit atau apabila trend tidak jelas, mungkin terdapat lebih banyak isyarat palsu, yang membawa kepada kerugian.

Arahan Pengoptimuman Strategi

  1. Gabungkan dengan penunjuk lain: Pertimbangkan untuk menggabungkan dengan penunjuk teknikal lain, seperti RSI, MACD, dan lain-lain, untuk meningkatkan ketepatan dan kebolehpercayaan pengenalan trend.
  2. Mengoptimumkan parameter: Melalui backtesting dan pengoptimuman, cari tempoh purata bergerak terbaik dan parameter tahap keuntungan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Tambahkan stop-loss: Pertimbangkan untuk menambah mekanisme stop-loss untuk mengawal risiko lebih lanjut, seperti menetapkan stop-loss dinamik berdasarkan ATR.
  4. Meningkatkan kemasukan dan keluar: Meneroka lebih banyak syarat kemasukan dan keluar, seperti mempertimbangkan jumlah dagangan, tahap sokongan dan rintangan, dan lain-lain, untuk meningkatkan ketahanan strategi.

Kesimpulan

Strategi Crossover Moving Average dengan Multiple Take Profits adalah strategi trend yang mudah dan berkesan yang dapat menangkap lebih banyak keuntungan dalam trend sambil menguruskan risiko melalui pengambilan keuntungan pelbagai peringkat. Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan dan risiko, dan perlu dioptimumkan dan ditingkatkan berdasarkan keadaan pasaran tertentu dan keperluan pengguna. Secara keseluruhan, strategi ini boleh berfungsi sebagai alat perdagangan yang berkesan, tetapi tidak boleh dipercayai sepenuhnya dan perlu digabungkan dengan kaedah analisis lain dan langkah pengurusan risiko untuk hasil yang optimum.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Scriptâ„¢ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ValdesTradingBots

//Follow Us for More Insights and Updates!

//Join our community and be the first to know about our new releases and trading tips

//Facebook Group: Join our vibrant community at https://www.facebook.com/groups/707469081464839/
//Twitter: Follow us for quick updates and insights at https://twitter.com/ValdesBots

//We're excited to have you with us!

//@version=5
strategy("Valdes Trading Bots MA Cross with Multiple Take Profits", overlay=true)

shortPeriod = input(18, title="Short MA Period")
longPeriod = input(32, title="Long MA Period")

// Take Profit Settings
tp1Enabled = input(true, title="Enable Take Profit 1")
tp1Perc = input(15, title="Take Profit 1 (%)") / 100
tp1QtyPerc = input(25, title="Take Profit 1 Qty (%)") / 100

tp2Enabled = input(true, title="Enable Take Profit 2")
tp2Perc = input(30, title="Take Profit 2 (%)") / 100
tp2QtyPerc = input(25, title="Take Profit 2 Qty (%)") / 100

tp3Enabled = input(true, title="Enable Take Profit 3")
tp3Perc = input(45, title="Take Profit 3 (%)") / 100
tp3QtyPerc = input(25, title="Take Profit 3 Qty (%)") / 100

tp4Enabled = input(true, title="Enable Take Profit 4")
tp4Perc = input(60, title="Take Profit 4 (%)") / 100
tp4QtyPerc = input(25, title="Take Profit 4 Qty (%)") / 100

shortMA = ta.sma(close, shortPeriod)
longMA = ta.sma(close, longPeriod)

// Determine the trend
uptrend = shortMA > longMA
downtrend = shortMA < longMA

// Assign candle colors based on the trend
candleColor = uptrend ? color.rgb(9, 112, 0) : downtrend ? color.rgb(255, 0, 0) : color.new(color.blue, 0)

plot(shortMA, title="Short MA", color=color.rgb(9, 112, 0))
plot(longMA, title="Long MA", color=color.rgb(255, 0, 0))

// Create a cross signal
longCross = ta.crossover(shortMA, longMA)
shortCross = ta.crossunder(shortMA, longMA)

// Strategy entry
if (longCross)
    strategy.entry("Long", strategy.long)
if (shortCross)
    strategy.entry("Short", strategy.short)

// Strategy take profit
if (tp1Enabled and strategy.position_size > 0)
    strategy.exit("TP1 Long", "Long", qty_percent=tp1QtyPerc, limit=strategy.position_avg_price * (1 + tp1Perc))
if (tp1Enabled and strategy.position_size < 0)
    strategy.exit("TP1 Short", "Short", qty_percent=tp1QtyPerc, limit=strategy.position_avg_price * (1 - tp1Perc))

if (tp2Enabled and strategy.position_size > 0)
    strategy.exit("TP2 Long", "Long", qty_percent=tp2QtyPerc, limit=strategy.position_avg_price * (1 + tp2Perc))
if (tp2Enabled and strategy.position_size < 0)
    strategy.exit("TP2 Short", "Short", qty_percent=tp2QtyPerc, limit=strategy.position_avg_price * (1 - tp2Perc))

if (tp3Enabled and strategy.position_size > 0)
    strategy.exit("TP3 Long", "Long", qty_percent=tp3QtyPerc, limit=strategy.position_avg_price * (1 + tp3Perc))
if (tp3Enabled and strategy.position_size < 0)
    strategy.exit("TP3 Short", "Short", qty_percent=tp3QtyPerc, limit=strategy.position_avg_price * (1 - tp3Perc))

if (tp4Enabled and strategy.position_size > 0)
    strategy.exit("TP4 Long", "Long", qty_percent=tp4QtyPerc, limit=strategy.position_avg_price * (1 + tp4Perc))
if (tp4Enabled and strategy.position_size < 0)
    strategy.exit("TP4 Short", "Short", qty_percent=tp4QtyPerc, limit=strategy.position_avg_price * (1 - tp4Perc))

// Plotting the signals on the chart
plotshape(series=longCross, title="Long Cross", location=location.belowbar, color=color.rgb(9, 112, 0), style=shape.triangleup, size=size.small)
plotshape(series=shortCross, title="Short Cross", location=location.abovebar, color=color.rgb(255, 0, 0), style=shape.triangledown, size=size.small)

// Apply candle color
barcolor(candleColor)


Berkaitan

Lebih lanjut