
یہ حکمت عملی ایک جامع مقداری تجارتی نظام ہے جس میں T3 اوسط ، رجحان کی پیروی اور متحرک اسٹاپ کا طریقہ کار شامل ہے۔ حکمت عملی مارکیٹ کی رجحان کی سمت کو T3 متحرک اوسط کے ذریعہ پہچانتی ہے ، جبکہ لیمون ٹرینڈ اشارے اور ٹی ڈی ایف آئی اشارے کا استعمال کرتے ہوئے سگنل کی تصدیق کرتی ہے ، اور متحرک اسٹاپ اور فکسڈ اسٹاپ کے ساتھ مل کر رسک مینجمنٹ سسٹم کے ساتھ مل کر رجحانات پر گرفت اور خطرے پر موثر کنٹرول حاصل کرتی ہے۔
اس حکمت عملی کے بنیادی حصے میں تین اہم حصے شامل ہیں: رجحان کی شناخت ، سگنل کی تصدیق اور خطرے کا انتظام۔ پہلے ، T3 منتقل اوسط کو رجحان کی شناخت کے بنیادی ٹول کے طور پر استعمال کرتے ہوئے ، 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)