بتدریج BB KC رجحان کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-26 15:10:41
ٹیگز:

img

جائزہ

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

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

  1. 20 ادوار میں وسط ، اوپری اور نچلی بولنگر بینڈ کا حساب لگائیں۔ بینڈ کی چوڑائی کو 2 معیاری انحراف کے طور پر بیان کیا گیا ہے۔
  2. درمیانی ، اوپری ، اور نچلے کیلٹنر چینلز کا حساب لگائیں 20 ادوار پر۔ چینل کی چوڑائی کو حقیقی حد سے 2.2 گنا کے طور پر بیان کیا گیا ہے۔
  3. جب کیلٹنر چینل کی اوپری لائن بولنگر بینڈ کی اوپری لائن کے اوپر عبور کرتی ہے اور حجم اس کے 10 پیریڈ چلنے والے اوسط سے زیادہ ہوتا ہے تو ، طویل ہوجائیں۔
  4. جب کیلٹنر چینل کی نیچے لائن بولنگر بینڈ کی نیچے لائن سے عبور کرتی ہے اور حجم اس کے 10 پیریڈ چلنے والے اوسط سے زیادہ ہوتا ہے تو ، مختصر ہوجائیں۔
  5. تمام پوزیشنوں کو بند کریں اگر داخل ہونے کے بعد 20 بار کے بعد کوئی باہر نکلنے والے سگنل ٹرگر نہیں ہوتے ہیں۔
  6. لمبی تجارتوں کے لئے 1.5٪ اسٹاپ نقصان اور مختصر تجارتوں کے لئے -1.5٪ اسٹاپ نقصان مقرر کریں۔ لمبی تجارتوں کے لئے 2٪ ٹریلنگ اسٹاپ اور مختصر تجارتوں کے لئے -2٪ ٹریلنگ اسٹاپ مقرر کریں۔

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

طاقت کا تجزیہ

  1. سگنل کی درستگی کو بہتر بنانے کے لئے بولنگر بینڈ اور کیلٹنر چینلز کے مشترکہ فوائد کا استعمال کرتا ہے۔
  2. تجارتی حجم کی طرف سے فلٹرنگ اکثر لائن ٹچ سے غلط سگنل کو کم کرتی ہے.
  3. پروگرام شدہ سٹاپ نقصان اور ٹریلنگ سٹاپ میکانزم سے مؤثر رسک کنٹرول۔
  4. غیر قانونی سگنل کے بعد جبری منافع لینے سے فوری باہر نکلنے اور نقصان کو محدود کرنا۔

خطرے کا تجزیہ

  1. بولنگر بینڈ اور کیلٹنر چینلز دونوں حرکت پذیر اوسط اور اتار چڑھاؤ پر مبنی ہیں۔ وہ مختلف مارکیٹوں میں غلط سگنل پیدا کرسکتے ہیں۔
  2. کوئی مرکب میکانزم کا مطلب یہ ہے کہ متعدد اسٹاپ آؤٹ سے زیادہ نقصانات ہوسکتے ہیں۔
  3. ریورس سگنل اکثر ہوتے ہیں۔ پیرامیٹرز میں تبدیلیاں اس وجہ سے ہوسکتی ہیں کہ رجحان کے مواقع ضائع ہوجائیں۔

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

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

  1. حکمت عملی کی واپسی پر ٹیسٹ پیرامیٹر اثرات، جیسے لمبائی، معیاری انحراف کے ضرب وغیرہ.
  2. سگنل کی تصدیق کے لئے دیگر اشارے شامل کریں، مثال کے طور پر KDJ، MACD.
  3. خودکار پیرامیٹر کی اصلاح کے لئے مشین لرننگ کا استعمال کریں۔

خلاصہ

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © jensenvilhelm

//@version=5
strategy("BB and KC Strategy", overlay=true)

// Define the input parameters for the strategy, these can be changed by the user to adjust the strategy
kcLength = input.int(20, "KC Length", minval=1) // Length for Keltner Channel calculation
kcStdDev = input.float(2.2, "KC StdDev") // Standard Deviation for Keltner Channel calculation
bbLength = input.int(20, "BB Length", minval=1) // Length for Bollinger Bands calculation
bbStdDev = input.float(2, "BB StdDev") // Standard Deviation for Bollinger Bands calculation
volumeLength = input.int(10, "Volume MA Length", minval=1) // Length for moving average of volume calculation
stopLossPercent = input.float(1.5, "Stop Loss (%)") // Percent of price for Stop loss 
trailStopPercent = input.float(2, "Trail Stop (%)") // Percent of price for Trailing Stop
barsInTrade = input.int(20, "Bars in trade before exit", minval = 1) // Minimum number of bars in trade before considering exit

// Calculate Bollinger Bands and Keltner Channel
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bbLength, bbStdDev) // Bollinger Bands calculation
[kc_middle, kc_upper, kc_lower] = ta.kc(close, kcLength, kcStdDev) // Keltner Channel calculation

// Calculate moving average of volume
vol_ma = ta.sma(volume, volumeLength) // Moving average of volume calculation

// Plotting Bollinger Bands and Keltner Channels on the chart
plot(bb_upper, color=color.red) // Bollinger Bands upper line
plot(bb_middle, color=color.blue) // Bollinger Bands middle line
plot(bb_lower, color=color.red) // Bollinger Bands lower line
plot(kc_upper, color=color.rgb(105, 255, 82)) // Keltner Channel upper line
plot(kc_middle, color=color.blue) // Keltner Channel middle line
plot(kc_lower, color=color.rgb(105, 255, 82)) // Keltner Channel lower line

// Define entry conditions: long position if upper KC line crosses above upper BB line and volume is above MA of volume
// and short position if lower KC line crosses below lower BB line and volume is above MA of volume
longCond = ta.crossover(kc_upper, bb_upper) and volume > vol_ma // Entry condition for long position
shortCond = ta.crossunder(kc_lower, bb_lower) and volume > vol_ma // Entry condition for short position

// Define variables to store entry price and bar counter at entry point
var float entry_price = na // variable to store entry price
var int bar_counter = na // variable to store bar counter at entry point

// Check entry conditions and if met, open long or short position
if (longCond)
    strategy.entry("Buy", strategy.long) // Open long position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter
if (shortCond)
    strategy.entry("Sell", strategy.short) // Open short position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter

// If in a position and bar counter is not na, increment bar counter
if (strategy.position_size != 0 and na(bar_counter) == false)
    bar_counter := bar_counter + 1 // Increment bar counter

// Define exit conditions: close position if been in trade for more than specified bars
// or if price drops by more than specified percent for long or rises by more than specified percent for short
if (bar_counter > barsInTrade) // Only consider exit after minimum bars in trade
    if (bar_counter >= barsInTrade)
        strategy.close_all() // Close all positions
    // Stop loss and trailing stop
    if (strategy.position_size > 0)
        strategy.exit("Sell", "Buy", stop=entry_price * (1 - stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for long position
    else if (strategy.position_size < 0)
        strategy.exit("Buy", "Sell", stop=entry_price * (1 + stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for short position


مزید