وسائل لوڈ ہو رہے ہیں... لوڈنگ...

مقداری تجارت دوہری چلتی اوسط حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-29 11:03:14
ٹیگز:

img

جائزہ

یہ حکمت عملی طویل مدتی رجحان کی پیروی کرنے والی مقداری حکمت عملی کے لئے چلنے والے اوسط اور تجارتی حجم کے تکنیکی اشارے کی بنیاد پر تیار کی گئی ہے۔ جب اختتامی قیمت 20 دن کی چلتی اوسط لائن سے اوپر ہوتی ہے اور دن کی خریداری کا حجم پچھلے n دنوں میں فروخت کے حجم اور اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو تیزی کی حالت میں سمجھا جاتا ہے اور خریدنے کا وقت ہوتا ہے۔ جب اختتامی قیمت نچلی ریل سے نیچے ہوتی ہے اور دن کی فروخت کا حجم پچھلے n دنوں میں خریداری کے حجم اور اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو bearish حالت میں سمجھا جاتا ہے اور فروخت کا وقت ہوتا ہے۔

حکمت عملی کا اصول

حکمت عملی بنیادی طور پر دو اشارے پر مبنی ہے:

  1. دوہری حرکت پذیر اوسط لائنیں: 20 دن کی لائن اور 60 دن کی لائن کا حساب لگائیں۔ جب 20 دن کی لائن 60 دن کی لائن سے اوپر کی طرف بڑھتی ہے تو ، مارکیٹ کو ایک اپ ٹرینڈ میں سمجھا جاتا ہے۔ جب 20 دن کی لائن 60 دن کی لائن سے نیچے کی طرف بڑھتی ہے تو ، مارکیٹ کو ایک ڈاؤن ٹرینڈ میں سمجھا جاتا ہے۔

  2. تجارتی حجم: روزانہ خریدنے اور فروخت کرنے کے حجم کا حساب لگائیں۔ اگر خریدنے کا حجم فروخت کے حجم سے زیادہ ہے اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہے تو ، یہ طے ہوتا ہے کہ مارکیٹ تیزی سے ہے۔ اگر فروخت کا حجم خریدنے کے حجم سے زیادہ ہے اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہے تو ، یہ طے ہوتا ہے کہ مارکیٹ bearish ہے۔

مخصوص تجارتی حکمت عملی اور منطق مندرجہ ذیل ہیں:

لانگ: جب اختتامی قیمت 20 دن کی حرکت پذیر اوسط لائن سے اوپر ہوتی ہے اور دن کی خریداری کا حجم فروخت کے حجم اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو تیزی کا خیال کیا جاتا ہے۔ اتار چڑھاؤ کی بنیاد پر بولنگر بینڈ کا حساب لگائیں ، اگر اختتامی قیمت بولنگر بینڈ کی وسط لائن اور نچلی ریل کے درمیان ہے تو ، طویل ہوجائیں۔

شارٹ جائیں: جب اختتامی قیمت نچلی ریل سے نیچے ہوتی ہے اور دن کی فروخت کا حجم خریدنے کے حجم اور پچھلے n دنوں میں اوسط تجارتی حجم سے زیادہ ہوتا ہے تو ، مارکیٹ کو bearish سمجھا جاتا ہے۔ اتار چڑھاؤ کی بنیاد پر بولنگر بینڈ کا حساب لگائیں ، اگر اختتامی قیمت بولنگر بینڈ کی نچلی ریل سے نیچے ہے تو ، مختصر ہوجائیں۔

منافع اٹھانا اور نقصان کو روکنا: منافع میں مقفل کرنے یا نقصانات کو کم کرنے کے لئے معقول منافع اٹھانا اور نقصان کو روکنے کی سطح مقرر کریں۔ مثال کے طور پر ، جب قیمت داخلہ قیمت سے 5٪ بڑھتی ہے تو ، منافع حاصل کریں۔ جب نقصان 10٪ تک پہنچ جاتا ہے تو ، نقصان کو روکیں۔ یا جب قیمت حالیہ نئی اونچائی کو چھوتی ہے اور پھر کسی حد تک پیچھے ہٹ جاتی ہے تو ، منافع حاصل کریں۔

فوائد کا تجزیہ

اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:

  1. دوہری حرکت پذیر اوسط لائنوں اور تجارتی حجم کے اشارے کو یکجا کرنے سے ایک تکنیکی اشارے کے فیصلے کے اندھے مقامات سے بچتا ہے۔

  2. مختلف پیرامیٹرز کے ساتھ بولنگر بینڈ کا استعمال زیادہ درست اندراج کی قیمتوں کا تعین کرتا ہے.

  3. منافع لینے اور سٹاپ نقصان کی حکمت عملی معقول ہے، جو منافع میں مقفل اور خطرات کو کنٹرول کرنے میں مدد ملتی ہے.

  4. مستحکم واپسی کے ساتھ اچھے بیک ٹسٹنگ کے نتائج، جو اصل میں مقداری تجارت پر لاگو کیا جا سکتا ہے.

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. دوہری حرکت پذیر اوسط حکمت عملیوں میں غلط سگنل پیدا ہوتے ہیں اور حجم کے اشارے کے ذریعہ فلٹر کرنے کی ضرورت ہوتی ہے۔

  2. غلط بولنگر بینڈ پیرامیٹرز کی ترتیبات بہت زیادہ کثرت یا کم اندراجات کا باعث بن سکتی ہیں۔

  3. غیر مناسب مقررہ منافع لینے اور سٹاپ نقصان کے مقامات حکمت عملی کی واپسی کو متاثر کرسکتے ہیں۔

  4. بیک ٹسٹنگ کے لئے بہت سارے تاریخی اعداد و شمار کی ضرورت ہوتی ہے ، اور رواں تجارت میں غیر متوقع نقصانات ابھی بھی ہوسکتے ہیں۔

اصلاح کی سمت

حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:

  1. بہترین حرکت پذیر اوسط مجموعہ تلاش کرنے کے لئے چلتی اوسط نظام کے پیرامیٹرز کو بہتر بنائیں.

  2. زیادہ درست اندراج کے لئے بولنگر بینڈ پیرامیٹرز کو بہتر بنائیں.

  3. مارکیٹ کے حالات کے مطابق منافع لینے اور سٹاپ نقصان کے پوائنٹس کو متحرک طور پر ایڈجسٹ کریں تاکہ معقول رسک ریٹرن ریشو مقرر کیا جاسکے۔

  4. حکمت عملی کی درستگی کو بہتر بنانے کے لئے دیگر تکنیکی اشارے جیسے ایم اے سی ڈی ، کے ڈی وغیرہ کا فیصلہ کریں۔

  5. مشین لرننگ کے طریقوں کا استعمال کریں تاکہ خود بخود بہترین پیرامیٹرز تلاش کریں تاکہ حکمت عملیوں کو زیادہ مضبوط بنایا جاسکے۔

خلاصہ

مجموعی طور پر ، یہ ایک بہت ہی عملی مقداری تجارتی حکمت عملی ہے جس میں بیک ٹیسٹنگ کی اچھی کارکردگی ہے۔ اس پر عمل درآمد کرنا آسان ہے ، جس میں قابو پانے والے خطرات ہیں ، اور یہ لائیو ٹریڈنگ کے لئے موزوں مستحکم حکمت عملی ہے ، جو مقداری تاجروں کے لئے سیکھنے کے قابل ہے۔ یقینا ، حکمت عملی کی اصلاح کے لئے ابھی بھی بہت ساری گنجائش موجود ہے ، اور میں مزید مقداری تجارتی ماہرین کو اس میں بہتری لانے کا منتظر ہوں۔


/*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)
//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////


مزید