Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch của Ichimoku

Tác giả:ChaoZhang, Ngày: 2023-09-14 16:13:33
Tags:

Chiến lược logic

Chiến lược LONG-ONLY này sử dụng hệ thống Ichimoku Kinko Hyo cho các giao dịch. Nó kết hợp nhiều yếu tố Ichimoku để đi dài khi các tiêu chí được đáp ứng.

Logic giao dịch là:

  1. Tính toán chuyển đổi, đường cơ sở, dải dẫn đầu 1 & 2

  2. Xem xét dài khi gần là trên đám mây và đám mây đang tăng, với chuyển đổi trên đường cơ sở

  3. Ngoài ra, khoảng thời gian tụt hậu phải ở trên đám mây và giá để xác nhận xu hướng tăng

  4. Khi tất cả các tiêu chí được đáp ứng, đi dài

  5. Nếu khoảng thời gian chậm giảm xuống dưới giá hoặc mây, đóng dài

Chiến lược sử dụng các chỉ số của Ichimoku để xác nhận xu hướng, với đám mây là các điểm dừng năng động để kiểm soát rủi ro.

Ưu điểm

  • Ichimoku tổng hợp nhiều yếu tố để xác định xu hướng

  • Dừng động để tối đa hóa khóa lợi nhuận

  • Các quy tắc đơn giản và rõ ràng để thực hiện dễ dàng

Rủi ro

  • Ichimoku chậm và có thể bỏ lỡ cơ hội.

  • Cần tối ưu hóa cẩn thận các khoảng thời gian xem lại

  • Chỉ có một thời gian dài, nên những cơ hội ngắn ngủi đã bị bỏ lỡ.

Tóm lại

Chiến lược này tận dụng tổng hợp các chỉ số của Ichimoku để xác định hướng xu hướng. Với các thông số tối ưu, nó cung cấp một hệ thống chỉ dài đơn giản.


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Ichimoku Cloud", shorttitle="Doubled Ichimoku", overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)
conversionPeriods = input(20, minval=1, title="Conversion Line Length")
basePeriods = input(60, minval=1, title="Base Line Length")
laggingSpan2Periods = input(120, minval=1, title="Leading Span B Length")
displacement = input(30, minval=1, title="Displacement")
Stoploss = input(1, minval=0.1, title="Stoploss (% below cloud)") 
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
plot(conversionLine, color=#2962FF, title="Conversion Line")
plot(baseLine, color=#B71C1C, title="Base Line")
plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
	 title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
	 title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

bool TKcross = conversionLine > baseLine
bool aboveCloud = close > leadLine1 and close > leadLine2
bool greenCloud = leadLine1 > leadLine2
bool lagLong = close > leadLine1[2*displacement+1] and close > leadLine2[2*displacement+1] and close > close[displacement]
bool longCondition = false
bool close_trade = crossover(leadLine1[displacement], close) or crossover (leadLine2[displacement], close) or close < close[displacement] or crossover(baseLine, close)
var position_count = 0 

if (TKcross and aboveCloud and greenCloud and lagLong and position_count==0)
    position_count = 1
    strategy.entry(id="buy", long=true)

if (close_trade)
    strategy.close_all()
   // strategy.entry(id="sell", long=false)
    position_count = 0

    
//if (longCondition)
   
//    strategy.close("long", when=exit_trade)
//    strategy.exit("exit","long",stop=stop_level,limit=profit_level)

Thêm nữa