
Chiến lược này được thực hiện bằng cách tính toán các đường trung bình di chuyển nhanh, đường trung bình di chuyển chậm, MACD, để đánh giá xu hướng giá, xây dựng tín hiệu giao dịch giao dịch vàng và vàng, và kết hợp với lệnh dừng và dừng để theo dõi lỗ để khóa lợi nhuận, để theo dõi xu hướng liên tục.
Chiến lược này được xây dựng dựa trên ba chỉ số chính:
Đầu tiên, tính toán đường trung bình di chuyển nhanh và hai đường trung bình di chuyển chậm. Khi đường trung bình di chuyển nhanh vượt qua hai đường trung bình di chuyển chậm, nó sẽ tạo ra tín hiệu mua. Khi đường trung bình di chuyển nhanh vượt qua hai đường trung bình di chuyển chậm, nó sẽ tạo ra tín hiệu bán.
Tiếp theo, tính các chỉ số MACD, bao gồm các đường MACD, đường tín hiệu và đường thẳng. Các chỉ số đa đầu khi đường thẳng MACD> 0; Các chỉ số đầu trống khi đường thẳng MACD < 0. Như vậy sẽ hỗ trợ đánh giá độ tin cậy của tín hiệu quạt vàng.
Cuối cùng, kết hợp với Stop Loss Tracking Stop Loss. Sử dụng Stop Loss và Stop Loss để khóa lợi nhuận và kiểm soát rủi ro. Sử dụng Tracking Stop Loss để theo dõi lợi nhuận.
Chiến lược này có những ưu điểm sau:
Chiến lược này cũng có một số rủi ro:
Giải pháp đối phó với rủi ro:
Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:
Chiến lược này nói chung là một chiến lược đơn giản và hiệu quả sử dụng các chỉ số MACD để đánh giá xu hướng và theo dõi dừng lỗ. Ưu điểm là thực hiện theo dõi xu hướng và khóa lợi nhuận, có thể tùy biến mạnh mẽ, phù hợp với nhiều loại, là một chiến lược tối ưu hóa tham số phổ biến. Có một số rủi ro và không gian tối ưu hóa, nhưng nói chung là một chiến lược giao dịch thực tế đáng tin cậy.
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy('The Puria Method', shorttitle = 'Puria',overlay = true)
//=== GENERAL INPUTS ===
// short ma
maFastSource = input(defval = close, title = "Fast MA Source")
maFastLength = input(defval = 5, title = "Fast MA Period", minval = 1)
// long ma 1
maSlow1Source = input(defval = low, title = "Slow MA1 Source")
maSlow1Length = input(defval = 85, title = "Slow MA Period", minval = 1)
// long ma 2
maSlow2Source = input(defval = low, title = "Slow MA2 Source")
maSlow2Length = input(defval = 75, title = "Slow MA Period", minval = 1)
//macd
macdFastLength = input(defval = 12, title = "Fast MACD Period", minval = 1)
macdSlowLength = input(defval = 26, title = "Slow MACD Period", minval = 1)
macdSmaLength = input(defval = 9, title = "SMA MACD Period", minval = 1)
// the risk management inputs
inpTakeProfit = input(defval = 30, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 10, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 5, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
// if an input is less than 1, assuming not wanted so we assign 'na' value to disable it.
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
// === SERIES SETUP ===
maFast = ema(maFastSource, maFastLength)
maSlow1 = wma(maSlow1Source, maSlow1Length)
maSlow2 = wma(maSlow2Source, maSlow2Length)
[_, signal, histLine] = macd(close, macdFastLength, macdSlowLength, macdSmaLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = green, linewidth = 2, style = line, transp = 50)
slow1 = plot(maSlow1, title = "Slow MA1", color = red, linewidth = 2, style = line, transp = 50)
slow2 = plot(maSlow2, title = "Slow MA2", color = red, linewidth = 2, style = line, transp = 50)
// === LOGIC ===
signalUp = crossover(maFast, maSlow1) and crossover(maFast, maSlow2) and histLine > 0
signalDown = crossunder(maFast, maSlow1) and crossunder(maFast, maSlow2) and histLine < 0
// ===STRATEGY===
strategy.entry(id = "Long", long = true, when = signalUp)
strategy.entry(id = "Short", long = false, when = signalDown)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)