دوہری حرکت پذیر اوسط بولنگر بینڈ ٹرینڈ ٹریکنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-11 15:10:02
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

  1. 200 پیریڈ ای ایم اے اور 30 پیریڈ ای ایم اے کا حساب لگایا جاتا ہے۔ اگر 200 ای ایم اے 30 ای ایم اے سے بڑا ہے تو ، طویل مدتی رجحان اوپر کی حیثیت سے طے ہوتا ہے۔ بصورت دیگر ، یہ نیچے کی حیثیت سے طے ہوتا ہے۔

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

  3. جب طویل مدتی رجحان اوپر ہے تو ، نچلی بینڈ بریک آؤٹ طویل اندراج کی نشاندہی کرتا ہے۔ جب طویل مدتی رجحان نیچے ہے تو ، اوپری بینڈ بریک آؤٹ مختصر اندراج کی نشاندہی کرتا ہے۔

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

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

حکمت عملی کی طاقتیں

  1. دوہری EMAs اہم رجحان کی وضاحت کرتے ہیں اور جب اہم رجحان واضح نہیں ہوتا ہے تو غیر منظم طور پر پوزیشن کھولنے سے بچتے ہیں.

  2. انکولی بولنگر بینڈ رجحان کے ساتھ داخلہ پوائنٹس مقرر کرتے ہیں۔ آٹو چوڑائی ایڈجسٹمنٹ رجحان کو مزید مقفل کرتی ہے۔

  3. تبدیلی کی شرح اور کم سے کم چوڑائی کی ضروریات کو مؤثر طریقے سے جھوٹے بریک آؤٹ فلٹر.

  4. سٹاپ نقصان اور منافع لینے کی ترتیبات معقول حد تک منافع کو مقفل کرتے ہوئے خطرات کو کنٹرول میں رکھتے ہیں۔

حکمت عملی کے خطرات

  1. دوہری ای ایم اے رجحان کی تبدیلی کے مقامات کو درست طریقے سے تلاش کرنے میں ناکام رہتے ہیں، رجحان کی موڑ کے مقامات پر مواقع کو کھو دیتے ہیں.

  2. غلط BB پیرامیٹرز کی ترتیبات غلط سگنل کا سبب بن سکتی ہیں.

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

اصلاح کی ہدایات

  1. اہم اور ثانوی رجحان کی تبدیلیوں کا تعین کرنے کے لئے دیگر اشارے شامل کریں.

  2. BB پیرامیٹرز کی متحرک ایڈجسٹمنٹ کو اپنانا.

  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 

مزید