
Strategi ini adalah strategi perdagangan forex garis pendek, idea utamanya adalah untuk meningkatkan pengurusan risiko dengan menyesuaikan saiz kedudukan secara dinamik. Strategi ini mengira saiz kedudukan yang dinamik berdasarkan kepentingan dan risiko perakaunan akaun semasa. Pada masa yang sama, strategi ini menetapkan syarat-syarat berhenti dan berhenti yang ketat, untuk melonggarkan kedudukan dengan cepat apabila terdapat perubahan harga yang tidak menguntungkan, mengawal risiko; dan mengunci keuntungan dengan tepat pada masanya apabila harga berubah ke arah yang menguntungkan.
Strategi ini mencapai keseimbangan antara kawalan risiko dan mengejar keuntungan dalam perdagangan garis pendek melalui skala kedudukan dinamik dan halangan berhenti yang ketat. Logik strategi mudah dan jelas, sesuai untuk pemula belajar. Walau bagaimanapun, dalam aplikasi praktikal, anda masih perlu berhati-hati, berhati-hati untuk mengawal risiko, dan terus mengoptimumkan dan memperbaiki strategi mengikut perubahan pasaran.
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Short High-Grossing Forex Pair - Enhanced Risk Management", overlay=true)
// Parameters
shortDuration = input.int(7, title="Short Duration (days)")
priceDropPercentage = input.float(30, title="Price Drop Percentage", minval=0, maxval=100)
riskPerTrade = input.float(2, title="Risk per Trade (%)", minval=0.1, maxval=100) / 100 // Increased risk for short trades
stopLossPercent = input.float(2, title="Stop Loss Percentage", minval=0) // Tighter stop-loss for short trades
takeProfitPercent = input.float(30, title="Take Profit Percentage", minval=0) // Take Profit Percentage
// Initialize variables
var int shortEnd = na
var float entryPrice = na
// Calculate dynamic position size
equity = strategy.equity
riskAmount = equity * riskPerTrade
pipValue = syminfo.pointvalue
stopLossPips = close * (stopLossPercent / 100)
positionSize = riskAmount / (stopLossPips * pipValue)
// Entry condition: Enter short position at the first bar with calculated position size
if (strategy.opentrades == 0)
strategy.entry("Short", strategy.short, qty=positionSize)
shortEnd := bar_index + shortDuration
entryPrice := close
alert("Entering short position", alert.freq_once_per_bar_close)
// Exit conditions
exitCondition = (bar_index >= shortEnd) or (close <= entryPrice * (1 - priceDropPercentage / 100))
// Stop-loss and take-profit conditions
stopLossCondition = (close >= entryPrice * (1 + stopLossPercent / 100))
takeProfitCondition = (close <= entryPrice * (1 - takeProfitPercent / 100))
// Exit the short position based on the conditions
if (strategy.opentrades > 0 and (exitCondition or stopLossCondition or takeProfitCondition))
strategy.close("Short")
alert("Exiting short position", alert.freq_once_per_bar_close)
// Plot entry and exit points for visualization
plotshape(series=strategy.opentrades > 0, location=location.belowbar, color=color.red, style=shape.labeldown, text="Short")
plotshape(series=strategy.opentrades == 0, location=location.abovebar, color=color.green, style=shape.labelup, text="Exit")
// Add alert conditions
alertcondition(strategy.opentrades > 0, title="Short Entry Alert", message="Entering short position")
alertcondition(strategy.opentrades == 0, title="Short Exit Alert", message="Exiting short position")