Chiến lược giao dịch trung bình động tỷ lệ vàng là một chiến lược giao dịch định lượng cố gắng sử dụng chéo vàng của trung bình động ngắn hạn và dài hạn làm tín hiệu giao dịch. Chiến lược cũng kết hợp chỉ số RSI để tránh mở các vị trí ở mức cao địa phương để kiểm soát rủi ro.
Chiến lược này chủ yếu dựa trên hai đường trung bình động: MA 200 ngày là MA dài hạn và MA 10 ngày là MA ngắn hạn. Một tín hiệu mua được tạo ra khi MA ngắn hạn vượt qua MA dài hạn; Một tín hiệu bán được tạo ra khi MA ngắn hạn vượt qua dưới MA dài hạn. Đây là đường chéo vàng nổi tiếng. Chiến lược cũng kết hợp chỉ số RSI để chiến lược chỉ mở các vị trí dài trong khu vực quá bán khi RSI dưới 30.
Cụ thể, một vị trí dài sẽ được mở nếu đáp ứng các điều kiện sau:
Các điều kiện đóng thế là như sau:
Chiến lược có những lợi thế sau:
Chiến lược này cũng có một số rủi ro:
Để giảm thiểu những rủi ro này, các biện pháp tối ưu hóa sau đây có thể được xem xét:
Có chỗ cho việc tối ưu hóa thêm chiến lược:
Tóm lại, chiến lược giao dịch tỷ lệ vàng là một chiến lược theo xu hướng đơn giản và hiệu quả. Nó tạo ra các cơ hội giao dịch bằng cách sử dụng các tín hiệu chéo MA cổ điển và có điểm dừng để kiểm soát rủi ro. Chiến lược có thể được cải thiện hơn nữa thông qua sự kết hợp nhiều chỉ số, tối ưu hóa tham số, học máy, vv để có được hiệu suất chiến lược tốt hơn.
/*backtest start: 2022-12-29 00:00:00 end: 2024-01-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/ // © tsujimoto0403 //@version=5 strategy("聖杯", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100) //ユーザーインプットの準備 malongperiod=input.int(200,"長期移動平均BASE200",group = "パラメータ") mashortperiod=input.int(10,"長期移動平均BASE10",group = "パラメータ") stop=input.int(20,title = "損切の割合%",group = "パラメータ") profit=input.int(5,title = "利食いの割合%",group = "パラメータ") startday=input(title="バックテストを始める日", defval=timestamp("01 Jan 2018 13:30 +0000"), group="期間") endday=input(title="バックテスを終わる日", defval=timestamp("1 Jan 2099 19:30 +0000"), group="期間") //使う変数 var float stopprice=0 var float takeprofit=0 //とりあえず使うインジケーターをプロット malong=ta.sma(close,malongperiod) mashort=ta.sma(close,mashortperiod) plot(malong,color=color.aqua,linewidth = 2) plot(mashort,color=color.yellow,linewidth = 2) bgcolor(ta.rsi(close,3)<30?color.rgb(229, 86, 86, 48):na) //期間条件 datefilter = true //エントリー条件 if close>malong and close<mashort and strategy.position_size == 0 and datefilter and ta.rsi(close,3)<30 strategy.entry(id="long", direction=strategy.long) if strategy.position_size>0 strategy.exit(id="long",stop=(1-0.01*stop)*strategy.position_avg_price) //売り if strategy.position_size > 0 and close>mashort and close<low[1] strategy.close(id ="long")