Strategi ramalan laluan Mike D masa depan


Tarikh penciptaan: 2023-12-13 17:21:44 Akhirnya diubah suai: 2023-12-13 17:21:44
Salin: 0 Bilangan klik: 443
1
fokus pada
1212
Pengikut

Strategi ramalan laluan Mike D masa depan

Gambaran keseluruhan

Idea teras strategi ini adalah untuk membuat ramalan mengenai trend harga dengan menganalisis pergerakan masa depan indikator McD. Strategi ini memanfaatkan sepenuhnya isyarat perdagangan yang dihasilkan oleh persilangan yang terdiri daripada rata-rata cepat dan rata-rata lambat indikator McD.

Prinsip Strategi

  1. Hitung perbezaan nilai indikator McD (nilai sejarah) dan berdasarkan itu menilai kenaikan dan penurunan garis McD dan garis isyarat.
  2. Dengan menetapkan opsyen bullish, anda boleh menggunakan masa depan nilai Indeks McD dalam jangka masa 4 jam untuk menilai pergerakan masa depan Indeks McD untuk meramalkan trend harga.
  3. Melakukan lebih banyak apabila perbezaan indikator McD lebih besar daripada 0 (merujuk kepada pasaran bertopeng) dan dijangka terus meningkat; melakukan kosong apabila perbezaan indikator McD kurang dari 0 (merujuk kepada pasaran kosong) dan dijangka terus menurun.
  4. Strategi ini menggabungkan kedua-dua kaedah perdagangan trend dan trend reversal, menangkap trend dan juga menangkap masa trend reversal.

Analisis kelebihan strategi

  1. Menggunakan indikator McD untuk menilai kelebihan trend pasaran, anda boleh menyaring gegaran dengan berkesan dan menangkap trend garis panjang.
  2. Dengan menggunakan ramalan pergerakan masa depan indikator McD, anda dapat menangkap titik perubahan harga lebih awal dan meningkatkan kebolehpercayaan strategi anda.
  3. Dengan menggabungkan trend tracking dan trend reversal trading, anda boleh menukar kedudukan pada masa yang tepat semasa trend tracking, dan mendapat keuntungan yang lebih besar.
  4. Parameter strategi boleh disesuaikan, pengguna boleh mengoptimumkannya mengikut tempoh masa yang berbeza dan keadaan pasaran, meningkatkan kestabilan strategi.

Analisis risiko strategi

  1. Bergantung kepada ramalan mengenai pergerakan masa depan indikator McD, jika ramalan itu tidak tepat, ia boleh menyebabkan perdagangan gagal.
  2. Peraturan yang tidak betul untuk marjin stop loss juga boleh menjejaskan kesan strategi.
  3. Indeks McD mungkin terlepas peluang untuk harga berbalik dengan cepat kerana ketinggalan. Ini adalah perhatian terhadap prestasi strategi dalam keadaan yang bergelombang tinggi.
  4. Ia perlu memberi perhatian kepada kesan kos transaksi.

Arah pengoptimuman strategi

  1. Ia juga boleh digunakan untuk meramalkan dalam kombinasi dengan petunjuk lain, mengurangkan kebergantungan pada satu petunjuk McD, dan meningkatkan ketepatan ramalan.
  2. Menggabungkan algoritma pembelajaran mesin, model latihan meramalkan pergerakan masa depan indikator McD.
  3. Tetapan parameter pengoptimuman untuk mencari kombinasi parameter terbaik.
  4. Untuk menyesuaikan konfigurasi parameter yang berbeza untuk keadaan pasaran yang berbeza, parameter pengoptimuman automatik sistem penyesuaian boleh ditambah.

ringkaskan

Strategi ini memanfaatkan sepenuhnya kelebihan penghakiman trend indikator McD sambil menambah analisis ramalan mengenai pergerakan masa depan indikator, menangkap titik-titik perubahan utama berdasarkan trend. Berbanding dengan trend yang hanya mengikuti trend, penggunaan strategi ini lebih maju dan ruang keuntungan lebih besar. Sudah tentu, terdapat risiko tertentu yang memerlukan pengoptimuman dan penyempurnaan lebih lanjut. Secara keseluruhan, strategi ini patut dikaji dan digunakan secara mendalam.

Kod sumber strategi
/*backtest
start: 2023-12-05 00:00:00
end: 2023-12-12 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © x11joe
strategy(title="MacD (Future Known or Unknown) Strategy", overlay=false, precision=2,commission_value=0.26, initial_capital=10000, currency=currency.USD, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

//OPTIONAL:: Allow only entries in the long or short position
allowOnlyLong = input(title="Allow position ONLY in LONG",type=input.bool, defval=false)
allowOnlyShort = input(title="Allow position ONLY in SHORT",type=input.bool, defval=false)


strategy.risk.allow_entry_in(allowOnlyLong ? strategy.direction.long : allowOnlyShort ? strategy.direction.short : strategy.direction.all) // There will be no short entries, only exits from long.

// Create MacD inputs
fastLen = input(title="MacD Fast Length", type=input.integer, defval=12)
slowLen = input(title="MacD Slow Length", type=input.integer, defval=26)
sigLen  = input(title="MacD Signal Length", type=input.integer, defval=9)

// Get MACD values
[macdLine, signalLine, _] = macd(close, fastLen, slowLen, sigLen)
hist = macdLine - signalLine

useFuture = input(title="Use The Future?",type=input.bool,defval=true)

macDState(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_on)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

macDStateNonFuture(resolutionType) =>
    hist_from_resolution = security(syminfo.tickerid, resolutionType, hist,barmerge.gaps_off, barmerge.lookahead_off)
    Green_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution > 0
    Green_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution > 0
    Red_IsDown = hist_from_resolution < hist_from_resolution[1] and hist_from_resolution <= 0
    Red_IsUp = hist_from_resolution > hist_from_resolution[1] and hist_from_resolution <= 0
    result=0
    if(Green_IsUp)
        result := 1
    if(Green_IsDown)
        result := 2
    if(Red_IsDown)
        result := 3
    if(Red_IsUp)
        result := 4
    result

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"
// === INPUT BACKTEST RANGE END ===

//Get FUTURE or NON FUTURE data
macDState240=useFuture ? macDState("240") : macDStateNonFuture("240") //1 is green up, 2 if green down, 3 is red, 4 is red up

//Fill in the GAPS
if(macDState240==0)
    macDState240:=macDState240[1]

//Plot Positions
plot(close,color= macDState240==1 ? color.green : macDState240==2 ? color.purple : macDState240==3 ? color.red : color.yellow,linewidth=4,style=plot.style_histogram,transp=50)

if(useFuture)
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)
else
    strategy.entry("buy_1",long=true,when=window() and (macDState240==4 or macDState240==1))//If we are in a red macD trending downwards MacD or in a MacD getting out of Red going upward.
    strategy.close("buy_1",when=window() and macDState240==3 and macDState240[1]==4)//If the state is going upwards from red but we are predicting back to red...
    strategy.entry("sell_1",long=false,when=window() and macDState240==2)//If we are predicting the uptrend to end soon.