Chiến lược giao dịch tăng giá của Starbucks

Tác giả:ChaoZhang, Ngày: 2023-09-18 15:30:15
Tags:

Tổng quan

Chiến lược này xác định các mô hình nến búa tăng và sử dụng chỉ số MACD để xác định hướng xu hướng cho xu hướng sau các giao dịch. Trong một thị trường bò, đi dài khi một búa tăng xuất hiện trong khi MACD tăng. Đóng vị trí khi MACD chuyển hướng giảm.

Chiến lược logic

Xác định thép tăng bằng cách tính tỷ lệ body-to-range. Sử dụng MACD để xác định hướng xu hướng. Khi MACD tăng, mua dài khi tín hiệu thép tăng xuất hiện. Đặt dừng lỗ và kích thước vị trí. Ra khi MACD giảm.

Ưu điểm

  • Nhận dạng búa tăng là đơn giản và rõ ràng
  • MACD xác định hiệu quả sự đảo ngược xu hướng
  • Theo dõi xu hướng tránh những vấn đề
  • Logic đơn giản và thẳng thắn, dễ thực hiện

Rủi ro

  • Nhận dạng mô hình không hoàn hảo, tín hiệu có thể bị bỏ lỡ
  • MACD xác định sự đảo ngược xu hướng có trễ
  • Tần số giao dịch thấp không phù hợp với giao dịch tần số cao
  • Các điểm đảo ngược chính xác không thể được xác định, rủi ro mất mát

Các rủi ro có thể được giảm thiểu bằng cách nới lỏng các tiêu chí mô hình, rút ngắn các tham số MACD, thêm các chỉ số thứ cấp v.v.

Những cải tiến

  • Tối ưu hóa các quy tắc nhận dạng mẫu búa
  • Kiểm tra các cài đặt tham số MACD khác nhau
  • Xem xét thêm các chỉ số khác để xác định sự đảo ngược
  • Kiểm tra độ bền trên các sản phẩm khác nhau

Kết luận

Chiến lược này tích hợp phân tích mô hình và chỉ số để xác định xu hướng, cho phép lợi nhuận ổn định.


/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
basePeriod: 15m
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/
// © FenixCapital

//@version=4
strategy("Starbux", overlay=true)


//VARIABLES

//Candlestick Variables
body=close-open
range=high-low
middle=(open+close)/2
abody=abs(body)
arange=abs(range)
ratio=abody/range
longcandle= (ratio>0.6)
bodytop=max(open, close)
bodybottom=min(open, close)
shadowtop=high-bodytop
shadowbottom=bodybottom-low

//Closing Variables

macd=macd(close,12,26,9)
[macdLine, signalLine, histLine] = macd(close, 12, 26, 9)
//plot(macdLine, color=color.blue)
//plot(signalLine, color=color.orange)
//plot(histLine, color=color.red, style=plot.style_histogram)

rsi=rsi(close,14)

sma50= sma(close,50)
sma200= sma(close,200)

exitrsi=rsi > 76
exitmacd=macdLine >0 and signalLine>0
//exitmacd=crossunder(macdLine,signalLine)
stopprice= crossunder(sma50,sma200)

//Candlestick Plotting
blh = (arange*0.33>=abody and close>open and shadowbottom>=abody*2 and shadowtop<=arange*0.1)
plotshape(blh, title= "Bullish Hammer", location=location.belowbar, color=color.lime, style=shape.arrowup, text="Bull\nHammer")

//beh = (arange*0.25>=abody and close<open and shadowtop>=abody*2 and shadowbottom<=arange*0.05)
//plotshape(beh, title= "Bearish Hammer", color=color.orange, style=shape.arrowdown, text="Bear\nHammer")

//bpu = (open>close and close>low and shadowbottom>2*abody)
//plotshape(bpu, title= "Black Paper Umbrella", color=color.red, style=shape.arrowdown, text="Black\nPaper\nUmbrella")

//Trend Signal
bull5= sma50 > sma200
bullmacd=macdLine>=0 and signalLine>=0
bearmacd=macdLine<= 0 and signalLine<=0

//Trading Algorithm
longCondition = blh and bearmacd and volume>volume[1]

if (longCondition)
    strategy.order("Buy", true, 1, when=longCondition)
strategy.risk.max_position_size(10)
//strategy.risk.max_drawdown(25,strategy.percent_of_equity)

exitlong = exitmacd
if (exitlong)
    strategy.close_all()


Thêm nữa