
یہ حکمت عملی ایک ذہین ٹریڈنگ سسٹم ہے جس میں 9 دوروں اور 21 دوروں کی اشاریہ حرکت پذیر اوسط ((EMA) کو بنیادی اشارے کے طور پر استعمال کیا جاتا ہے۔ اس حکمت عملی میں متحرک اسٹاپ نقصانات کا طریقہ کار شامل ہے ، جو ای ایم اے اشارے کے کراس سگنل کی اصل وقت کی نگرانی کے ذریعے ٹریڈنگ کے احکامات کو خود بخود انجام دیتا ہے۔ نظام فی صد ٹریکنگ اسٹاپ اور فکسڈ تناسب اسٹاپ سسٹم کو اپناتا ہے ، جو تجارت کی حفاظت کو یقینی بناتا ہے اور منافع بخش ہونے کی صلاحیت کو یقینی بناتا ہے۔
اسٹریٹجی چلانے کا بنیادی منطق تیز EMA ((9 سائیکل) اور سست EMA ((21 سائیکل) کے کراس رشتہ پر مبنی ہے۔ جب تیز لائن اوپر کی طرف سست لائن کو عبور کرتی ہے تو ، نظام کو بیئرنگ سگنل کے طور پر پہچانا جاتا ہے ، خود بخود خالی پوزیشن اور کثیر پوزیشن کھولتا ہے۔ جب تیز لائن نیچے کی طرف سست لائن کو عبور کرتی ہے تو ، نظام کو بیئرنگ سگنل کے طور پر پہچانا جاتا ہے ، خود بخود خالی پوزیشن اور کثیر پوزیشن کھولتا ہے۔ اس کے علاوہ ، نظام میں متحرک اسٹاپ نقصان کا طریقہ کار بھی موجود ہے۔ کثیر پوزیشن رکھنے کے دوران ، اسٹاپ نقصان کی قیمت کھلی پوزیشن کی قیمت سے 5٪ نیچے رکھی جاتی ہے ، اور اسٹاپ نقصان کی قیمت کھلی پوزیشن کی قیمت سے 10٪ اوپر رکھی جاتی ہے۔ خالی پوزیشن رکھنے کے دوران ، اسٹاپ نقصان کی قیمت کھلی پوزیشن کی قیمت سے 5٪ اوپر رکھی جاتی ہے ، اور اسٹاپ نقصان کی قیمت کھلی پوزیشن کی قیمت سے 10٪ نیچے رکھی جاتی ہے۔
یہ حکمت عملی ایک منظم ، منطقی طور پر واضح خودکار تجارتی نظام ہے۔ EMA کراس سگنل کے ذریعے تجارتی فیصلے کرنے کے لئے ، متحرک اسٹاپ لاس اسٹاپ میکانیزم کے ساتھ ، یہ رجحان کی منڈی میں بہتر کارکردگی کا مظاہرہ کرنے کے قابل ہے۔ لیکن مارکیٹ کے ماحول میں ہونے والی تبدیلیوں پر دھیان دینے ، پیرامیٹرز کی ترتیب کو مناسب طریقے سے ایڈجسٹ کرنے اور خطرے پر قابو پانے کے لئے استعمال کرنے کی ضرورت ہے۔ مسلسل اصلاح اور بہتری کے ساتھ ، اس حکمت عملی کو ایک مستحکم اور قابل اعتماد تجارتی آلہ بننے کی امید ہے۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Cross Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// 添加策略参数设置
var showLabels = input.bool(true, "显示标签")
var stopLossPercent = input.float(5.0, "止损百分比", minval=0.1, maxval=20.0, step=0.1)
var takeProfitPercent = input.float(10.0, "止盈百分比", minval=0.1, maxval=50.0, step=0.1)
// 计算EMA
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
// 绘制EMA线
plot(ema9, "EMA9", color=color.blue, linewidth=2)
plot(ema21, "EMA21", color=color.red, linewidth=2)
// 检测交叉
crossOver = ta.crossover(ema9, ema21)
crossUnder = ta.crossunder(ema9, ema21)
// 格式化时间显示 (UTC+8)
utc8Time = time + 8 * 60 * 60 * 1000
timeStr = str.format("{0,date,MM-dd HH:mm}", utc8Time)
// 计算止损止盈价格
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent / 100)
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent / 100)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent / 100)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent / 100)
// 交易逻辑
if crossOver
if strategy.position_size < 0 // 如果持有空仓
strategy.close("做空") // 先平掉空仓
strategy.entry("做多", strategy.long) // 开多仓
if showLabels
label.new(bar_index, high, text="做多入场\n" + timeStr, color=color.green, textcolor=color.white, style=label.style_label_down, yloc=yloc.abovebar)
if crossUnder
if strategy.position_size > 0 // 如果持有多仓
strategy.close("做多") // 先平掉多仓
strategy.entry("做空", strategy.short) // 开空仓
if showLabels
label.new(bar_index, low, text="做空入场\n" + timeStr, color=color.red, textcolor=color.white, style=label.style_label_up, yloc=yloc.belowbar)
// 设置止损止盈
if strategy.position_size > 0 // 多仓止损止盈
strategy.exit("多仓止损止盈", "做多", stop=longStopLoss, limit=longTakeProfit)
if strategy.position_size < 0 // 空仓止损止盈
strategy.exit("空仓止损止盈", "做空", stop=shortStopLoss, limit=shortTakeProfit)