
اس حکمت عملی میں کینٹینر چینل ، سی سی آئی اشارے اور آر ایس آئی اشارے اور تجارت کی مقدار کی شرائط کو شامل کیا گیا ہے ، جس سے ایک زیادہ مکمل رجحانات کو ختم کرنے کی حکمت عملی حاصل کی جاسکتی ہے۔ اس حکمت عملی میں خرید و فروخت کے اشارے پیدا ہوسکتے ہیں جب قیمتوں کے اہم علاقوں کو توڑنے ، اشارے کے تجارتی اشارے اور بڑے پیمانے پر تجارت کی مقدار ظاہر ہوتی ہے۔ اس کے ساتھ ہی ، حکمت عملی میں یکساں طور پر رجحانات کا فیصلہ شامل کیا گیا ہے ، جس سے واضح رجحانات کی عدم موجودگی میں تجارت سے گریز کیا جاسکتا ہے۔
اس حکمت عملی میں ٹریڈنگ کے فیصلے بنیادی طور پر مندرجہ ذیل اشارے اور شرائط پر مبنی ہوتے ہیں:
کنٹینر چینل: ایک مخصوص دورانیے کے دوران ٹائپ قیمت اور اے ٹی آر کے حساب سے اوپر اور نیچے ریل کی بنیاد پر ، قیمتوں کا تعین کرنے کے لئے کہ آیا یہ چینل کے علاقے میں ہے۔
سی سی آئی: قیمتوں میں اضافے یا کمی کا اندازہ لگانے کے لئے استعمال کیا جاتا ہے۔
آر ایس آئی: قیمتوں میں اضافے یا کمی کا اندازہ لگانے میں مدد کرتا ہے۔
ٹرانزیکشن حجم: ٹرانزیکشن حجم کی ضرورت ہوتی ہے جو ٹرانزیکشن پیدا کرنے کے لئے ایک خاص اوسط سے تجاوز کرے۔
اوسط رجحان فلٹر: قیمتوں کے مجموعی رجحان کی سمت کا اندازہ لگانے کے لئے SMA ، EMA اور دیگر اوسط اشارے کے ساتھ مل کر۔
رجحان کی سمت کے مطابق ، اگر قیمت کینٹینر چینل کو توڑ دیتی ہے اور سی سی آئی اور آر ایس آئی اشارے سگنل دیتے ہیں اور تجارت میں نمایاں اضافہ ہوتا ہے تو ، خرید و فروخت کے اشارے پیدا ہوتے ہیں۔
اس حکمت عملی میں متعدد اشارے اور شرائط شامل ہیں جو غیر یقینی تجارتی سگنل کو مؤثر طریقے سے فلٹر کرسکتے ہیں ، جس سے تجارتی فیصلے زیادہ مستحکم اور قابل اعتماد ہوجاتے ہیں۔ اس کے اہم فوائد یہ ہیں:
رجحانات کو فلٹر کرنے کے طریقہ کار سے غیر واضح مارکیٹ کے جھٹکے سے بچا جاسکتا ہے۔
کینٹنا کوریڈور نے قیمتوں کو اہم علاقوں میں توڑ دیا.
سی سی آئی اور آر ایس آئی نے اوورلوڈ اور اوور سیل سگنل کو زیادہ درست طریقے سے ٹائم کیا۔
بڑی تعداد میں لین دین کی شرائط کے تحت ، کچھ جعلی توڑ سے بچا جاسکتا ہے۔
اس حکمت عملی میں مندرجہ ذیل خطرات شامل ہیں:
رجحان کا تعین کرنے کا طریقہ کار نامکمل ہے اور اس سے زیادہ مضبوط رجحان کے مواقع ضائع ہوسکتے ہیں۔ مختلف اوسط لائن پیرامیٹرز کی جانچ کی جاسکتی ہے۔
اشارے کے پیرامیٹرز کو غلط ترتیب دیا گیا ہے ، جس سے اہم تجارتی اوقات سے محروم ہوسکتے ہیں یا غلط سگنل پیدا ہوسکتے ہیں۔ پیرامیٹرز کو بہتر بنایا جاسکتا ہے۔
جب حجم میں اضافے کا اثر واضح نہیں ہوتا ہے تو ، ایک خاص خطرہ ہے کہ جعلی بریک آؤٹ ہو۔ مختلف حجم میں اضافے کی ضرب کی جانچ کی جاسکتی ہے۔
اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:
مختلف اقسام اور لمبائی کی اوسط لائنوں کی جانچ کریں اور رجحان فلٹرنگ پیرامیٹرز کو تلاش کریں جو زیادہ مناسب ہیں۔
کنٹینر چینل ، سی سی آئی ، آر ایس آئی اور دیگر اشارے کے پیرامیٹرز کو بہتر بنائیں تاکہ سگنل زیادہ درست ہو۔
مختلف ٹرانزیکشنز کو آزمائیں تاکہ زیادہ سے زیادہ مناسب ضرب تلاش کریں.
اسٹاپ نقصان کی حکمت عملی شامل کرنے پر غور کیا جاسکتا ہے تاکہ ایک ہی تجارت میں زیادہ سے زیادہ نقصان کو کنٹرول کیا جاسکے۔
مجموعی طور پر ، اس حکمت عملی میں کیلٹنر چینل ، سی سی آئی ، آر ایس آئی اشارے اور حجم کی شرائط شامل ہیں ، جس سے ایک نسبتا complete مکمل ٹرینڈ فلٹرنگ ٹریڈنگ حکمت عملی تشکیل دی گئی ہے۔ جب قیمت ایک اہم علاقے کو توڑتی ہے ، اشارے ایک تجارتی سگنل دیتے ہیں ، اور بڑے پیمانے پر تجارت ہوتی ہے تو ، اس سے خرید و فروخت کے سگنل پیدا ہوسکتے ہیں۔ اس کے ساتھ ہی ، بغیر کسی واضح رجحان کی تجارت سے بچنے کے لئے ایک حرکت پذیر اوسط کا استعمال کرتے ہوئے رجحان کا فیصلہ کریں۔ اس حکمت عملی میں ایسے فوائد ہیں جیسے غیر واضح اتار چڑھاؤ والی مارکیٹ سے بچنے ، اہم توڑ کی شناخت ، نسبتا accurate درست اوورلوڈ / اوور سیل سگنل حاصل کرنے ، اور کچھ جھوٹے توڑنے سے بچنے جیسے فوائد ہیں۔ پیرامیٹرز کی غیر ترتیب اور حجم میں بے مثال اضافے کا خطرہ ہے۔
/*backtest
start: 2024-01-27 00:00:00
end: 2024-02-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Custom Keltner CCI Strategy with Trend Filter", overlay=true )
// Input Parameters for allowing long and short trades
allowLong = input(true, title="Allow Long Trades")
allowShort = input(true, title="Allow Short Trades")
// Trend Filter Inputs
maType = input(title="MA Type", options=["OFF", "SMA", "EMA", "SMMA", "CMA", "TMA"], defval="OFF")
trendFilterMethod = input(title="Trend Filter Method", options=["OFF", "Normal", "Reversed"], defval="OFF")
maLength = input(14, title="MA Length")
// Other Input Parameters
lengthKC = input(30, title="Keltner Channels Length")
multKC = input(0.7, title="Keltner Channels Multiplier")
lengthCCI = input(5, title="CCI Length")
overboughtCCI = input(75, title="CCI Overbought Level")
oversoldCCI = input(-75, title="CCI Oversold Level")
rsiPeriod = input(30, title="RSI Period")
rsiOverbought = input(60, title="RSI Overbought Level")
rsiOversold = input(60, title="RSI Oversold Level")
volumeMultiplier = input(0, title="Volume Multiplier", type=input.float, step=0.1, minval=0)
// Define Moving Averages
var float maValue = na
if (maType == "SMA")
maValue := sma(close, maLength)
else if (maType == "EMA")
maValue := ema(close, maLength)
else if (maType == "SMMA")
maValue := na(maValue[1]) ? sma(close, maLength) : (maValue[1] * (maLength - 1) + close) / maLength
else if (maType == "CMA")
maValue := na(maValue[1]) ? sma(close, maLength) : (sma(close, maLength) + (sma(close, maLength) - maValue[1])) / 2
else if (maType == "TMA")
maValue := sma(sma(close, round(maLength/2)), round(maLength/2)+1)
// Entry Conditions with Trend Filter
longCondition = allowLong and (trendFilterMethod == "OFF" or (trendFilterMethod == "Normal" and close > maValue) or (trendFilterMethod == "Reversed" and close < maValue))
shortCondition = allowShort and (trendFilterMethod == "OFF" or (trendFilterMethod == "Normal" and close < maValue) or (trendFilterMethod == "Reversed" and close > maValue))
// Keltner Channels
typicalPrice = hlc3
middleLine = sma(typicalPrice, lengthKC)
range = multKC * atr(lengthKC)
upperChannel = middleLine + range
lowerChannel = middleLine - range
// CCI
cci = cci(close, lengthCCI)
// RSI
rsi = rsi(close, rsiPeriod)
// Volume
volCondition = volume > sma(volume, 50) * volumeMultiplier
// Combined Entry Conditions with Trend Filter
longCondition := longCondition and cci < oversoldCCI and low < lowerChannel and rsi < rsiOversold and volCondition
shortCondition := shortCondition and cci > overboughtCCI and high > upperChannel and rsi > rsiOverbought and volCondition
// Execute orders at the open of the new bar after conditions are met
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit Conditions
strategy.close("Long", when = cci > 0)
strategy.close("Short", when = cci < 0)
// Plotting
plot(upperChannel, color=color.red, linewidth=1)
plot(lowerChannel, color=color.green, linewidth=1)
hline(overboughtCCI, "Overbought", color=color.red)
hline(oversoldCCI, "Oversold", color=color.green)