Strategi ini adalah strategi perdagangan forex jangka pendek yang memberi tumpuan kepada meningkatkan pengurusan risiko dengan menyesuaikan saiz kedudukan secara dinamik. Strategi ini mengira saiz kedudukan dinamik berdasarkan ekuiti akaun semasa dan peratusan risiko setiap perdagangan. Di samping itu, ia menetapkan syarat berhenti rugi dan mengambil keuntungan yang ketat untuk menutup kedudukan dengan cepat apabila harga bergerak tidak menguntungkan dan mengunci keuntungan apabila harga bergerak ke arah yang menguntungkan.
Dengan menggunakan saiz kedudukan dinamik dan peraturan stop-loss dan take-profit yang ketat, strategi ini mencapai keseimbangan antara kawalan risiko dan mengejar keuntungan dalam perdagangan jangka pendek. Logik strategi adalah mudah dan jelas, menjadikannya sesuai untuk pemula belajar dan menguasai. Walau bagaimanapun, berhati-hati masih diperlukan dalam aplikasi praktikal, dengan memberi perhatian kepada kawalan risiko dan pengoptimuman dan penambahbaikan berterusan berdasarkan perubahan pasaran. Dengan memperkenalkan lebih banyak penunjuk teknikal, mengoptimumkan logik stop-loss dan mengambil keuntungan, menetapkan parameter untuk keadaan pasaran yang berbeza, dan menggabungkan pengurusan kedudukan, kekuatan dan keuntungan strategi dapat ditingkatkan lagi.
/*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")