Strategi Keuntungan Berbilang Lapisan Perpindahan Purata Perpindahan

SMA MA
Tarikh penciptaan: 2024-04-26 15:16:12 Akhirnya diubah suai: 2024-04-26 15:16:12
Salin: 1 Bilangan klik: 582
1
fokus pada
1617
Pengikut

Strategi Keuntungan Berbilang Lapisan Perpindahan Purata Perpindahan

Gambaran keseluruhan

Strategi ini menggunakan persilangan dua rata-rata bergerak untuk menilai trend pasaran, membuka lebih banyak kedudukan ketika bergerak panjang pada rata-rata bergerak jangka pendek, dan sebaliknya membuka posisi kosong. Pada masa yang sama, strategi ini menggunakan pelbagai tahap keuntungan dan berakhir dengan cara, apabila harga mencapai tahap keuntungan yang disengajakan, dan kemudian menutup posisi secara berturut-turut, untuk memaksimumkan keuntungan dan mengawal risiko.

Prinsip Strategi

Strategi ini menggunakan purata bergerak untuk menangkap trend pasaran. Apabila bergerak jangka pendek di atas rata-rata bergerak jangka panjang, bermakna pasaran mungkin memasuki trend naik, dan membuka lebih banyak kedudukan; apabila bergerak jangka pendek di bawah rata-rata bergerak jangka panjang, bermakna pasaran mungkin memasuki trend menurun, dan membuka posisi kosong.

Kelebihan Strategik

  1. Sederhana dan berkesan: Strategi ini adalah berdasarkan kepada prinsip klasik moving average crossover, mudah difahami, dan terbukti berkesan dalam praktiknya.
  2. Pelbagai tahap keuntungan: Dengan menetapkan pelbagai tahap keuntungan, dan menetapkan kedudukan kosong secara berturut-turut apabila harga mencapai tahap ini, keuntungan dapat dimaksimumkan, dan risiko dapat dikendalikan.
  3. Fleksibiliti parameter: Tetapan parameter strategi ini sangat fleksibel, pengguna boleh menyesuaikan kitaran purata bergerak dan tahap keuntungan mengikut keperluan mereka dan ciri-ciri pasaran untuk mencapai kesan terbaik.

Risiko Strategik

  1. Risiko turun naik pasaran: Apabila pasaran mengalami turun naik yang kuat, isyarat silang yang kerap boleh menyebabkan strategi sering berdagang, meningkatkan kos perdagangan dan risiko penarikan balik.
  2. Risiko penetapan parameter: penetapan parameter yang tidak tepat boleh menyebabkan prestasi strategi yang tidak baik, seperti pilihan kitaran purata bergerak yang tidak betul, atau penetapan tahap keuntungan yang tidak munasabah.
  3. Risiko pengiktirafan trend: Strategi ini bergantung kepada trend, dan lebih banyak isyarat palsu mungkin berlaku apabila pasaran bergolak atau trend tidak jelas, menyebabkan kerugian.

Arah pengoptimuman strategi

  1. Gabungan dengan petunjuk lain: Gabungan dengan petunjuk teknikal lain seperti RSI, MACD dan lain-lain boleh dipertimbangkan untuk meningkatkan ketepatan dan kebolehpercayaan pengenalan trend.
  2. Parameter pengoptimuman: Dengan pengesanan dan pengoptimuman, anda boleh mencari kitaran purata bergerak dan parameter tahap keuntungan yang terbaik untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.
  3. Menambah Hentikan: Anda boleh mempertimbangkan untuk memasukkan mekanisme Hentikan untuk mengawal risiko lebih lanjut, seperti Hentikan Dinamik berdasarkan tetapan ATR dan sebagainya.
  4. Ubah masuk dan keluar: lebih banyak syarat masuk dan keluar boleh dijelajahi, seperti mempertimbangkan faktor seperti jumlah dagangan, rintangan sokongan, dan sebagainya, untuk meningkatkan kestabilan strategi.

ringkaskan

Strategi keuntungan bertingkat bergerak adalah strategi penjejakan trend yang mudah dan berkesan, dengan cara yang menghasilkan keuntungan bertingkat, anda boleh mendapatkan lebih banyak keuntungan dalam trend sambil mengawal risiko. Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan dan risiko, yang perlu dioptimumkan dan diperbaiki mengikut keadaan pasaran dan keperluan pengguna tertentu.

Kod sumber strategi
/*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)