Strategi MACD Rangka Masa Berbilang Masa


Tarikh penciptaan: 2023-11-28 15:33:35 Akhirnya diubah suai: 2023-11-28 15:33:35
Salin: 0 Bilangan klik: 1201
1
fokus pada
1617
Pengikut

Strategi MACD Rangka Masa Berbilang Masa

Gambaran keseluruhan

Strategi MACD Multi Timeframe (Multi Timeframe MACD Strategy) adalah strategi perdagangan kuantitatif yang menggunakan indikator MACD untuk trend di beberapa bingkai masa. Strategi ini menghantar isyarat perdagangan dengan mengira indikator MACD pada tempoh masa yang berbeza (minit 3, 5, 15 dan 30 minit) untuk menentukan sama ada pergerakan harga antara tempoh yang berbeza.

Prinsip Strategi

Logik teras strategi ini adalah untuk mengira penyambungan MACD pada pelbagai jangka masa (seperti 3 minit, 5 minit, 15 minit, 30 minit). Pertama, mengira MACD pada setiap jangka masa, menilai pergerakan harga pada jangka masa tersebut berdasarkan MACD (naik atau turun). Kemudian, menilai pergerakan harga pada pelbagai jangka masa:

  1. Ia menghasilkan isyarat beli apabila harga naik dalam semua jangka masa.
  2. Sinyal jual dihasilkan apabila harga turun dalam semua jangka masa.

Dengan menilai trend dalam jangka masa, bunyi pasaran jangka pendek dapat disaring dengan berkesan, menjadikan isyarat perdagangan lebih dipercayai.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Pengesanan trend pada bingkai masa, penapisan kebisingan, dan pengesahan isyarat dagangan;
  2. Parameter penunjuk MACD boleh disesuaikan untuk menyesuaikan diri dengan keadaan pasaran yang berbeza;
  3. Fleksibiliti konfigurasi memerlukan penghakiman komprehensif dalam jangka masa, peraturan perdagangan yang ditentukan sendiri.

Risiko Strategik dan Penyelesaian

Strategi ini juga mempunyai risiko:

  1. Dalam menilai keserasian trend dalam semua jangka masa, peluang untuk pembalikan serentak mungkin terlepas;
  2. Penetapan parameter penunjuk MACD yang tidak betul boleh menyebabkan isyarat perdagangan yang tidak berkesan.

Penyelesaian:

  1. Peraturan penilaian komprehensif boleh dikurangkan dengan sewajarnya untuk membolehkan harga dalam tempoh masa tertentu berbalik dan mengambil peluang yang lebih besar;
  2. Perlu menyesuaikan parameter penunjuk MACD mengikut pasaran yang berbeza untuk menjadikan isyarat perdagangan lebih sesuai dengan keadaan semasa.

Arah pengoptimuman

Strategi ini boleh terus dioptimumkan dalam beberapa aspek:

  1. Meningkatkan atau mengurangkan jumlah jangka masa yang memerlukan penilaian komprehensif untuk mencari kombinasi terbaik;
  2. Uji tetapan parameter MACD yang berbeza;
  3. Memperbaiki peraturan kemasukan dan keluar yang spesifik mengikut keadaan yang sebenarnya.

ringkaskan

Strategi MACD pelbagai kerangka masa menggunakan fungsi penghakiman trend indikator MACD, untuk mengesan pergerakan harga merentasi bingkai masa, dapat menyaring kebisingan dengan berkesan, meningkatkan kualiti isyarat. Strategi ini dapat disesuaikan dengan parameter dan optimumkan peraturan, fleksibel untuk menyesuaikan diri dengan pelbagai jenis dan keadaan perdagangan, dan sangat praktikal.

Kod sumber strategi
/*backtest
start: 2023-10-28 00:00:00
end: 2023-11-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("[RichG] Easy MTF Strategy", overlay=false)

TF_1_time = input("3", "Timeframe 1")
TF_2_time = input("5", "Timeframe 2")
TF_3_time = input("15", "Timeframe 3")
TF_4_time = input("30", "Timeframe 4")

fastLen = input(title="Fast Length",  defval=12)
slowLen = input(title="Slow Length",  defval=26)
sigLen  = input(title="Signal Length",  defval=9)
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)

width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line

TF_1 = request.security(syminfo.tickerid, TF_1_time, open) < request.security(syminfo.tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor

TF_2 = request.security(syminfo.tickerid, TF_2_time, open) < request.security(syminfo.tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor

TF_3 = request.security(syminfo.tickerid, TF_3_time, open) < request.security(syminfo.tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor

TF_4 = request.security(syminfo.tickerid, TF_4_time, open) < request.security(syminfo.tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor

TF_global = TF_1 and TF_2 and TF_3 and TF_4 
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width

plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)    

exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global

longCondition = TF_global
if (longCondition)
    strategy.entry("MTF_Long", strategy.long)

shortCondition = TF_global_bear
if (shortCondition)
    strategy.entry("MTF_Short", strategy.short)
    
strategy.close("MTF_Long", when=exitCondition_Long)    
strategy.close("MTF_Short", when=exitCondition_Short)