
اس حکمت عملی پر مبنی ہے متحرک چینل اشارے ڈیزائن ٹریڈنگ سگنل ، قیمتوں کے ٹوٹنے والے چینل کے اوپر اور نیچے کی بنیاد پر خرید اور فروخت کے سگنل پیدا کریں۔ حکمت عملی صرف کثیر سر تجارت کرتی ہے ، اگر فروخت کا اشارہ ہوتا ہے تو ، خالی پوزیشن سے خالی پوزیشن کی حالت میں۔
اس حکمت عملی میں SMA اوسط اور اے ٹی آر کی حقیقی اتار چڑھاؤ کی شدت کا استعمال کرتے ہوئے متحرک چینل کی تعمیر کی گئی ہے۔ چینل کے اوپری اور نچلے ریل بالترتیب:
ٹریک اپ = SMA + ATR * عنصر نیچے کی ٹریک = SMA - ATR * عنصر
جب قیمت اوپر سے گزرتی ہے تو ، خریدنے کا اشارہ پیدا ہوتا ہے۔ جب قیمت نیچے سے گزرتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔
چونکہ صرف زیادہ ہیڈ کیا جاتا ہے ، لہذا اگر فروخت کا اشارہ ہوتا ہے تو ، پوزیشن کھولنے کا سابقہ آرڈر منسوخ کردیا جاتا ہے ، اور پوزیشن خالی پوزیشن کی حیثیت سے خالی ہوجاتی ہے۔
اس کے علاوہ، اس نے کہا کہ اس کی حکمت عملی کا منطق یہ ہے:
اس حکمت عملی کے درج ذیل فوائد ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ردعمل:
یہ حکمت عملی مندرجہ ذیل پہلوؤں سے بہتر بنائی جا سکتی ہے۔
یہ حکمت عملی متحرک چینل کے اشارے پر مبنی ہے ، مارکیٹ کے رجحانات کو آسانی سے اور مؤثر طریقے سے پکڑتی ہے۔ حکمت عملی کی منطق واضح اور سمجھنے میں آسان ہے ، قیمتوں کے راستے کو توڑنے کے ذریعے ٹریڈنگ سگنل پیدا کرتی ہے۔ اگرچہ صرف کثیر سر اور کوئی باہر نکلنے کا طریقہ کار کافی نہیں ہے ، لیکن اس میں پیرامیٹرز کی اصلاح ، خالی سر ماڈیول شامل کرنے ، اسٹاپ نقصان شامل کرنے وغیرہ کے ذریعہ بہتری لائی جاسکتی ہے۔ مجموعی طور پر ، اس حکمت عملی میں بہتری کی گنجائش ہے ، جس میں گہرائی سے مطالعہ اور اطلاق کے قابل مقدار کی حکمت عملی ہے۔
/*backtest
start: 2023-11-24 00:00:00
end: 2023-12-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Keltner Channel Strategy", overlay=true)
source = close
useTrueRange = input(true)
length = input(20, minval=1)
mult = input(1.0)
ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)
bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1])
crossBcond = false
crossBcond := crossUpper ? true
: na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true
: na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )
if (cancelBcond)
strategy.cancel("KltChLE")
if (crossUpper)
strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")
if (cancelScond)
strategy.cancel("KltChSE")
if (crossLower)
strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)