Chữ thập chuyển động trung bình Chữ thập vàng Chiến lược Chữ thập chết

Tác giả:ChaoZhang, Ngày: 2023-12-05 11:11:02
Tags:

img

Đây là một chiến lược giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch.

Chiến lược logic

Chiến lược chủ yếu dựa trên phương pháp phân tích kỹ thuật chứng khoán Nhật Bản được gọi là Ichimoku Kinko Hyo, sử dụng nhiều đường trung bình động như đường TENKAN và KIJUN để xác định hướng xu hướng thị trường.

Đầu tiên, đường TENKAN là đường 9 ngày đại diện cho xu hướng ngắn hạn; đường KIJUN là đường 26 ngày đại diện cho xu hướng trung hạn. Khi đường TENKAN vượt qua trên đường KIJUN, một tín hiệu mua được tạo ra. Khi đường TENKAN giảm xuống dưới đường KIJUN, một tín hiệu bán được tạo ra. Điều này tạo thành chiến lược đường chéo vàng và đường chéo chết cổ điển.

Thứ hai, chiến lược cũng giới thiệu đường Senkou Span A (SSA) và đường Senkou Span B (SSB). Đường SSA là mức trung bình của đường TENKAN và KIJUN trong khi đường SSB là mức trung bình động 52 ngày.

Cuối cùng, để lọc các tín hiệu giả, chiến lược này cũng kiểm tra vị trí giá so với Chikou Span (giá đóng bị trì hoãn 26 ngày) chỉ tạo ra tín hiệu mua khi giá dưới Chikou và bán tín hiệu khi giá trên Chikou.

Lợi ích

Đây là một chiến lược trung bình động rất điển hình.

  1. Sử dụng hai đường trung bình động của các giai đoạn khác nhau có hiệu quả đánh giá hướng xu hướng ngắn hạn và trung hạn đồng thời.

  2. Xu hướng dài hạn được xác định với các dải Kumo để tránh mua trong thị trường giảm dài hạn.

  3. So sánh giá với đường Chikou bị trì hoãn lọc ra rất nhiều tín hiệu giả và giảm các giao dịch không cần thiết.

Bằng cách sử dụng kỹ năng các chức năng khác nhau của đường trung bình động, chiến lược này có thể theo dõi xu hướng trên các khung thời gian ngắn, trung bình và dài.

Rủi ro

Những rủi ro chính của chiến lược này bao gồm:

  1. Các chiến lược trung bình động có xu hướng tạo ra nhiều tín hiệu giả.

  2. Chiến lược này tập trung rất nhiều vào các tín hiệu kỹ thuật mà không xem xét các yếu tố cơ bản.

  3. Không có cơ chế dừng lỗ được bao gồm. Một khi đánh giá hướng thị trường sai, thua lỗ có thể tích lũy.

Do đó, chúng ta cần các hệ thống trung bình động tiên tiến hơn, các quy tắc dừng lỗ thích hợp hoặc các tín hiệu cơ bản bổ sung, để tinh chỉnh thêm chiến lược này và giảm rủi ro.

Cơ hội gia tăng

Chiến lược này cũng có thể được cải thiện trong các khía cạnh sau:

  1. Tìm kiếm các bộ tham số ổn định và hiệu quả hơn thông qua nhiều backtests.

  2. Thêm các quy tắc dừng lỗ.

  3. bổ sung các tín hiệu cơ bản như sửa đổi ước tính lợi nhuận có chứa thông tin chi tiết về triển vọng của công ty.

  4. Tối ưu hóa chiến lược so sánh giá dòng Chikou với các giải pháp ổn định hơn.

  5. Bao gồm các tín hiệu lựa chọn cổ phiếu. Các yếu tố điểm như tỷ lệ PE và ROE có thể lọc các cổ phiếu chất lượng thấp hơn.

Kết luận

Đây là một chiến lược trung bình động rất điển hình và thực tế. Bằng cách đồng thời theo dõi xu hướng ngắn, trung bình và dài hạn, sử dụng các chức năng khác nhau của trung bình động, nó tạo ra các tín hiệu giao dịch với hiệu suất vững chắc. Chúng ta có thể cải thiện thêm bằng cách điều chỉnh tham số, thêm dừng lỗ, lựa chọn cổ phiếu vv. Nhìn chung đây là một chiến lược định lượng đầy hứa hẹn xứng đáng nghiên cứu và theo dõi.


/*backtest
start: 2022-11-28 00:00:00
end: 2023-12-04 00:00:00
period: 1d
basePeriod: 1h
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/
// © mdeous

//@version=4
strategy(
     title="Ichimoku Kinko Hyo Strategy", 
     shorttitle="Ichimoku Strategy", 
     overlay=true,
     pyramiding=0,
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,
     initial_capital=1000,
     currency="USD",
     commission_type=strategy.commission.percent,
     commission_value=0.0
     )

//
// SETTINGS
//

// Ichimoku

int TENKAN_LEN = input(title="Tenkan-Sen Length", defval=9, minval=1, step=1)
int KIJUN_LEN = input(title="Kijun-Sen Length", defval=26, minval=1, step=1)
int SSB_LEN = input(title="Senkou Span B Length", defval=52, minval=1, step=1)
int OFFSET = input(title="Offset For Chikou Span / Kumo", defval=26, minval=1, step=1)

// Strategy

int COOLDOWN = input(title="Orders Cooldown Period", defval=5, minval=0, step=1)
bool USE_CHIKOU = input(title="Use Imperfect Chikou Position Detection", defval=false)

//
// HELPERS
//

color _red = color.red
color _blue = color.blue
color _lime = color.lime
color _fuchsia = color.fuchsia
color _silver = color.silver
color _aqua = color.aqua

f_donchian(_len) => avg(lowest(_len), highest(_len))

//
// ICHIMOKU INDICATOR
//

float tenkan = f_donchian(TENKAN_LEN)
float kijun = f_donchian(KIJUN_LEN)
float ssa = avg(tenkan, kijun)
float ssb = f_donchian(SSB_LEN)

plot(tenkan, title="Tenkan", color=_silver)
plot(close, title="Chikou", offset=-OFFSET+1, color=_aqua)
_ssa = plot(ssa, title="SSA", offset=OFFSET-1, color=_lime)
_ssb = plot(ssb, title="SSB", offset=OFFSET-1, color=_red)
fill(_ssa, _ssb, color=ssa > ssb ? _lime : _fuchsia, transp=90)

//
// STRATEGY
//

// Check if price is "above or below" Chikou (i.e. historic price line):
// This detection is highly imperfect, as it can only know what Chikou position
// was 2*offset candles in the past, therefore if Chikou crossed the price
// line in the last 2*offset periods it won't be detected.
// Use of this detection is disabled by default,

float _chikou_val = close[OFFSET*2+1]
float _last_val = close[OFFSET+1]
bool above_chikou = USE_CHIKOU ? _last_val > _chikou_val : true
bool below_chikou = USE_CHIKOU ? _last_val < _chikou_val : true

// Identify short-term trend with Tenkan

bool _above_tenkan = min(open, close) > tenkan
bool _below_tenkan = max(open, close) < tenkan

// Check price position compared to Kumo

bool _above_kumo = min(open, close) > ssa
bool _below_kumo = max(open, close) < ssb

// Check if Kumo is bullish or bearish

bool bullish_kumo = ssa > ssb
bool bearish_kumo = ssa < ssb

// Correlate indicators to confirm the trend

bool bullish_trend = _above_tenkan and _above_kumo and bullish_kumo
bool bearish_trend = _below_tenkan and _below_kumo and bearish_kumo

// Build signals

bool buy1 = (close > open) and ((close > ssa) and (open < ssa)) // green candle crossing over SSA
bool buy2 = bullish_kumo and bearish_kumo[1] // bullish Kumo twist

bool sell1 = (close < open) and ((close < ssb) and (open > ssb)) // red candle crossing under SSB
bool sell2 = bearish_kumo and bullish_kumo[1] // bearish Kumo twist

bool go_long = below_chikou and (bullish_trend and (buy1 or buy2))
bool exit_long = above_chikou and (bearish_trend and (sell1 or sell2))

//
// COOLDOWN
//

f_cooldown() =>
    _cd_needed = false
    for i = 1 to COOLDOWN by 1
        if go_long[i]
            _cd_needed := true
            break
    _cd_needed

go_long := f_cooldown() ? false : go_long

//
// ORDERS
//

strategy.entry("buy", strategy.long, when=go_long)
strategy.close_all(when=exit_long)

//
// ALERTS
//

alertcondition(
     condition=go_long,
     title="Buy Signal",
     message="{{exchange}}:{{ticker}}: A buy signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})."
     )
alertcondition(
     condition=exit_long,
     title="Sell Signal",
     message="{{exchange}}:{{ticker}}: A sell signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})."
     )


Thêm nữa