مومنٹم انڈیکیٹر بریک آؤٹ ٹریڈنگ کی حکمت عملی


تخلیق کی تاریخ: 2023-09-18 21:28:22 آخر میں ترمیم کریں: 2023-09-18 21:28:22
کاپی: 0 کلکس کی تعداد: 691
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

اصول

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

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

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

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

فوائد

  1. ٹرینڈ ٹریک کرنے کے لئے برن بینڈ کا استعمال کرتے ہوئے ، ٹرینڈ ٹریکنگ کی کچھ صلاحیتیں ہیں۔

  2. ریورس پوزیشن ڈیزائن کے نتیجے میں منفی منافع حاصل ہوتا ہے۔

  3. مختلف ادوار کے لئے ٹریڈنگ کے لئے حسب ضرورت برن بینڈ کی مدت، معیاری فاصلے کے ضارب اور دیگر پیرامیٹرز.

  4. آپ کی پوزیشن کو بند کرنے اور ریورس کھولنے سے آپ کا خطرہ کم ہو جائے گا۔

خطرات اور ان کا مقابلہ

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

  2. بریک سگنل جھوٹی بریک کا سبب بن سکتا ہے۔ دیگر عوامل کے ساتھ مل کر سگنل کو فلٹر کیا جاسکتا ہے۔

  3. ریورس پوزیشن کھولنے سے نقصان میں مزید اضافہ ہوسکتا ہے۔ ریورس پوزیشن کھولنے کا ماڈیول بند کیا جاسکتا ہے۔

  4. واپسی بڑی ہوسکتی ہے۔ پوزیشن کی مقدار کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے۔

اصلاح کی سمت

  1. رجحانات کو فلٹر کرنے پر غور کیا جاسکتا ہے تاکہ غیر یقینی سمت میں ہلچل مچانے والی مارکیٹوں سے بچا جاسکے۔

  2. برن بینڈ کے معیاری فاصلے کی ضرب کو جانچ کر کے زیادہ مناسب پیرامیٹرز تلاش کیا جا سکتا ہے۔

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

  4. آپ کو آپ کی پوزیشن کھولنے اور جمع کرنے کی منطق کو بہتر بنانے کی اجازت دیتا ہے تاکہ آپ کے ٹریڈنگ سگنل کو واضح کیا جا سکے.

خلاصہ کریں۔

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

Overview

This strategy uses Bollinger Bands momentum indicator for breakout trading, mainly judging if price breaks through the upper or lower Bollinger Bands for trading signals.

Principles

The strategy is primarily based on Bollinger Bands indicator to determine trend direction. Bollinger Bands consist of a middle band based on a moving average and upper/lower bands defined by standard deviations. The middle band is a n-period moving average, the upper band is middle band + 2 standard deviations, and the lower band is middle band - 2 standard deviations. When price approaches the upper band it indicates overbought conditions, and when it approaches the lower band it signals oversold conditions.

Specifically, the strategy first calculates the highest high and lowest low over last n periods, and the middle price ((highest high + lowest low)/2). It then calculates the distance between close price and middle price, uses exponential moving average of the distance to form the middle band, and adds/subtracts 2 times standard deviation above and below to form the upper and lower bands.

When close price breaks through the upper band, it signals an uptrend; when it breaks the lower band, it signals a downtrend. The strategy goes long when the upper band is broken, and goes short when the lower band is broken.

In addition, the strategy incorporates a counter-trend mechanism. When price breaks the upper band but MACD is falling, it will take a counter-trend short position.

Advantages

  1. Using Bollinger Bands to determine trend direction provides certain trend following capability.

  2. Counter-trend design allows profiting from reversals.

  3. Customizable parameters like period and standard deviation multiples make it adaptable to different trading horizons.

  4. Disable counter-trend trading to reduce risk.

Risks and Mitigations

  1. Bollinger Bands work best for high volatility stocks, may not be suitable for stable commodities or indices. Can test different period parameters.

  2. Breakout signals may have false breakouts. Can add filters with other indicators.

  3. Counter-trend trading can further increase losses. Can disable counter-trend module.

  4. Drawdowns may be significant. Can adjust position sizing.

Enhancement Opportunities

  1. Consider adding trend filter to avoid whipsaw in non-directional markets.

  2. Test different standard deviation multiples to find optimal parameters.

  3. Incorporate stop loss to control single trade loss.

  4. Optimize entry and add-on logic for clearer trading signals.

Summary

The strategy uses Bollinger Bands as the primary indicator and trades based on trend breakouts. With simple parameters it provides basic trend following capabilities. But false breakout risks exist, requiring additional filters. Parameters, stop loss and risk controls can be enhanced. Overall it serves as a reasonable baseline breakout strategy.

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Bands Scalper Strategy v1.6", shorttitle = "Scalper str 1.6", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needbe = input(true, defval = true, title = "Bands Entry")
needct = input(false, defval = false, title = "Counter-trend entry")
bodylen = input(10, defval = 10, minval = 0, maxval = 50, title = "Body length")
trb = input(1, defval = 1, minval = 1, maxval = 5, title = "Trend bars")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2

//Trend
chd = close > hd
cld = close < ld
uptrend = trb == 1 and chd ? 1 : trb == 2 and chd and chd[1] ? 1 : trb == 3 and chd and chd[1] and chd[2] ? 1 : trb == 4 and chd and chd[1] and chd[2] and chd[3] ? 1 : trb == 5 and chd and chd[1] and chd[2] and chd[3] and chd[4] ? 1 : 0
dntrend = trb == 1 and cld ? 1 : trb == 2 and cld and cld[1] ? 1 : trb == 3 and cld and cld[1] and cld[2] ? 1 : trb == 4 and cld and cld[1] and cld[2] and cld[3] ? 1 : trb == 5 and cld and cld[1] and cld[2] and cld[3] and cld[4] ? 1 : 0
trend = dntrend == 1 and high < center ? -1 : uptrend == 1 and low > center ? 1 : trend[1]

//trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = ema(body, 30) / 10 * bodylen

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0
dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00)
    strategy.close_all()