یہ حکمت عملی طویل مدتی رجحان کی پیروی کرنے والی مقداری حکمت عملی کے لئے چلنے والے اوسط اور تجارتی حجم کے تکنیکی اشارے کی بنیاد پر تیار کی گئی ہے۔ جب اختتامی قیمت 20 دن کی چلتی اوسط لائن سے اوپر ہوتی ہے اور دن کی خریداری کا حجم پچھلے n دنوں میں فروخت کے حجم اور اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو تیزی کی حالت میں سمجھا جاتا ہے اور خریدنے کا وقت ہوتا ہے۔ جب اختتامی قیمت نچلی ریل سے نیچے ہوتی ہے اور دن کی فروخت کا حجم پچھلے n دنوں میں خریداری کے حجم اور اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو bearish حالت میں سمجھا جاتا ہے اور فروخت کا وقت ہوتا ہے۔
حکمت عملی بنیادی طور پر دو اشارے پر مبنی ہے:
دوہری حرکت پذیر اوسط لائنیں: 20 دن کی لائن اور 60 دن کی لائن کا حساب لگائیں۔ جب 20 دن کی لائن 60 دن کی لائن سے اوپر کی طرف بڑھتی ہے تو ، مارکیٹ کو ایک اپ ٹرینڈ میں سمجھا جاتا ہے۔ جب 20 دن کی لائن 60 دن کی لائن سے نیچے کی طرف بڑھتی ہے تو ، مارکیٹ کو ایک ڈاؤن ٹرینڈ میں سمجھا جاتا ہے۔
تجارتی حجم: روزانہ خریدنے اور فروخت کرنے کے حجم کا حساب لگائیں۔ اگر خریدنے کا حجم فروخت کے حجم سے زیادہ ہے اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہے تو ، یہ طے ہوتا ہے کہ مارکیٹ تیزی سے ہے۔ اگر فروخت کا حجم خریدنے کے حجم سے زیادہ ہے اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہے تو ، یہ طے ہوتا ہے کہ مارکیٹ bearish ہے۔
مخصوص تجارتی حکمت عملی اور منطق مندرجہ ذیل ہیں:
لانگ: جب اختتامی قیمت 20 دن کی حرکت پذیر اوسط لائن سے اوپر ہوتی ہے اور دن کی خریداری کا حجم فروخت کے حجم اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو تیزی کا خیال کیا جاتا ہے۔ اتار چڑھاؤ کی بنیاد پر بولنگر بینڈ کا حساب لگائیں ، اگر اختتامی قیمت بولنگر بینڈ کی وسط لائن اور نچلی ریل کے درمیان ہے تو ، طویل ہوجائیں۔
شارٹ جائیں: جب اختتامی قیمت نچلی ریل سے نیچے ہوتی ہے اور دن کی فروخت کا حجم خریدنے کے حجم اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو bearish سمجھا جاتا ہے۔ اتار چڑھاؤ کی بنیاد پر بولنگر بینڈ کا حساب لگائیں ، اگر اختتامی قیمت بولنگر بینڈ کی نچلی ریل سے نیچے ہے تو ، مختصر ہوجائیں۔
منافع اٹھانا اور نقصان کو روکنا: منافع میں مقفل کرنے یا نقصانات کو کم کرنے کے لئے معقول منافع اٹھانا اور نقصان کو روکنے کی سطح مقرر کریں۔ مثال کے طور پر ، جب قیمت داخلہ قیمت سے 5٪ بڑھتی ہے تو ، منافع حاصل کریں۔ جب نقصان 10٪ تک پہنچ جاتا ہے تو ، نقصان کو روکیں۔ یا جب قیمت حالیہ نئی اونچائی کو چھوتی ہے اور پھر کسی حد تک پیچھے ہٹ جاتی ہے تو ، منافع حاصل کریں۔
اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
دوہری حرکت پذیر اوسط لائنوں اور تجارتی حجم کے اشارے کو یکجا کرنے سے ایک تکنیکی اشارے کے فیصلے کے اندھے مقامات سے بچتا ہے۔
مختلف پیرامیٹرز کے ساتھ بولنگر بینڈ کا استعمال زیادہ درست اندراج کی قیمتوں کا تعین کرتا ہے.
منافع لینے اور سٹاپ نقصان کی حکمت عملی معقول ہے، جو منافع میں مقفل اور خطرات کو کنٹرول کرنے میں مدد ملتی ہے.
مستحکم واپسی کے ساتھ اچھے بیک ٹسٹنگ کے نتائج، جو اصل میں مقداری تجارت پر لاگو کیا جا سکتا ہے.
اس حکمت عملی میں کچھ خطرات بھی ہیں:
دوہری حرکت پذیر اوسط حکمت عملیوں میں غلط سگنل پیدا ہوتے ہیں اور حجم کے اشارے کے ذریعہ فلٹر کرنے کی ضرورت ہوتی ہے۔
غلط بولنگر بینڈ پیرامیٹرز کی ترتیبات بہت زیادہ کثرت یا کم اندراجات کا باعث بن سکتی ہیں۔
غیر مناسب مقررہ منافع لینے اور سٹاپ نقصان کے مقامات حکمت عملی کی واپسی کو متاثر کرسکتے ہیں۔
بیک ٹسٹنگ کے لئے بہت سارے تاریخی اعداد و شمار کی ضرورت ہوتی ہے ، اور رواں تجارت میں غیر متوقع نقصانات ابھی بھی ہوسکتے ہیں۔
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
بہترین حرکت پذیر اوسط مجموعہ تلاش کرنے کے لئے چلتی اوسط نظام کے پیرامیٹرز کو بہتر بنائیں.
زیادہ درست اندراج کے لئے بولنگر بینڈ پیرامیٹرز کو بہتر بنائیں.
مارکیٹ کے حالات کے مطابق منافع لینے اور سٹاپ نقصان کے پوائنٹس کو متحرک طور پر ایڈجسٹ کریں تاکہ معقول رسک ریٹرن ریشو مقرر کیا جاسکے۔
حکمت عملی کی درستگی کو بہتر بنانے کے لئے دیگر تکنیکی اشارے جیسے ایم اے سی ڈی ، کے ڈی وغیرہ کا فیصلہ کریں۔
مشین لرننگ کے طریقوں کا استعمال کریں تاکہ خود بخود بہترین پیرامیٹرز تلاش کریں تاکہ حکمت عملیوں کو زیادہ مضبوط بنایا جاسکے۔
مجموعی طور پر ، یہ ایک بہت ہی عملی مقداری تجارتی حکمت عملی ہے جس میں بیک ٹیسٹنگ کی اچھی کارکردگی ہے۔ اس پر عمل درآمد کرنا آسان ہے ، جس میں قابو پانے والے خطرات ہیں ، اور یہ لائیو ٹریڈنگ کے لئے موزوں مستحکم حکمت عملی ہے ، جو مقداری تاجروں کے لئے سیکھنے کے قابل ہے۔ یقینا ، حکمت عملی کی اصلاح کے لئے ابھی بھی بہت ساری گنجائش موجود ہے ، اور میں مزید مقداری تجارتی ماہرین کو اس میں بہتری لانے کا منتظر ہوں۔
/*backtest start: 2023-12-21 00:00:00 end: 2023-12-28 00:00:00 period: 1m basePeriod: 1m 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 strategy("prototype",initial_capital=0.01,commission_type=strategy.commission.percent,commission_value=0.1, format=format.volume, precision=0,overlay=true) // SETTING // length1=input(1) length3=input(3) length7=input(7) length14=input(14) length20=input(20) length60=input(60) length120=input(120) ma1= sma(close,length1) ma3= sma(close,length3) ma7= sma(close,length7) 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") 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 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=(close>Supper and BV>SV and BV>Davgvol) bull2=(close>ma20 and BV>SV and BV>Davgvol) bux =(close<Supper and close>Slower and volume<Wavgvol) bear=(close<Slower and close<lower and SV>BV and SV>Wavgvol) hi=highest(exit,10) imInATrade = strategy.position_size != 0 highestPriceAfterEntry = valuewhen(imInATrade, high, 0) // STRATEGY LONG // if (bull and close>ma3 and ma20>ma60 and rsi<70) strategy.entry("Long",strategy.long,0.1) if (strategy.position_avg_price*1.05<close) strategy.close("Long",0.1) else if (highestPriceAfterEntry*0.999<close and close>strategy.position_avg_price*1.002) strategy.close("Long",0.1) else if (highestPriceAfterEntry*0.997<close and close>strategy.position_avg_price*1.002) strategy.close("Long",0.1) else if (highestPriceAfterEntry*0.995<close and close>strategy.position_avg_price*1.002) strategy.close("Long",0.1) else if (strategy.openprofit < strategy.position_avg_price*0.9-close) strategy.close("Long",0.1) ////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////