Satu awan melalui bulan dan dua bintang untuk menarik strategi wang


Tarikh penciptaan: 2023-11-28 16:12:09 Akhirnya diubah suai: 2023-11-28 16:12:09
Salin: 1 Bilangan klik: 613
1
fokus pada
1621
Pengikut

Satu awan melalui bulan dan dua bintang untuk menarik strategi wang

Gambaran keseluruhan

Strategi penarikan bintang binari awan melalui bulan adalah strategi perdagangan kuantitatif yang menggabungkan indikator analisis teknikal pasaran awan dan penapis julat. Strategi ini menggunakan indikator awan untuk menentukan trend pasaran dan sokongan penting, tahap rintangan, dan bentuk K untuk menghasilkan isyarat perdagangan.

Prinsip Strategi

Strategi ini berdasarkan kepada satu indikator awan dan bentuk garis K untuk menilai pergerakan pasaran. Satu indikator awan terdiri daripada garis hadapan, garis dasar dan garis awan, hubungan silang mereka dapat menentukan trend pasaran; dan garis awan berfungsi sebagai titik sokongan dan rintangan. Strategi ini menyesuaikan kepekaan garis awan dengan menetapkan kombinasi parameter yang berbeza.

Di samping itu, strategi ini juga menetapkan penapis julat tarikh, yang hanya akan berdagang dalam julat tarikh yang ditetapkan, yang dapat mengawal frekuensi perdagangan strategi. Pada masa yang sama, tetapan stop loss juga dapat mengurangkan risiko, dan pilihan stop loss akan menghentikan kerugian apabila harga berjalan ke arah yang tidak menguntungkan.

Analisis kelebihan

  • Menggunakan satu awan penunjuk untuk menentukan pergerakan pasaran, parameter penunjuk boleh menyesuaikan kepekaan
  • K-Line Form Identification, isyarat dagangan jelas
  • Tetapkan penapis julat tarikh untuk mengawal kekerapan transaksi
  • Tetapan Hentikan Kerosakan, Hentikan Kerosakan pada Waktu yang Tepat, Kurangkan Risiko

Analisis risiko

  • Indeks awan terlewat, mungkin terlepas trend perubahan pesat
  • Penapis Julat Tarikh Mungkin Melewatkan Sebahagian Peluang Dagangan
  • Tetapan henti rugi yang tidak betul boleh meningkatkan kerugian

Risiko boleh diperbaiki dan dikawal dengan cara seperti menyesuaikan parameter metrik awan, mengoptimumkan julat tarikh, dan membetulkan titik berhenti.

Arah pengoptimuman

  • Anda boleh menguji kombinasi parameter yang berbeza untuk memilih konfigurasi metrik terbaik
  • Kaedah ini boleh digabungkan dengan kaedah lain untuk mengelakkan masalah ketinggalan satu awan.
  • Boleh setkan julat tarikh yang dioptimumkan melalui pengesanan kembali
  • Anda boleh menetapkan terhad dinamik terhad berhenti

ringkaskan

Strategi pengambilan wang binari bintang dua bulan melalui awan menggunakan indikator awan awan, pengenalan garis K, penapisan julat dan lain-lain untuk menentukan pergerakan pasaran, dapat memahami arah trend dengan lebih jelas. Dengan cara penyesuaian parameter, kawalan risiko dan lain-lain, anda boleh mendapatkan kesan strategi yang lebih baik. Tetapi anda masih perlu memperhatikan masalah ketinggalan indikator awan, dan melakukan penyesuaian pengoptimuman yang berterusan.

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

//@version=3
strategy(title="Ichimoku Kumo Twist Strategy (Presets)", shorttitle="Kumo Twist Strategy", overlay=true)

xlowest_(src, len) =>
    x = src
    for i = 1 to len - 1
        v = src[i]
        if (na(v))
            break
        x := min(x, v)
    x

xlowest(src, len) =>
    na(src[len]) ? xlowest_(src, len) : lowest(src, len)

xhighest_(src, len) =>
    x = src
    for i = 1 to len - 1
        v = src[i]
        if (na(v))
            break
        x := max(x, v)
    x

xhighest(src, len) =>
    na(src[len]) ? xhighest_(src, len) : highest(src, len)

dropn(src, n) =>
    na(src[n]) ? na : src

ichiConversionPeriods(presets) =>
    if presets == "Cpt 20 60 120 30"
        20
    else
        if presets == "Cpt 10 30 60 30"
            10
        else
            if presets == "Std 18 52 104 26"
                18
            else
                9

ichiBasePeriods(presets) =>
    if presets == "Cpt 20 60 120 30"
        60
    else
        if presets == "Cpt 10 30 60 30"
            30
        else
            if presets == "Std 18 52 104 26"
                52
            else
                26

ichiLaggingSpan2Periods(presets) =>
    if presets == "Cpt 20 60 120 30"
        120
    else
        if presets == "Cpt 10 30 60 30"
            60
        else
            if presets == "Std 18 52 104 26"
                104
            else
                52

ichiDisplacement(presets) =>
    if presets == "Cpt 20 60 120 30"
        30
    else
        if presets == "Cpt 10 30 60 30"
            30
        else
            if presets == "Std 18 52 104 26"
                26
            else
                26

scaling = input(title="Scaling", options=["Linear", "Log"], defval="Linear")
presets = input(title="Presets", options=["Cpt 20 60 120 30", "Cpt 10 30 60 30", "Std 18 52 104 26", "Std 9 26 52 26"], defval="Cpt 20 60 120 30")
dropCandles = input(1, minval=0, title="Drop first N candles")
showClouds = input(false, "Show Clouds")
stoploss = input(true, title="Stop Loss")

conversionPeriods = ichiConversionPeriods(presets)
basePeriods = ichiBasePeriods(presets)
laggingSpan2Periods = ichiLaggingSpan2Periods(presets)
displacement = ichiDisplacement(presets)
logScaling = scaling == "Log"

lows = dropn(low, dropCandles)
highs = dropn(high, dropCandles)

lowsp = logScaling ? log(lows) : lows
highsp = logScaling ? log(highs) : highs

donchian(len) =>
    avg(xlowest(lowsp, len), xhighest(highsp, len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

// === BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1)
FromDay   = input(defval = 3, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

golong = crossover(leadLine1, leadLine2)
goshort = crossunder(leadLine1, leadLine2)

strategy.entry("Buy", strategy.long, when=(golong and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.entry("Sell", strategy.short, when=(goshort and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

conversionLinep = logScaling ? exp(conversionLine) : conversionLine
baseLinep = logScaling ? exp(baseLine) : baseLine
leadLine1p = logScaling ? exp(leadLine1) : leadLine1
leadLine2p = logScaling ? exp(leadLine2) : leadLine2

plot(showClouds ? conversionLinep : na, color=#0496ff, title="Conversion Line")
plot(showClouds ? baseLinep : na, color=#991515, title="Base Line")

p1 = plot(showClouds ? leadLine1p : na, offset = displacement, color=green, title="Lead 1")
p2 = plot(showClouds ? leadLine2p : na, offset = displacement, color=red, title="Lead 2")
fill(p1, p2, color = showClouds ? (leadLine1p > leadLine2p ? green : red) : na)