EMA, SMA, CCI, ATR, Purata Pergerakan Strategi Penjajaran Sempurna dan Sistem Perdagangan Automatik Penunjuk Arah Aliran

EMA SMA CCI ATR
Tarikh penciptaan: 2024-09-26 15:52:31 Akhirnya diubah suai: 2024-09-26 15:52:31
Salin: 0 Bilangan klik: 675
1
fokus pada
1617
Pengikut

EMA, SMA, CCI, ATR, Purata Pergerakan Strategi Penjajaran Sempurna dan Sistem Perdagangan Automatik Penunjuk Arah Aliran

Gambaran keseluruhan

Strategi ini menggabungkan keselarasan sempurna rata-rata dan indikator sihir trend untuk menangkap trend pasaran. Ia menggunakan tiga purata bergerak (EMA45, SMA90, dan SMA180) dan indikator sihir trend berdasarkan pengiraan CCI dan ATR. Inti strategi ini adalah untuk mengenal pasti keadaan keselarasan sempurna rata-rata, sambil menggabungkan perubahan warna indikator sihir trend untuk mengesahkan pembalikan trend, dan menghasilkan isyarat perdagangan.

Prinsip Strategi

Strategi ini adalah berdasarkan kepada beberapa elemen utama:

  1. Peraturan garis rata yang sempurna: menggunakan tiga garis rata EMA45, SMA90 dan SMA180, apabila mereka disusun mengikut urutan tertentu ((multicap: EMA45 > SMA90 > SMA180; kosong: EMA45 < SMA90 < SMA180), dianggap sebagai isyarat kuat untuk penubuhan trend.

  2. Trend Magic Indicator: Ini adalah penunjuk tersuai berdasarkan CCI (Indeks Saluran Komoditi) dan ATR (Langit Sebenar). Ia menunjukkan pembalikan trend yang berpotensi dengan perubahan warna.

  3. Syarat kemasukan: isyarat perdagangan dihasilkan hanya apabila garis rata-rata sempurna dan perubahan warna indikator sihir trend dipenuhi secara serentak. Ini memastikan perdagangan hanya dilakukan apabila trend kuat terbentuk.

  4. Pengurusan risiko: Strategi menggunakan sasaran stop-loss dan profit berdasarkan nisbah pulangan risiko. Stop-loss ditetapkan pada tahap SMA90 semasa masuk, sasaran profit ditetapkan sebanyak 1.5 kali risiko.

Kelebihan Strategik

  1. Pengesanan Trend: Dengan menggabungkan pelbagai petunjuk, strategi ini dapat menangkap trend jangka panjang dan mengurangkan isyarat palsu.

  2. Kawalan risiko: Mekanisme pengurusan risiko terbina dalam, termasuk stop loss tetap dan sasaran keuntungan berdasarkan nisbah pulangan risiko, membantu mengawal risiko setiap perdagangan.

  3. Fleksibiliti: Strategi membolehkan pengguna menyesuaikan parameter, seperti kitaran CCI, penggandaan ATR dan kitaran purata bergerak, untuk menyesuaikan diri dengan keadaan pasaran yang berbeza dan keutamaan peribadi.

  4. Visualisasi: Strategi memetakan indikator sihir trend dan purata bergerak pada carta untuk memudahkan peniaga menganalisis trend pasaran secara intuitif.

Risiko Strategik

  1. Ketinggalan: Strategi mungkin terlepas beberapa peluang pada awal trend kerana penggunaan purata bergerak dan petunjuk ketinggalan lain.

  2. Pasaran bergolak: Dalam pasaran bergolak atau bergolak, strategi mungkin menghasilkan isyarat palsu yang kerap, yang menyebabkan perdagangan berlebihan.

  3. Penutupan tetap: Menggunakan SMA90 tetap sebagai penutupan mungkin terlalu longgar dalam beberapa kes, meningkatkan potensi kerugian.

  4. Sensitiviti parameter: Prestasi strategi mungkin sensitif kepada tetapan parameter yang memerlukan pengoptimuman dan pengulangan yang teliti.

Arah pengoptimuman strategi

  1. Hentian dinamik: Pertimbangkan untuk menjejaki hentian dan menyesuaikan tahap hentian semasa harga bergerak untuk lebih melindungi keuntungan.

  2. Penapis keadaan pasaran: memperkenalkan penapis kekuatan turun naik atau trend untuk menyesuaikan tindakan strategi dalam keadaan pasaran yang berbeza.

  3. Analisis bingkai masa: menggabungkan analisis bingkai masa berbilang untuk meningkatkan kebolehpercayaan isyarat dan mengurangkan isyarat palsu.

  4. Penunjuk kuantitatif: Menambah analisis kuantiti atau penunjuk kuantitatif lain untuk meningkatkan pengesahan trend dan pengenalan pembalikan.

  5. Pengoptimuman pembelajaran mesin: menggunakan algoritma pembelajaran mesin untuk menyesuaikan parameter secara dinamik untuk menyesuaikan diri dengan keadaan pasaran yang sentiasa berubah.

ringkaskan

Strategi perdagangan automatik yang menggabungkan susunan sempurna garis sejajar dan indikator sihir trend ini menunjukkan satu kaedah pemantauan trend yang berpotensi. Strategi ini bertujuan untuk menangkap trend pasaran yang kuat dengan menggunakan pelbagai petunjuk teknikal secara bersepadu, sambil mengawal risiko melalui mekanisme pengurusan risiko yang terbina dalam. Walaupun terdapat beberapa batasan yang wujud, seperti keterbelakangan dan sensitif terhadap parameter, strategi ini berpotensi menjadi alat perdagangan yang berkesan dengan pengoptimuman dan penyesuaian yang berterusan.

Kod sumber strategi
/*backtest
start: 2024-08-26 00:00:00
end: 2024-09-24 08:00:00
period: 5m
basePeriod: 5m
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/
// © PakunFX

//@version=5
strategy("Trend Magic with EMA, SMA, and Auto-Trading", shorttitle="TM_Trading", overlay=true, format=format.price, precision=2)

// Inputs
period = input.int(21, "CCI period")
coeff = input.float(1.0, "ATR Multiplier")
AP = input.int(7, "ATR Period")
riskRewardRatio = input.float(1.5, "Risk/Reward Ratio")  // Risk/Reward Ratio for take profit

// Calculations
ATR = ta.sma(ta.tr, AP)
src = input(close)
upT = low - ATR * coeff
downT = high + ATR * coeff
var MagicTrend = 0.0
MagicTrend := ta.cci(src, period) >= 0 ? (upT < nz(MagicTrend[1]) ? nz(MagicTrend[1]) : upT) : (downT > nz(MagicTrend[1]) ? nz(MagicTrend[1]) : downT)

// Define colors for Trend Magic
color1 = ta.cci(src, period) >= 0 ? color.rgb(0, 34, 252) : color.rgb(252, 4, 0)
isBlue = ta.cci(src, period) >= 0
isRed = ta.cci(src, period) < 0

// Convert bool to float (1 for true, 0 for false)
isBlueFloat = isBlue ? 1 : 0
isRedFloat = isRed ? 1 : 0

// Moving Averages
ema45 = ta.ema(close, 45)
sma90 = ta.sma(close, 90)
sma180 = ta.sma(close, 180)

// Plot Trend Magic
plot(MagicTrend, color=color1, linewidth=3)

// Alerts
alertcondition(ta.cross(close, MagicTrend), title="Cross Alert", message="Price - MagicTrend Crossing!")
alertcondition(ta.crossover(low, MagicTrend), title="CrossOver Alarm", message="BUY SIGNAL!")
alertcondition(ta.crossunder(high, MagicTrend), title="CrossUnder Alarm", message="SELL SIGNAL!")

// Perfect Order conditions
bullishPerfectOrder = ema45 > sma90 and sma90 > sma180  // Bullish Perfect Order
bearishPerfectOrder = ema45 < sma90 and sma90 < sma180  // Bearish Perfect Order

// Trend Magic color change detection
trendMagicTurnedBlue = ta.crossover(isBlueFloat, isRedFloat)  // Red to Blue crossover (For long entry)
trendMagicTurnedRed = ta.crossunder(isBlueFloat, isRedFloat)  // Blue to Red crossover (For short entry)

// Variables to store SMA90 at the entry
var float longSma90 = na
var float shortSma90 = na

// Trading logic based on Perfect Order and color change
longCondition = bullishPerfectOrder and trendMagicTurnedBlue  // Buy when Perfect Order is bullish and Trend Magic turns red to blue
shortCondition = bearishPerfectOrder and trendMagicTurnedRed  // Sell when Perfect Order is bearish and Trend Magic turns blue to red

// Strategy Entry
if (longCondition)
    strategy.entry("Buy", strategy.long)
    longSma90 := sma90  // Store SMA90 at entry for long position

if (shortCondition)
    strategy.entry("Sell", strategy.short)
    shortSma90 := sma90  // Store SMA90 at entry for short position

// Stop-Loss and Take-Profit calculations
// For Long Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (longCondition and not na(longSma90))
    longStopLoss = longSma90  // Use SMA90 at the time of entry
    longRisk = close - longSma90  // Calculate risk
    longTakeProfit = close + longRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Buy", stop=longStopLoss, limit=longTakeProfit)

// For Short Positions: stop at SMA90 (fixed at entry), take profit at 1.5x risk
if (shortCondition and not na(shortSma90))
    shortStopLoss = shortSma90  // Use SMA90 at the time of entry
    shortRisk = shortSma90 - close  // Calculate risk
    shortTakeProfit = close - shortRisk * riskRewardRatio  // Calculate take profit
    strategy.exit("Take Profit/Stop Loss", "Sell", stop=shortStopLoss, limit=shortTakeProfit)

// Plot Moving Averages
plot(ema45, color=color.green, title="EMA 45")
plot(sma90, color=color.blue, title="SMA 90")
plot(sma180, color=color.red, title="SMA 180")