
یہ حکمت عملی کموڈٹی چینل انڈیکس (CCI) اشارے پر مبنی ہے جس کا مقصد زیادہ فروخت ہونے پر زیادہ سے زیادہ اور زیادہ خریدنے پر کم کرنا ہے۔ یہ اختیاری طور پر صرف رجحان کی سمت میں تجارت کو کنٹرول کرنے کے لئے انڈیکس کی متحرک اوسط (EMA) فلٹر کا استعمال کرتا ہے۔ یہ حکمت عملی ایک مقررہ فیصد یا اوسط حقیقی رینج (ATR) پر مبنی اسٹاپ نقصان بھی پیش کرتی ہے۔
مارکیٹ کے رجحانات کا اندازہ لگانے کے لئے سی سی آئی کا استعمال کریں
سی سی آئی ایک مخصوص مدت کے دوران اوسط قیمتوں کے ساتھ موجودہ قیمتوں کا موازنہ کرکے حرکیات کی پیمائش کرتا ہے
سی سی آئی 150 سے اوپر کا مطلب ہے زیادہ خریدنا اور -100 سے نیچے کا مطلب ہے زیادہ فروخت کرنا
اختیاری ای ایم اے فلٹر استعمال کریں
صرف ای ایم اے سے زیادہ قیمت پر زیادہ خریدیں ، ای ایم اے سے کم قیمت پر خالی کریں
ای ایم اے کا استعمال رجحان کی سمت کا تعین کرنے اور رجحان کے خلاف تجارت سے بچنے کے لئے
دو سٹاپ لاسٹ اسٹاپس دستیاب ہیں
فکسڈ فی صد پر مبنی سٹاپ نقصان: داخلہ قیمت کا ایک مقررہ فی صد کا استعمال کرتے ہوئے سٹاپ نقصان کی حد مقرر کریں
اے ٹی آر پر مبنی اسٹاپ نقصان: اے ٹی آر کے ضرب کو استعمال کرتے ہوئے اسٹاپ نقصان کا تعین کریں ، پھر اسٹاپ کا حساب لگانے کے لئے خطرہ سے واپسی کا تناسب
داخلے کی شرائط
سی سی آئی نے 100 لائنوں پر مزید کام کیا
سی سی آئی کے تحت 150 لائنوں کے ذریعے خالی جگہیں
اگر ای ایم اے کو چالو کیا گیا ہے تو ، صرف اس صورت میں زیادہ کام کریں جب قیمت ای ایم اے سے زیادہ ہو ، اور جب قیمت ای ایم اے سے کم ہو تو خالی ہوجائیں
کھیل کے شرائط
اسٹاپ نقصان کی سطح پر پہنچ گئی
سی سی آئی نے اوورلوڈ اور اوور سیل زون میں دوبارہ داخل ہونے پر بیعانہ کی قیمتوں میں کمی کی
نقشہ جات
سی سی آئی کا استعمال اوور بیئر اور اوور سیل کا تعین کرنے کے لئے کیا جاتا ہے ، جو سی سی آئی کے اشارے کا ایک کلاسیکی استعمال ہے۔
اختیاری ای ایم اے اس بات کو یقینی بناتا ہے کہ صرف رجحان کی سمت میں تجارت کی جائے اور الٹ جانے سے بچا جائے
دو سٹاپ اسٹاپ موڈ فراہم کرتا ہے ، اسٹاپ اسٹاپ کے پیرامیٹرز کو مارکیٹ کے مطابق ایڈجسٹ کیا جاسکتا ہے
سی سی آئی کے اشارے کے مطابق ایک بار پھر اوور بیئر اوور سیل زون میں داخل ہوکر پوزیشن کو صاف کریں ، اور رجحان کی واپسی کے منافع کو لاک کریں۔
نقشے میں سی سی آئی سگنل کو نمایاں کیا گیا ہے تاکہ اسے آسانی سے سمجھا جا سکے۔
حکمت عملی کی منطق واضح اور آسان ہے ، آسانی سے سمجھنے اور بہتر بنانے کے لئے
سی سی آئی کے اشارے میں تاخیر ہے ، جس سے غلط موڑ یا غلط سگنل پیدا ہوسکتے ہیں
غلط EMA پیرامیٹرز کی ترتیب سے رجحانات کو یاد کیا جاسکتا ہے یا حکمت عملی کو غیر فعال کردیا جاسکتا ہے
مارکیٹ میں تبدیلیوں کے ساتھ مطابقت پذیر ہونے کے لئے فی صد سٹاپ نقصان کی روک تھام، وسیع پیمانے پر پیرامیٹرز کو ایڈجسٹ کرنا
ATR سٹاپ نقصان سٹاپ وقفے کی مدت کے لئے حساس ہے اور بہترین پیرامیٹرز کو ایڈجسٹ کیا جانا چاہئے
واپسی کا خطرہ زیادہ ہے ، پوزیشن مینجمنٹ کو مناسب طریقے سے ایڈجسٹ کیا جانا چاہئے
اثر و رسوخ کے اشارے کے پیرامیٹرز کو مارکیٹ کے ماحول میں تبدیلی کے مطابق بروقت اندازہ کیا جانا چاہئے
مختلف ادوار کے لئے سی سی آئی پیرامیٹرز کا جائزہ لیں اور بہترین پیرامیٹرز کا مجموعہ تلاش کریں
مختلف ای ایم اے سائیکلوں کی جانچ کریں تاکہ رجحانات کا بہترین اندازہ لگایا جاسکے
سٹاپ نقصان اور سٹاپ بریک کے پیرامیٹرز کو ایڈجسٹ کریں تاکہ بہترین رسک ٹو ریٹرن حاصل کیا جاسکے
دوسرے فلٹر شرائط شامل کریں ، جیسے ٹرانزیکشن حجم ، جعلی سگنل کو مزید فلٹر کریں
ٹرینڈ لائنز یا گرافکس کے ساتھ مل کر شکل کا فیصلہ کرنے کے لئے ، اثر و رسوخ کو بہتر بنائیں
واپسی کے خطرے کو کنٹرول کرنے کے لئے پوزیشن مینجمنٹ کی حکمت عملی میں اضافہ کریں ، جیسے پوزیشنوں کو فکس کریں
مختلف مارکیٹ کے ماحول کے اعداد و شمار کا مکمل جائزہ ، متحرک ایڈجسٹمنٹ پیرامیٹرز
اس حکمت عملی میں سی سی آئی اشارے کے کلاسیکی اوپری خرید اوپری فروخت کے اصول کا استعمال کیا گیا ہے۔ ای ایم اے فلٹر شامل کرنے سے رجحان کی سمت کو کنٹرول کیا جاسکتا ہے۔ اس میں دو اسٹاپ لاس اسٹاپ موڈ فراہم کیے گئے ہیں تاکہ آسانی سے ایڈجسٹ کیا جاسکے۔ اسٹریٹجک منطق سادہ اور واضح ہے ، اسے سمجھنے اور بہتر بنانے میں آسان ہے۔ پیرامیٹرز کو ایڈجسٹ کرنے ، فلٹر شرائط میں اضافہ ، خطرے کے کنٹرول وغیرہ کے ذریعہ اس کی تاثیر کو مزید بہتر بنایا جاسکتا ہے۔
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alifer123
//@version=5
// strategy("CCI+EMA Strategy with Percentage or ATR TP/SL [Alifer]", shorttitle = "CCI_EMA_%/ATR_TP/SL", overlay=false,
// initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.045)
length = input(14, "CCI Length")
overbought = input.int(150, step = 10, title = "Overbought")
oversold = input.int(-140, step = 10, title = "Oversold")
src = hlc3
ma = ta.sma(src, length)
cci = (src - ma) / (0.015 * ta.dev(src, length))
// EMA
useEMA = input(true, "Use EMA", tooltip = "Only enters long when price is above the EMA, only enters short when price is below the EMA")
emaLength = input(55, "EMA Length")
var float ema = na
if useEMA
ema := ta.ema(src, emaLength)
// Take Profit and Stop Loss Method
tpSlMethod_percentage = input(true, "Percentage TP/SL", group="TP/SL Method")
tpSlMethod_atr = input(false, "ATR TP/SL", group="TP/SL Method")
// Percentage-based Take Profit and Stop Loss
tp_percentage = input.float(10.0, title="Take Profit (%)", step=0.1, group="TP/SL Method")
sl_percentage = input.float(10.0, title="Stop Loss (%)", step=0.1, group="TP/SL Method")
// ATR-based Take Profit and Stop Loss
atrLength = input(20, title="ATR Length", group="TP/SL Method")
atrMultiplier = input(4, title="ATR SL Multiplier", group="TP/SL Method")
riskRewardRatio = input(2, title="Risk Reward Ratio", group="TP/SL Method")
// Calculate TP/SL levels based on the selected method, or leave them undefined if neither method is selected
longTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 + tp_percentage / 100) : na
longSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 - sl_percentage / 100) : na
shortTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 - tp_percentage / 100) : na
shortSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 + sl_percentage / 100) : na
if tpSlMethod_atr
longSL := strategy.position_avg_price - ta.atr(atrLength) * atrMultiplier
longTP := ((strategy.position_avg_price - longSL) * riskRewardRatio) + strategy.position_avg_price
shortSL := strategy.position_avg_price + ta.atr(atrLength) * atrMultiplier
shortTP := ((strategy.position_avg_price - shortSL) * riskRewardRatio) - strategy.position_avg_price
// Enter long position when CCI crosses below oversold level and price is above EMA
longCondition = ta.crossover(cci, oversold) and (not useEMA or close > ema)
if longCondition
strategy.entry("Buy", strategy.long)
// Enter short position when CCI crosses above overbought level and price is below EMA
shortCondition = ta.crossunder(cci, overbought) and (not useEMA or close < ema)
if shortCondition
strategy.entry("Sell", strategy.short)
// Close long positions with Take Profit or Stop Loss
if strategy.position_size > 0
strategy.exit("Long Exit", "Buy", limit=longTP, stop=longSL)
// Close short positions with Take Profit or Stop Loss
if strategy.position_size < 0
strategy.exit("Short Exit", "Sell", limit=shortTP, stop=shortSL)
// Close positions when CCI crosses back above oversold level in long positions or below overbought level in short positions
if ta.crossover(cci, overbought)
strategy.close("Buy")
if ta.crossunder(cci, oversold)
strategy.close("Sell")
// Plotting
color_c = cci > overbought ? color.red : (cci < oversold ? color.green : color.white)
plot(cci, "CCI", color=color_c)
hline(0, "Middle Band", color=color.new(#787B86, 50))
obband = hline(overbought, "OB Band", color=color.new(#78867a, 50))
osband = hline(oversold, "OS Band", color=color.new(#867878, 50))
fill(obband, osband, color=color.new(#787B86, 90))