رفتار توڑنے والی اوسط حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-27 16:25:54
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی کے اہم اجزاء یہ ہیں:

  1. EMA/SMA کراس اوور: 9 پیریڈ ای ایم اے فاسٹ لائن 21 پیریڈ ای ایم اے سست لائن کے اوپر عبور کرتی ہے تاکہ خریدنے کا سگنل ٹرگر کیا جا سکے۔

  2. ایم اے سی ڈی اشارے: MACD ہسٹوگرام کو اضافی تصدیق کے طور پر EMA/SMA کراس اوور سگنل کے ساتھ مل کر مثبت ہونے کی ضرورت ہے۔

  3. اسٹاک آر ایس آئی اشارے: سگنل اس وقت ٹرگر ہوتے ہیں جب اسٹاک آر ایس آئی اووربوٹ کی سطح (80) سے اوپر یا اوور سیلڈ کی سطح (20) سے نیچے ہوتا ہے۔

  4. بولنگر بینڈ: قیمت کو بینڈ کے اندر ہونے کی ضرورت ہے جہاں درمیانی بینڈ 20 پیریڈ ایس ایم اے ہے اور بینڈ کی چوڑائی دو معیاری انحراف ہے۔

  5. نقصان کو روکیں اور منافع حاصل کریں: 14 پیریڈ اے ٹی آر کی بنیاد پر حساب لگایا گیا ہے۔

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

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

اس حکمت عملی کی اہم طاقتیں یہ ہیں:

  1. بیک ٹسٹ کے بہترین نتائج: متعدد ثابت شدہ اشارے بینچ مارک اور انفرادی اشارے سے بہتر کارکردگی کا باعث بنتے ہیں۔

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

  3. خودکار سٹاپ نقصان/منافع لینے: بولنگر بینڈ اور اے ٹی آر بہتر رسک کنٹرول کے لیے اسٹاپ کی متحرک ایڈجسٹمنٹ کی اجازت دیتے ہیں۔

  4. عمل میں لانا آسان: صاف کوڈ ڈھانچہ اور ڈیٹا تک آسان رسائی کا نتیجہ براہ راست عملی آپریشن ہے۔

خطرے کا تجزیہ

اچھی کارکردگی کے باوجود، اہم خطرات میں شامل ہیں:

  1. جھوٹے اشارے: غیر معمولی مارکیٹ میں اتار چڑھاؤ یا اشارے کی ناکامی غلط سگنل پیدا کرسکتی ہے۔ اس کے بعد طویل مدتی رجحان کو اضافی فلٹر کے طور پر شامل کیا جانا چاہئے۔

  2. ناکافی پیرامیٹرز: ناقص پیرامیٹرز سے زیادہ کثرت سے تجارت یا ناکافی حساسیت پیدا ہوسکتی ہے۔ پیرامیٹرز کو مختلف مصنوعات اور مارکیٹ کے ماحول کے مطابق ایڈجسٹ کیا جانا چاہئے۔

  3. غیر مناسب سٹاپ نقصان: ایک اسٹاپ نقصان جو بہت تنگ ہے اس میں قبل از وقت روکنے کا رجحان ہوتا ہے ، جبکہ ایک اسٹاپ نقصان جو بہت وسیع ہے اس کے نتیجے میں بہت زیادہ نقصانات ہوسکتے ہیں۔ اسٹاپ نقصان اور منافع حاصل کرنے کی سطح کے مابین مناسب توازن حاصل کرنا چاہئے۔

مذکورہ بالا خطرات سے نمٹنے کے لیے درج ذیل اقدامات کیے جا سکتے ہیں:

  1. دستی مداخلت: غیر معمولی حالات میں، سگنلز کو دستی طور پر چیک کیا جاسکتا ہے، پیرامیٹرز کو دوبارہ ایڈجسٹ کیا جاسکتا ہے یا حکمت عملیوں کو عارضی طور پر روک دیا جاسکتا ہے.

  2. پیرامیٹر کی اصلاح: جینیاتی الگورتھم جیسے زیادہ سائنسی اور معروضی طریقوں کو منظم اصلاح کے لئے استعمال کیا جاسکتا ہے۔

  3. اتار چڑھاؤ سے ایڈجسٹ اسٹاپس: سٹاپ نقصان کی حدیں اتار چڑھاؤ کو شامل کرنے کے لئے اے ٹی آر کے 1-3 گنا مقرر کی جاسکتی ہیں۔

بہتر مواقع

اسٹریٹیجی کو مندرجہ ذیل شعبوں میں مزید بہتر بنایا جاسکتا ہے:

  1. زیادہ مضبوط سٹاپ نقصان کے طریقہ کار: ٹریلنگ سٹاپ نقصان یا چلتی اوسط کی بنیاد پر سٹاپ شامل کیا جا سکتا ہے.

  2. حجم فلٹرز: غلط بریک آؤٹ سے بچنے کے لئے حجم کے اشارے شامل کرنا۔

  3. متحرک پیرامیٹرز: خود کار طریقے سے پیرامیٹرز کو بہتر بنانا جیسے چلتی اوسط مدت اور بینڈ کی چوڑائی مارکیٹ کے بدلتے حالات کی بنیاد پر.

  4. مشین لرننگ: LSTM، RNN اور دیگر الگورتھم پیرامیٹرز کی متحرک اصلاح کے قابل بناتے ہیں.

نتیجہ

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


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Improved Custom Strategy", shorttitle="ICS", overlay=true)

// Volatility
volatility = ta.atr(14)

// EMA/MA Crossover
fast_length = 9
slow_length = 21
fast_ma = ta.ema(close, fast_length)
slow_ma = ta.sma(close, slow_length)
crossover_signal = ta.crossover(fast_ma, slow_ma)

// MACD
[macdLine, signalLine, macdHistogram] = ta.macd(close, 12, 26, 9)
macd_signal = crossover_signal and (macdHistogram > 0)

// Bollinger Bands
source = close
basis = ta.sma(source, 20)
upper = basis + 2 * ta.stdev(source, 20)
lower = basis - 2 * ta.stdev(source, 20)

// Fractal-based Support and Resistance levels
isFractalHigh = high[2] < high[1] and high[1] > high[0]
isFractalLow = low[2] > low[1] and low[1] < low[0]
resistance = ta.valuewhen(isFractalHigh, high[1], 0)
support = ta.valuewhen(isFractalLow, low[1], 0)

// StockRSI
length = 14
K = 100 * (close - ta.lowest(close, length)) / (ta.highest(close, length) - ta.lowest(close, length))
D = ta.sma(K, 3)
overbought = 80
oversold = 20
stockrsi_signal = ((K < D) and (K < oversold)) or ((K > D) and (K > overbought))

// Buy and sell conditions
mandatory_buy_conditions = (crossover_signal ? 1 : 0) + (macd_signal ? 1 : 0) + (stockrsi_signal ? 1 : 0)

// Long-term Trend Check
long_term_ma = ta.sma(close, 200)
long_term_bullish = close > long_term_ma
long_term_bearish = close < long_term_ma

// Plot the long-term MA for visual clarity
plot(long_term_ma, color=color.gray, title="200-Day MA", linewidth=1)

// Simplified Buy and Sell conditions
buy_condition = long_term_bullish and (mandatory_buy_conditions >= 2) and (close > lower) and (close < upper)
sell_condition = (macdHistogram < 0) and (K > D) and (K > overbought)


// Potential SL and TP based on volatility
potential_SL = close - volatility
potential_TP = close + 2 * volatility

plot(potential_SL, title="SL Level", color=color.red, linewidth=1, style=plot.style_linebr)
plot(potential_TP, title="TP Level", color=color.green, linewidth=1, style=plot.style_linebr)

// ... (rest of your code above)

// State variable to track if we're in a position, a counter for trades, and a delayed counter for plotting
var bool inPosition = false
var tradeCounter = 0
var tradeCounterDelayed = 0 // Declaration of the variable

// Buy logic: Check if tradeCounter is 0 and the buy condition is met
if tradeCounter == 0 and buy_condition
    strategy.entry("BUY", strategy.long, stop=potential_SL, limit=potential_TP)
    inPosition := true
    tradeCounter := tradeCounter + 1

// Sell logic: Check if tradeCounter is 1, the sell condition is met, and we are in a position
if tradeCounter == 1 and inPosition and sell_condition
    strategy.close("BUY")
    inPosition := false
    tradeCounter := tradeCounter - 1

// Update the delayed trade counter:
tradeCounterDelayed := tradeCounter

// Plotting
bgcolor(buy_condition ? color.new(color.green, 90) : sell_condition ? color.new(color.red, 90) : na)
plotshape(series=buy_condition and tradeCounterDelayed == 0, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sell_condition and tradeCounterDelayed == 1, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)

// ... (rest of your code if any)


مزید