
یہ حکمت عملی ایک متحرک ٹرینڈ ٹریکنگ سسٹم ہے جس کی بنیاد ڈوئل موونگ ایوریج چینل پر ہے، جو کہ رسک مینجمنٹ میکانزم کے ساتھ مل کر ہے۔ یہ حکمت عملی تجارتی چینل کی تعمیر کے لیے دو سادہ موونگ ایوریجز (SMA) کا استعمال کرتی ہے، جہاں اوپری ریل سب سے زیادہ قیمت کے حساب سے چلتی اوسط کا استعمال کرتی ہے، اور نچلی ریل سب سے کم قیمت کے حساب سے چلنے والی اوسط کا استعمال کرتی ہے۔ یہ نظام انٹری سگنل کے طور پر اوپری ٹریک کو توڑتے ہوئے لگاتار پانچ K-لائن بند ہونے والی قیمتوں کا استعمال کرتا ہے، اور مسلسل پانچ K-لائن بند ہونے والی قیمتیں نچلے ٹریک سے نیچے آتی ہیں یا ایگزٹ سگنل کے طور پر سب سے اونچے مقام سے 25% پیچھے ہٹتی ہیں، تاکہ متحرک رجحان حاصل کیا جا سکے۔ ٹریکنگ اور رسک کنٹرول
حکمت عملی کا بنیادی اصول ڈبل موونگ ایوریج چینل کے ذریعے قیمتوں کے رجحانات کو پکڑنا اور داخلے اور باہر نکلنے کا سخت طریقہ کار قائم کرنا ہے:
یہ حکمت عملی ایک ڈبل موونگ ایوریج چینل کے ذریعے ایک مکمل ٹرینڈ ٹریکنگ ٹریڈنگ سسٹم بناتی ہے، جس میں داخلے کی سخت تصدیق اور ڈبل ایگزٹ میکانزم شامل ہیں، تاکہ موثر ٹرینڈ ٹریکنگ اور مؤثر رسک کنٹرول حاصل کیا جا سکے۔ حکمت عملی کے فوائد واضح نفاذ کی منطق اور کامل رسک کنٹرول ہیں، لیکن اسے پھر بھی مختلف مارکیٹ کے ماحول کے لیے پیرامیٹر کی اصلاح کی ضرورت ہے، اور مارکیٹ کے ماحول کی فلٹرنگ، ملٹی ٹائم پیریڈ کنفرمیشن، وغیرہ کو شامل کرکے اسے مزید بہتر کیا جا سکتا ہے۔ مجموعی طور پر، یہ ایک مکمل ساخت اور سخت منطق کے ساتھ ایک مقداری تجارتی حکمت عملی ہے، جو واضح رجحانات کے ساتھ مارکیٹ کے ماحول میں اطلاق کے لیے موزوں ہے۔
/*backtest
start: 2025-01-02 00:00:00
end: 2025-01-09 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Moving Average Channel (MAC)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Parameters for Moving Averages
upperMALength = input.int(10, title="Upper MA Length")
lowerMALength = input.int(8, title="Lower MA Length")
stopLossPercent = input.float(25.0, title="Stop Loss (%)", minval=0.1) / 100
// Calculate Moving Averages
upperMA = ta.sma(high, upperMALength)
lowerMA = ta.sma(low, lowerMALength)
// Plot Moving Averages
plot(upperMA, color=color.red, title="Upper Moving Average")
plot(lowerMA, color=color.green, title="Lower Moving Average")
// Initialize variables
var int upperCounter = 0
var int lowerCounter = 0
var float entryPrice = na
var float highestPrice = na
// Update counters based on conditions
if (low <= upperMA)
upperCounter := 0
else
upperCounter += 1
if (high >= lowerMA)
lowerCounter := 0
else
lowerCounter += 1
// Entry condition: 5 consecutive bars above the Upper MA
if (upperCounter == 5 and strategy.position_size == 0)
strategy.entry("Long", strategy.long)
highestPrice := high // Initialize highest price
// Update the highest price after entry
if (strategy.position_size > 0)
highestPrice := na(highestPrice) ? high : math.max(highestPrice, high)
// Exit condition: 5 consecutive bars below the Lower MA
if (lowerCounter == 5 and strategy.position_size > 0)
strategy.close("Long", comment="Exit: 5 bars below Lower MA")
// Stop-loss condition: Exit if market closes below 25% of the highest price since entry
stopLossCondition = low < highestPrice * (1 - stopLossPercent)
if (stopLossCondition and strategy.position_size > 0)
strategy.close("Long", comment="Exit: Stop Loss")