Chiến lược này chủ yếu sử dụng EMA và chỉ số lệch chuẩn để xác định hướng xu hướng thông qua các tín hiệu chéo EMA và tìm kiếm các tín hiệu đột phá với lệch chuẩn để tạo ra tín hiệu mua và bán.
Chiến lược bao gồm ba phần chính:
Sự khác biệt EMA (s2): Tính toán sự khác biệt giữa EMA nhanh (ema_range) và EMA chậm (ema_watch) để xác định hướng xu hướng giá.
Kênh lệch chuẩn (s3): Xây dựng kênh trên và dưới dựa trên sự khác biệt EMA với số nhân của độ lệch chuẩn.
Cờ và tín hiệu: Tạo tín hiệu mua khi giá vượt qua đường ray trên từ dưới lên, và bán tín hiệu khi giá vượt qua đường ray dưới từ trên xuống.
Thông qua sự kết hợp các chỉ số này, nó có thể nắm bắt hướng xu hướng của giá và tạo ra tín hiệu mua và bán tại các điểm chính, thuộc về một chiến lược theo dõi xu hướng điển hình.
Chiến lược có những lợi thế sau:
Ngoài ra còn có một số rủi ro:
Các giải pháp:
Chiến lược có thể được tối ưu hóa theo các hướng sau:
Tóm lại, đây là một chiến lược theo dõi xu hướng điển hình sử dụng EMA và độ lệch chuẩn để xây dựng một hệ thống chỉ số và tạo ra các tín hiệu cờ tại các điểm chính. Những lợi thế nằm trong việc bắt được xu hướng và tránh các tín hiệu sai với độ lệch chuẩn. Những rủi ro chính đến từ các tín hiệu sai trong các thị trường giới hạn phạm vi và rủi ro rút vốn do không có stop loss. Bằng cách thêm các chỉ số đánh giá, tối ưu hóa các tham số và thêm stop loss, chiến lược có thể được tăng cường hơn nữa về tính ổn định và lợi nhuận. Nhìn chung, khuôn khổ chiến lược là hợp lý và có tiềm năng tối ưu hóa lớn.
/*backtest start: 2023-09-27 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ROCKET_EWO", overlay=true) ema_range = input(5) ema_watch = input(13) inval_a = input(open) inval_b = input(open) ratio = input(0) max = 5000 s2=ta.ema(inval_a, ema_range) - ta.ema(inval_b, ema_watch) c_color=s2 <= ratio ? 'red' : 'lime' s3 = s2 + (ta.stdev(open, 1)) * 5.618 plotshape(s3, color=color.white, style=shape.cross, location=location.abovebar, size=size.auto, show_last=max, transp=30, offset= 0) cr = s2 > 0 alertcondition(cr, title='[Rocket_EWO]', message='[Rocket_EWO]') buy = s2 > 1 sell = s2 < -1 txt = "🚀" + "\n"+ "\n"+ "\n"+ "\n" plotshape(buy, color=color.lime, style=shape.triangleup, location=location.belowbar ,color=color.white, text=txt, size=size.normal, show_last=max, transp=1, offset= -3) plotshape(not buy, color=color.red, style=shape.triangledown, location=location.belowbar, size=size.normal, show_last=max, transp=1, offset= 0) signalperiod = time s4 = ta.cross(s2, 0) ? time : na colsig= s2 <= ratio ? color.red : color.lime plotshape((time==s4)?7000:na,color=color.blue, style=shape.flag, location=location.abovebar, size=size.large, transp=1) longCondition = ta.crossover(s2, 1.618) if (longCondition) strategy.entry("LONG Id", strategy.long) shortCondition = ta.crossunder(s2, 1.618) if (shortCondition) strategy.entry("SHORT Id", strategy.short) strategy.close("LONG Id", when = s2 < 0.218) // strategy.risk.max_drawdown(75, strategy.percent_of_equity)