ڈبل موونگ ایوریج بولنگر بینڈ ٹرینڈ کے بعد حکمت عملی


تخلیق کی تاریخ: 2023-12-11 15:10:02 آخر میں ترمیم کریں: 2023-12-11 15:10:02
کاپی: 0 کلکس کی تعداد: 689
1
پر توجہ دیں
1621
پیروکار

ڈبل موونگ ایوریج بولنگر بینڈ ٹرینڈ کے بعد حکمت عملی

جائزہ

یہ حکمت عملی مارکیٹ کی سمت کا تعین کرنے کے لئے دو مختلف ادوار کے لئے اشاریہ منتقل اوسط ((EMA) کا حساب لگاتا ہے ، اور اس رجحان کی سمت کو طے کرنے کی پیش گوئی کی جاتی ہے ، اور اس رجحان کی پیروی کرنے والی تجارت کو انجام دینے کے لئے برن کے ساتھ خود کو ایڈجسٹ کرنے کے ساتھ مل کر اوورلوپنگ اور اوور سیل مواقع کا پتہ لگاتا ہے۔

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

  1. 200 دوروں اور 30 دوروں کے ای ایم اے کا حساب لگائیں ، 200 ای ایم اے 30 ای ایم اے سے زیادہ طویل لائن کے رجحان کو اوپر کی طرف فیصلہ کریں ، بصورت دیگر طویل لائن کے رجحان کو نیچے کی طرف فیصلہ کریں۔

  2. رجحان کی سمت کا تعین کرنے کے بعد ، بلین بینڈ کی بیس لائن ، اوپری ریل اور ڈاون ریل کا حساب لگائیں۔ بیس لائن ایک قابل ترتیب دورانیہ (جیسے 8 دورانیہ) کا SMA ہے ، اور بینڈ وڈ اسی دورانیہ کی اعلی ترین قیمت اور کم سے کم قیمت کی انتہائی خراب کنفیگریبل ضرب (جیسے 1.3 اور 1.1) کا استعمال کرتا ہے۔

  3. جب لمبی لائن اوپر کی طرف ہوتی ہے تو ، جب قیمت نیچے سے نیچے کی طرف ٹریک ہوتی ہے تو اسے خریدنے کا مقام سمجھا جاتا ہے۔ جب لمبی لائن نیچے کی طرف ہوتی ہے تو ، جب قیمت اوپر سے نیچے کی طرف ٹریک ہوتی ہے تو اسے بیچنے کا مقام سمجھا جاتا ہے۔

  4. جعلی توڑنے کو فلٹر کرنے کے لئے ، چیک کریں کہ آیا توڑنے کے وقت پچھلی K لائن میں تبدیلی کی شرح قابل ترتیب قدر سے کم ہے (مثال کے طور پر 3٪) ، اور چیک کریں کہ آیا برن بینڈ اوپر اور نیچے کی ریل کی حد قابل ترتیب فاصلے کی ضرورت سے زیادہ ہے (مثال کے طور پر 2.2٪) ۔

  5. پوزیشن کھولنے کے بعد ترتیب دینے کے قابل اسٹاپ نقصان (جیسے 3٪) اور روک تھام (جیسے 10٪) مقرر کریں ، تاکہ منافع کو لاک کیا جاسکے۔

اسٹریٹجک فوائد

  1. ڈبل ای ایم اے اہم رجحانات کا اندازہ لگاتا ہے ، جب اہم رجحانات نامعلوم ہوں تو بے ترتیب پوزیشنوں سے بچنے سے بچتا ہے۔

  2. ایڈجسٹ برن بینڈ کھولنے کا مقام طے کرتا ہے ، اور رجحان کے مطابق بینڈوتھ پیرامیٹرز کو خود بخود ایڈجسٹ کرتا ہے ، تاکہ رجحان کو مزید لاک کیا جاسکے۔

  3. تبدیلی کی شرح اور کم سے کم بینڈوڈتھ چیک میکانزم جعلی توڑ کو مؤثر طریقے سے فلٹر کرتی ہے۔

  4. نقصان کی روک تھام کا تعین معقول ہے ، اور منافع کو لاک کرنے کا خطرہ قابل کنٹرول ہے۔

اسٹریٹجک رسک

  1. ڈبل ای ایم اے ٹرنورٹمنٹ پوائنٹس کا درست اندازہ نہیں لگاسکتی ہے ، اور رجحان کی تبدیلی کے مواقع سے محروم ہوسکتی ہے۔

  2. برن بینڈ پیرامیٹرز کی غلط ترتیب غلط سگنل کا سبب بن سکتی ہے۔

  3. فکسڈ سٹاپ نقصان کی روک تھام مارکیٹ کے اتار چڑھاو کے مطابق کرنے کے لئے مشکل ہے.

اصلاح کی سمت

  1. رجحانات کا تعین کرنے کے لئے دیگر اشارے کے ساتھ مل کر ، اہم رجحانات کی تبدیلی کا تعین کریں۔

  2. متحرک طور پر برن بینڈ پیرامیٹرز کو ایڈجسٹ کرنے کا طریقہ۔

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//////////////////////////////////////////////////////////////////////
// Component Code Start
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2039, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
// Component Code Stop

strategy("Custom Band Strategy", overlay=true)
source = close //종가 기준

//추세 조건 설정
emaLong = ema(source, input(200, minval=0))
emaShort = ema(source, input(30, minval=0))
trend = if emaShort>=emaLong
    1
else
    -1
    
plot(emaLong, color=red, transp=0)
plot(emaShort, color=blue, transp=0)


//BB 계산(default 14/3.2)
length = input(8, minval=1)

basis = sma(source, length)
plot(basis, color=green, transp=0)
max=highest(abs(source-basis), length)

factor1 = input(1.3, minval=0.5)
factor2 = input(1.1, minval=0.5)

upper = if trend==1
    basis + max*factor1
else
    basis + max*factor2
lower = if trend==-1
    basis - max*factor1
else
    basis - max*factor2

plot1 = plot(upper)
plot2 = plot(lower)
fill(plot1, plot2, transp=80, color=green)

//밴드 이탈 후 재진입 조건 설정
cross_over = (low<=lower and close>=lower) or crossover(close,lower)
cross_under = (high>=upper and close<=upper) or crossunder(close,upper)

//변동율 계산
maxCandle=highest(abs(open-close), length)
    
roc = abs(open-close)/open*100
changerate = input(3, minval=0.0)

//수익률 계산
value = abs(strategy.position_size)*strategy.position_avg_price
roe = strategy.openprofit/value * 100
expRoeL = (upper-lower)/lower*100
expRoeS = (upper-lower)/upper*100
exp = input(2.2, minval=0.0)

target = input(10, minval=0.0)
stop = input(-3, minval=-10.0)

strategy.close_all(when=roc>=changerate and testPeriod())
strategy.close_all(when=roe>=target and testPeriod())
strategy.close_all(when=roe<=stop and testPeriod())

plotchar(crossover(close,lower) and crossunder(close,upper),color=blue, transp=0, text="cross")
plotchar(roc>=changerate,color=red, transp=0, text="roc")
plotchar(roe>=target,color=blue, transp=0, text="target")
plotchar(roe<=stop,color=green, transp=0, text="stop")

minroe = input(2, minval=0.0)

strategy.close_all(when=cross_under and roe>minroe and testPeriod())
strategy.entry("BBandLE", strategy.long, stop=source, oca_name="BollingerBands",  comment="BBandLE", when=(cross_over) and trend==1 and roc<changerate and expRoeL>exp and source>emaLong and strategy.position_size==0 and testPeriod()) //trend==1 and 
//else
strategy.close_all(when=cross_over and roe>minroe and testPeriod())
strategy.entry("BBandSE", strategy.short, stop=source, oca_name="BollingerBands",  comment="BBandSE", when=(cross_under) and trend==-1 and roc<changerate and expRoeS>exp and source<emaLong and strategy.position_size==0 and testPeriod()) //trend==-1 and