Một đám mây xuyên qua mặt trăng và hai ngôi sao để thu hút chiến lược tiền bạc


Ngày tạo: 2023-11-28 16:12:09 sửa đổi lần cuối: 2023-11-28 16:12:09
sao chép: 1 Số nhấp chuột: 613
1
tập trung vào
1621
Người theo dõi

Một đám mây xuyên qua mặt trăng và hai ngôi sao để thu hút chiến lược tiền bạc

Tổng quan

Chiến lược hút tiền hai sao một đám mây qua mặt trăng là một chiến lược giao dịch định lượng kết hợp các chỉ số phân tích kỹ thuật thị trường một đám mây và lọc phạm vi. Chiến lược này sử dụng một đám mây chỉ số để đánh giá xu hướng thị trường và hỗ trợ quan trọng, mức kháng cự, và hình dạng đường K để tạo ra tín hiệu giao dịch. Đồng thời, kết hợp lọc phạm vi để kiểm soát tần suất giao dịch và rủi ro.

Nguyên tắc chiến lược

Chiến lược này chủ yếu dựa trên một chỉ số đám mây và hình dạng đường K để đánh giá xu hướng thị trường. Một chỉ số đám mây bao gồm các đường chuyển tiếp, đường chuẩn và đường đám mây, mối quan hệ chéo của chúng có thể đánh giá xu hướng thị trường; đồng thời đường đám mây có thể hoạt động như hỗ trợ và kháng cự. Chiến lược này điều chỉnh độ nhạy của một đường đám mây bằng cách thiết lập các kết hợp các tham số khác nhau. Ngoài ra, chiến lược này thông qua nhận dạng hình dạng, tạo ra tín hiệu mua khi đi qua đường cơ sở trên đường chuyển tiếp và tạo ra tín hiệu bán khi đi qua.

Ngoài ra, chiến lược cũng đặt bộ lọc phạm vi ngày, chỉ giao dịch trong phạm vi ngày được chỉ định, điều này có thể kiểm soát tần suất giao dịch của chiến lược. Đồng thời, thiết lập dừng lỗ cũng có thể làm giảm rủi ro, tùy chọn stoploss sẽ dừng lỗ khi giá chạy theo hướng bất lợi.

Phân tích lợi thế

  • Sử dụng chỉ số một đám mây để đánh giá xu hướng thị trường, các tham số chỉ số có thể điều chỉnh độ nhạy
  • K-line nhận dạng hình dạng, tín hiệu giao dịch rõ ràng
  • Thiết lập bộ lọc phạm vi ngày để kiểm soát tần suất giao dịch
  • Cài đặt dừng lỗ, có thể dừng lỗ kịp thời, giảm nguy cơ

Phân tích rủi ro

  • Chỉ số một đám mây bị tụt hậu, có thể bỏ lỡ xu hướng thay đổi nhanh chóng
  • Bộ lọc phạm vi ngày có thể bỏ lỡ một số cơ hội giao dịch
  • Thiết lập dừng lỗ không đúng cách có thể làm tăng thiệt hại

Có thể cải thiện và kiểm soát rủi ro bằng cách điều chỉnh các tham số chỉ số của một đám mây, tối ưu hóa phạm vi ngày, sửa điểm dừng.

Hướng tối ưu hóa

  • Có thể thử nghiệm các kết hợp tham số khác nhau để chọn cấu hình chỉ số một đám mây tốt nhất
  • Có thể kết hợp với các chỉ số khác để tránh vấn đề chậm trễ của chỉ số một đám mây
  • Có thể thiết lập phạm vi ngày tối ưu hóa bằng cách quay trở lại
  • Có thể thiết lập dừng trượt động có điều kiện

Tóm tắt

Một đám mây đi qua mặt trăng hai sao hút tiền chiến lược tổng hợp sử dụng một đám mây chỉ số, nhận dạng K-đường, phạm vi lọc các phương pháp khác để đánh giá xu hướng thị trường, có thể nắm bắt rõ ràng hơn xu hướng. Bằng cách điều chỉnh tham số, kiểm soát rủi ro và các phương tiện khác, có thể có được hiệu quả chiến lược tốt hơn.

Mã nguồn chiến lược
/*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)