یہ حکمت عملی بولنگر بینڈ اشارے اور حجم اشارے کو یکجا کرتی ہے تاکہ بولنگر بینڈ کے اوپری بینڈ کے اوپر مضبوط رفتار سے باہر نکلنے کے مواقع کی نشاندہی کی جاسکے جب تجارتی حجم زیادہ ہو ، اور طویل پوزیشنوں میں داخل ہو۔ یہ رجحان کی سمت کا تعین کرنے اور مردہ پوزیشنوں کو برقرار رکھنے کے خطرے کو کم کرنے کے لئے حرکت پذیر اوسط اشارے کا بھی استعمال کرتا ہے۔
اس حکمت عملی میں بنیادی طور پر تین عوامل پر غور کیا جاتا ہے: قیمت کی سطح ، رفتار اور رجحان۔ جب قیمت بولنگر کے اوپری بینڈ کو خرید زون میں توڑ دیتی ہے تو ، تجارتی حجم میں اضافے سے مضبوط رفتار اور سرمایہ کی آمد کی نشاندہی ہوتی ہے۔ یہ طویل پوزیشن میں داخل ہونے کا صحیح وقت ہے۔ پھر یہ مردہ پوزیشنوں کو برقرار رکھنے سے بچنے کے لئے مارکیٹ کے رجحان کا تعین کرنے کے لئے حرکت پذیر اوسط کا استعمال کرتا ہے۔ قیمت کی کارروائی ، رفتار اور رسک کنٹرول کو جوڑ کر ، اس کا مقصد مضبوط رجحانات سے منافع حاصل کرنا ہے۔
درست سگنل، جھوٹے بریک آؤٹ سے بچتا ہے۔ حجم فلٹر کو یکجا کرتے ہوئے، یہ صرف حقیقی مضبوط رفتار پر خریدتا ہے، خطرے کو کم کرتا ہے۔
چلتی اوسط رجحان کے تعین کے ذریعے وقت میں نقصان کو کم کرنے کے قابل، ہولڈنگ نقصان کو کم کرنا.
فیصلہ سازی کے لئے متعدد اشارے کو یکجا کرنے والی نفاذ شدہ مقداری حکمت عملی۔ مختلف مصنوعات اور ٹائم فریم کے لئے لچکدار پیرامیٹرز کو ایڈجسٹ کرنا۔
واضح کوڈ ڈھانچے ، پڑھنے اور برقرار رکھنے میں آسان۔ اشارے کے حساب کتاب ، سگنل کی تخلیق اور پوزیشن مینجمنٹ کا ماڈیولر ڈیزائن۔
بولنگر بینڈ انتہائی قیمتوں میں اتار چڑھاؤ، غائب سگنل یا غلط سگنل پیدا کرنے کے دوران ناکام ہوسکتے ہیں.
جب مجموعی طور پر تجارتی حجم کم ہوتا ہے تو کوئی منافع نہیں ہوتا ہے۔ خریدنے کے سگنل کافی تجارتی حجم کے بغیر منافع بخش نہیں ہوسکتے ہیں۔
چلتی اوسط کے رجحان کا تعین بھی ناکام ہو سکتا ہے، مکمل طور پر مؤثر سٹاپ نقصان کو یقینی بنانے کے قابل نہیں.
پیرامیٹرز کی غلط ایڈجسٹمنٹ بھی حکمت عملی کی منافع بخش پر اثر انداز ہوتی ہے۔ مثال کے طور پر ، تجارتی وقت کی ونڈو بہت کم مقرر کی جاسکتی ہے جس سے رجحان کی تبدیلی نہیں ہوسکتی ہے۔
مزید تکنیکی اشارے شامل کریں تاکہ بہتر رجحان اور معاونت / مزاحمت کا تجزیہ کیا جاسکے ، اسٹاپ نقصان کو بہتر بنایا جاسکے ، جیسے موم بتی کے نمونوں ، چینلز ، کلیدی معاونت کی سطح۔
غلط سگنلز کو کم کرتے ہوئے حقیقی بریک آؤٹ امکانات کا اندازہ کرنے کے لئے مشین لرننگ ماڈل شامل کریں۔ مثال کے طور پر LSTM گہری سیکھنے کے ماڈل۔
سرمایہ کے انتظام کی حکمت عملیوں کو بہتر بنائیں جیسے متحرک پوزیشن سائزنگ ، ٹریلنگ اسٹاپ نقصان تاکہ ایک ہی تجارت کے نقصان کے اثرات کو کم کیا جاسکے۔
زیادہ مصنوعات اور ٹائم فریم کی جانچ کریں، پیرامیٹرز کو ایڈجسٹ کریں جیسے بولنگر بینڈ، حجم ونڈو حکمت عملی کی مضبوطی کو بہتر بنانے کے لئے.
یہ حکمت عملی بولنگر بینڈ اور تجارتی حجم کے اشارے کو مضبوط رفتار خریدنے کے مواقع کی نشاندہی کرنے کے لئے مربوط کرتی ہے ، جس میں حرکت پذیر اوسط مؤثر اسٹاپ نقصان کو یقینی بناتے ہیں۔ سنگل اشارے کی حکمت عملی کے مقابلے میں ، اس میں زیادہ درستگی اور رسک کنٹرول کی صلاحیتیں ہیں۔ ماڈیولر ڈیزائن ، ٹرینڈ فلٹرز اور اسٹاپ نقصان کے طریقہ کار کے ساتھ ، یہ ایک آسان اصلاح کرنے والی رفتار بریک آؤٹ ٹریڈنگ حکمت عملی تشکیل دیتی ہے۔
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 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/ // © KAIST291 //@version=4 initial_capital=1000 strategy("prototype", overlay=true) length1=input(1) length3=input(3) length7=input(7) length9=input(9) length14=input(14) length20=input(20) length60=input(60) length120=input(120) ma1= sma(close,length1) ma3= sma(close,length3) ma7= sma(close,length7) ma9= sma(close,length9) ma14=sma(close,length14) ma20=sma(close,length20) ma60=sma(close,length60) ma120=sma(close,length120) rsi=rsi(close,14) // BUYING VOLUME AND SELLING VOLUME // BV = iff( (high==low), 0, volume*(close-low)/(high-low)) SV = iff( (high==low), 0, volume*(high-close)/(high-low)) vol = iff(volume > 0, volume, 1) dailyLength = input(title = "Daily MA length", type = input.integer, defval = 50, minval = 1, maxval = 100) weeklyLength = input(title = "Weekly MA length", type = input.integer, defval = 10, minval = 1, maxval = 100) //----------------------------------------------------------- Davgvol = sma(volume, dailyLength) Wavgvol = sma(volume, weeklyLength) //----------------------------------------------------------- length = input(20, minval=1) src = input(close, title="Source") mult = input(2.0, minval=0.001, maxval=50, title="StdDev") mult2= input(1.5, minval=0.001, maxval=50, title="exp") mult3= input(1.0, minval=0.001, maxval=50, title="exp1") mult4= input(2.5, minval=0.001, maxval=50, title="exp2") basis = sma(src, length) dev = mult * stdev(src, length) upper = basis + dev lower = basis - dev dev2= mult2 * stdev(src, length) Supper= basis + dev2 Slower= basis - dev2 dev3= mult3 * stdev(src, length) upper1= basis + dev3 lower1= basis - dev3 dev4= mult4 * stdev(src, length) upper2=basis + dev4 lower2=basis - dev4 offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#FF6D00, offset = offset) p1 = plot(upper, "Upper", color=#2962FF, offset = offset) p2 = plot(lower, "Lower", color=#2962FF, offset = offset) fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95)) //---------------------------------------------------- exit=(close-strategy.position_avg_price / strategy.position_avg_price*100) bull=( BV>SV and BV>Davgvol) bull2=(BV>SV and BV>Davgvol) bux =(close>Supper and close>Slower and volume<Davgvol) bear=(SV>BV and SV>Davgvol) con=(BV>Wavgvol and rsi>80) imInATrade = strategy.position_size != 0 highestPriceAfterEntry = valuewhen(imInATrade, high, 0) // STRATEGY LONG // if (bull and close>upper1 and close>Supper and high>upper and rsi<80) strategy.entry("Long",strategy.long) if (strategy.position_avg_price*1.02<close) strategy.close("Long") else if (low<ma9 and strategy.position_avg_price<close) strategy.close("Long") else if (ma20>close and strategy.position_avg_price<close ) strategy.close("Long") else if (rsi>80 and strategy.position_avg_price<close) strategy.close("Long") else if (strategy.openprofit < strategy.position_avg_price*0.9-close) strategy.close("Long") else if (high<upper and strategy.position_avg_price<close) strategy.close("Long") ////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// strategy.entry("Short",strategy.short,when=low<ma20 and low<lower1 and close<Slower and crossunder(ma60,ma120)) if (close<strategy.position_avg_price*0.98) strategy.close("Short") else if (rsi<20) strategy.close("Short")