یہ حکمت عملی ایک جامع مقداری تجارتی نظام ہے جس میں T3 موونگ ایوریج ، ٹرینڈ فالونگ ، اور ٹریلنگ اسٹاپ نقصان کے طریقہ کار کو یکجا کیا گیا ہے۔ یہ حکمت عملی T3 موونگ ایوریج کا استعمال کرتے ہوئے مارکیٹ کے رجحان کی سمت کی نشاندہی کرتی ہے ، لیمن ٹرینڈ انڈیکیٹر اور TDFI اشارے کا استعمال کرتے ہوئے سگنلز کی تصدیق کرتی ہے ، اور اس میں رسک مینجمنٹ سسٹم شامل ہے جو رجحانات کو پکڑنے اور خطرات کو موثر انداز میں کنٹرول کرنے کے لئے ٹریلنگ اسٹاپس کو فکسڈ اسٹاپس کے ساتھ جوڑتا ہے۔
یہ حکمت عملی تین اہم اجزاء پر مشتمل ہے: رجحان کی نشاندہی ، سگنل کی تصدیق ، اور رسک مینجمنٹ۔ سب سے پہلے ، یہ T3 موونگ ایوریج کو بنیادی رجحان کی نشاندہی کے آلے کے طور پر استعمال کرتا ہے ، جو چھ گنا تیزی سے چلنے والی اوسط حساب کتاب کے ذریعے ہموار برقرار رکھتے ہوئے تاخیر کو کم کرتا ہے۔ دوسرا ، یہ لیموں ٹرینڈ انڈیکیٹر کا استعمال کرتے ہوئے قیمت کی اتار چڑھاؤ کی حدوں کا حساب کرتا ہے اور ٹی ڈی ایف آئی اشارے کے ساتھ سگنل فلٹر کرتا ہے ، جب قیمت اتار چڑھاؤ کی حد سے گزرتی ہے اور ٹی ڈی ایف آئی کی تصدیق ہوتی ہے تو ہی تجارتی سگنل تیار کرتا ہے۔ آخر میں ، یہ حکمت عملی رسک مینجمنٹ کے لئے ٹریلنگ اور فکسڈ اسٹاپس کا ایک مجموعہ استعمال کرتی ہے ، جس میں ٹریلنگ اسٹاپس کو قیمت کی حد تک پہنچنے کے بعد چالو کیا جاتا ہے جبکہ تحفظ کے طور پر فکسڈ اسٹاپس کو برقرار رکھا جاتا ہے۔
یہ ایک جامع ڈیزائن کردہ رجحان کی پیروی کرنے والی حکمت عملی ہے جو متعدد تکنیکی اشارے کے ذریعہ قابل اعتماد تجارتی سگنل اور موثر رسک مینجمنٹ کو یقینی بناتی ہے۔ حکمت عملی کا ماڈیولر ڈیزائن اچھی توسیع اور اصلاح کی صلاحیت فراہم کرتا ہے ، جس سے یہ درمیانی سے طویل مدتی رجحان کی پیروی کرنے والے نظاموں کی بنیاد کے طور پر موزوں ہے۔ عملی درخواست میں ، مخصوص تجارتی آلات اور مارکیٹ کے حالات کی بنیاد پر پیرامیٹرز کو بہتر بنانے کی سفارش کی جاتی ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Lemon Trend Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Input parameters lookbackPeriod = input.int(14, "Lookback Period") t3Length = input.int(200, "T3 MA Length") t3Factor = input.float(0.7, "T3 Factor", minval=0, maxval=1) // 移动止损参数 trailingStopPct = input.float(1.5, "移动止损百分比", minval=0.1, step=0.1) trailingStopActivationPct = input.float(1.0, "移动止损激活百分比", minval=0.1, step=0.1) // === T3 Moving Average Function === t3(src, length, factor) => // First EMA e1 = ta.ema(src, length) // Second EMA e2 = ta.ema(e1, length) // Third EMA e3 = ta.ema(e2, length) // Fourth EMA e4 = ta.ema(e3, length) // Fifth EMA e5 = ta.ema(e4, length) // Sixth EMA e6 = ta.ema(e5, length) c1 = -factor * factor * factor c2 = 3 * factor * factor + 3 * factor * factor * factor c3 = -6 * factor * factor - 3 * factor - 3 * factor * factor * factor c4 = 1 + 3 * factor + factor * factor * factor + 3 * factor * factor t3 = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3 // Calculate T3 MA t3ma = t3(close, t3Length, t3Factor) plot(t3ma, "T3 MA", color=color.blue) // === Lemon Trend Indicator === highLowDiff = high - low normalizedDiff = ta.sma(highLowDiff, lookbackPeriod) upperBand = ta.highest(high, lookbackPeriod) lowerBand = ta.lowest(low, lookbackPeriod) buySignal = ta.crossover(close, upperBand - normalizedDiff) sellSignal = ta.crossunder(close, lowerBand + normalizedDiff) // === TDFI Indicator === tdfiLength = input.int(14, "TDFI Length") tdfi = ta.ema(close - close[1], tdfiLength) tdfiSignal = ta.ema(tdfi, 9) // Plot signals plotshape(buySignal and tdfi > tdfiSignal and close > t3ma, "Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(sellSignal and tdfi < tdfiSignal and close < t3ma, "Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small) // === Strategy Logic === longCondition = buySignal and tdfi > tdfiSignal and close > t3ma shortCondition = sellSignal and tdfi < tdfiSignal and close < t3ma // 计算移动止损价格 var float longTrailingStop = na var float shortTrailingStop = na // 更新移动止损价格 if (strategy.position_size > 0) threshold = strategy.position_avg_price * (1 + trailingStopActivationPct / 100) if (high > threshold) stopPrice = high * (1 - trailingStopPct / 100) if (na(longTrailingStop) or stopPrice > longTrailingStop) longTrailingStop := stopPrice if (strategy.position_size < 0) threshold = strategy.position_avg_price * (1 - trailingStopActivationPct / 100) if (low < threshold) stopPrice = low * (1 + trailingStopPct / 100) if (na(shortTrailingStop) or stopPrice < shortTrailingStop) shortTrailingStop := stopPrice // Entry orders if (longCondition) strategy.entry("Long", strategy.long) longTrailingStop := na if (shortCondition) strategy.entry("Short", strategy.short) shortTrailingStop := na // Calculate stop loss and take profit levels longStopLoss = ta.lowest(low, lookbackPeriod) shortStopLoss = ta.highest(high, lookbackPeriod) // Exit conditions with fixed R:R fixedRR = input.float(1.8, "Fixed Risk:Reward Ratio") partialExitPct = input.float(50.0, "Partial Exit Percentage", minval=0, maxval=100) / 100 // 综合移动止损和固定止损 if (strategy.position_size > 0) longTakeProfit = strategy.position_avg_price + (strategy.position_avg_price - longStopLoss) * fixedRR stopPrice = na(longTrailingStop) ? longStopLoss : math.max(longStopLoss, longTrailingStop) strategy.exit("Long Exit", "Long", qty_percent=partialExitPct, stop=stopPrice, limit=longTakeProfit) if (strategy.position_size < 0) shortTakeProfit = strategy.position_avg_price - (shortStopLoss - strategy.position_avg_price) * fixedRR stopPrice = na(shortTrailingStop) ? shortStopLoss : math.min(shortStopLoss, shortTrailingStop) strategy.exit("Short Exit", "Short", qty_percent=partialExitPct, stop=stopPrice, limit=shortTakeProfit) // 绘制移动止损线 plot(strategy.position_size > 0 ? longTrailingStop : na, "Long Trailing Stop", color=color.red, style=plot.style_linebr) plot(strategy.position_size < 0 ? shortTrailingStop : na, "Short Trailing Stop", color=color.red, style=plot.style_linebr)