پیٹرن کی شناخت لٹکی گردن تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-18 14:14:51 آخر میں ترمیم کریں: 2023-09-18 14:14:51
کاپی: 0 کلکس کی تعداد: 692
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

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

شناخت کریں کہ آیا موجودہ K لائن ہینج لائن کی شکل کی ضروریات کو پورا کرتی ہے: ادارہ نچلے نصف حصے میں ہے ، اور بندش اور قیمت قریب قریب ہے۔ اس کے برعکس ، متعدد سگنل ، ادارہ اوپری نصف حصے میں ہے ، اور بندش قریب قریب ہے۔ آخری تجارتی سگنل کی K لائن تلاش کریں ، اور اس K لائن ادارے کی اونچائی کا حساب لگائیں۔ اس اونچائی کا N بار اسٹاپ اور اس اونچائی کا M بار اسٹاپ (M N سے کم ہے) ۔

اسٹاپ اور نقصان کی لائنوں کو ٹرگر کرنے سے پہلے ٹریڈنگ شروع کریں اور سٹاپ اور نقصان کی لائنوں کو ٹرگر کرنے سے پہلے ٹریڈنگ شروع کریں۔

طاقت کا تجزیہ

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

خطرے کا تجزیہ

  • شکل کی شناخت کی درستگی 100 فیصد تک نہیں پہنچ سکتی
  • اسٹاپ نقصان کی حد حد سے کم ہوسکتی ہے جس کی قیمت میں اتار چڑھاؤ ہوسکتا ہے
  • ٹرینڈ ٹریک کرنے کے لئے وقت پر اسٹاپ لائنز کو منتقل کرنے کی ضرورت ہے

اس کے علاوہ، آپ کو آپٹمائزڈ پیرامیٹرز، معاون اشارے اور دیگر طریقوں کے ذریعے خطرے کو کم کرنے کے لئے استعمال کر سکتے ہیں.

اصلاح کی سمت

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

خلاصہ کریں۔

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

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

//@version=5
// 
// Pinbar strategy script by samgozman (https://github.com/samgozman)
// 
// Detailed instruction how to use this script: https://github.com/samgozman/pinbar-strategy-tradingview
//
// If you liked the script and want to support me: https://paypal.me/sgozman
// 
// ++++++++++ Warning: The script is provided for educational purposes only. ++++++++++ //

strategy('Pinbar strategy', default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=10000)

profitMultiplier = input.float(2.0, "Profit multiplier", minval=0.1, step=0.1, group="Profit options", tooltip="X times signal candle size from high")
lossMultiplier =  input.float(1.0, "Loss multiplier", minval=0.1, step=0.1, group="Profit options", tooltip="X times signal candle size from low")

isTrailingStop = input.bool(true, "Use trailing stops?", group="Trading options", tooltip="Highly recommended!")
isCloseOnOppositSignal = input.bool(false, "Close trade if opposit signal occures?", group="Trading options", tooltip="Close long on short signal")
isLongEligible = input.bool(true, "Enter long trades?", group="Trading options")
isShortEligible = input.bool(true, "Enter short trades?", group="Trading options")

useDateFilter = input.bool(true, title="Begin Backtest at Start Date", group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2021"), title="Start Date", group="Backtest Time Period")

// Predefined time trading zone for back testing
inTradeWindow = true

// HELPER FUNCTIONS //

// calculate candle size for N bars back. Use 0 for current
calcCandle(int periods) =>
    math.abs(high[periods] - low[periods])

// if body is below 50% and close/open below 30%
isBearishPinbar(float candle) =>
    lower30 = low + candle * 0.30
    bottomHalf1 = close < hl2
    bottomHalf2 = open < hl2
    lowerRegion1 = close < lower30
    lowerRegion2 = open < lower30
    
    con1 = bottomHalf1 and bottomHalf2
    con2 = lowerRegion1 and lowerRegion2
    con3 = high > high[1]
    
    con1 and con2 and con3

// if body is above 50% and close/open above 30%  
isBullishPinbar(float candle) =>
    upper30 = high - candle * 0.30
    topHalf1 = close > hl2
    topHalf2 = open > hl2
    upperRegion1 = close > upper30
    upperRegion2 = open > upper30
    
    con1 = topHalf1 and topHalf2
    con2 = upperRegion1 and upperRegion2
    con3 = low < low[1]
    
    con1 and con2 and con3
    
barsSinceLastEntry() =>
    strategy.opentrades > 0 ? bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) : na

// Calculate trading signals
currentCandle = calcCandle(0)
longSignal = isBullishPinbar(currentCandle) and inTradeWindow
shortSignal = isBearishPinbar(currentCandle) and inTradeWindow

// ENTER THE TRADE //
if longSignal and isLongEligible
    strategy.entry("buy", strategy.long, when = strategy.position_size == 0)

if shortSignal and isShortEligible 
    strategy.entry("sell", strategy.short, when = strategy.position_size == 0)

// CALCULATE STOPS //
barsSinceEntry = barsSinceLastEntry()
candleFromEntry = calcCandle(barsSinceEntry)
// long
long_take_limit = strategy.position_avg_price + (candleFromEntry*profitMultiplier)
long_target_percent_profit = long_take_limit / strategy.position_avg_price - 1
long_target_percent_loss = (long_target_percent_profit / profitMultiplier) * lossMultiplier
long_stop_limit = low[barsSinceEntry] * (1 - long_target_percent_loss)
//short
short_take_limit = strategy.position_avg_price - (candleFromEntry*profitMultiplier)
short_target_percent_profit = strategy.position_avg_price / short_take_limit - 1
short_target_percent_loss = (short_target_percent_profit / profitMultiplier) * lossMultiplier
short_stop_limit = high[barsSinceEntry] * (1 + short_target_percent_loss)

// EXIT THE TRADE //
if strategy.position_size > 0 or strategy.position_size < 0
    if isTrailingStop
        strategy.exit(id="exit", from_entry="buy", trail_price = long_take_limit, stop=long_stop_limit)
        strategy.exit(id="exit", from_entry="sell", trail_price = short_take_limit, stop=short_stop_limit)
    else
        strategy.exit(id="exit", from_entry="buy", limit = long_take_limit, stop=long_stop_limit)
        strategy.exit(id="exit", from_entry="sell", limit = short_take_limit, stop=short_stop_limit)
    if isCloseOnOppositSignal
        strategy.close("buy", when = shortSignal)
        strategy.close("sell", when = longSignal)

// PLOT SIGNALS //
plotshape(longSignal, style=shape.arrowup, color=color.new(color.green, 0), size=size.large, location=location.belowbar)
plotshape(shortSignal, style=shape.arrowdown, color=color.new(color.red, 0), size=size.large, location=location.abovebar)