Bullish Engulfing خرید و فروخت کی حکمت عملی


تخلیق کی تاریخ: 2023-12-27 14:25:11 آخر میں ترمیم کریں: 2023-12-27 14:25:11
کاپی: 0 کلکس کی تعداد: 724
1
پر توجہ دیں
1621
پیروکار

Bullish Engulfing خرید و فروخت کی حکمت عملی

جائزہ

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

اس حکمت عملی کے اہم فوائد یہ ہیں:

  1. تکنیکی تجزیہ کی اعلی درجے کی تھیوری کی بنیاد پر ، قیمتوں میں ردوبدل کے اعلی امکانات کی شناخت کریں
  2. سادہ اور بدیہی ٹریڈنگ سگنل
  3. خطرے پر قابو پانا

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

اس حکمت عملی کی بنیاد پر قیمتوں کے الٹ جانے کا فیصلہ کیا جاتا ہے۔

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

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

حکمت عملی کا تجزیہ

یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:

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

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

اس حکمت عملی کے کچھ خطرات بھی ہیں:

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

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

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

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
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/
// © thequantscience

// ██████╗ ██╗   ██╗██╗     ██╗     ██╗███████╗██╗  ██╗    ███████╗███╗   ██╗ ██████╗ ██╗   ██╗██╗     ███████╗██╗███╗   ██╗ ██████╗ 
// ██╔══██╗██║   ██║██║     ██║     ██║██╔════╝██║  ██║    ██╔════╝████╗  ██║██╔════╝ ██║   ██║██║     ██╔════╝██║████╗  ██║██╔════╝ 
// ██████╔╝██║   ██║██║     ██║     ██║███████╗███████║    █████╗  ██╔██╗ ██║██║  ███╗██║   ██║██║     █████╗  ██║██╔██╗ ██║██║  ███╗
// ██╔══██╗██║   ██║██║     ██║     ██║╚════██║██╔══██║    ██╔══╝  ██║╚██╗██║██║   ██║██║   ██║██║     ██╔══╝  ██║██║╚██╗██║██║   ██║
// ██████╔╝╚██████╔╝███████╗███████╗██║███████║██║  ██║    ███████╗██║ ╚████║╚██████╔╝╚██████╔╝███████╗██║     ██║██║ ╚████║╚██████╔╝
// ╚═════╝  ╚═════╝ ╚══════╝╚══════╝╚═╝╚══════╝╚═╝  ╚═╝    ╚══════╝╚═╝  ╚═══╝ ╚═════╝  ╚═════╝ ╚══════╝╚═╝     ╚═╝╚═╝  ╚═══╝ ╚═════╝ 
                                                                                                                                  
//@version=5
strategy(
     "Buy&Sell Bullish Engulfing - The Quant Science",
     overlay = true,
     default_qty_type = strategy.percent_of_equity, 
     default_qty_value = 100,
     pyramiding = 1,
     currency = currency.EUR,
     initial_capital = 10000,
     commission_type = strategy.commission.percent,
     commission_value = 0.07,
     process_orders_on_close = true, 
     close_entries_rule = "ANY"
     )

startDate  = input.int(title="D: ", defval=1,    minval=1,    maxval=31,   inline = 'Start', group = "START DATE BACKTESTING", tooltip = "D is Day, M is Month, Y is Year.")
startMonth = input.int(title="M: ", defval=1,    minval=1,    maxval=12,   inline = 'Start', group = "START DATE BACKTESTING", tooltip = "D is Day, M is Month, Y is Year.")
startYear  = input.int(title="Y: ", defval=2022, minval=1800, maxval=2100, inline = 'Start', group = "START DATE BACKTESTING", tooltip = "D is Day, M is Month, Y is Year.")

endDate    = input.int(title="D: ", defval=31,   minval=1,    maxval=31,   inline = 'End',   group = "END DATE BACKTESTING", tooltip = "D is Day, M is Month, Y is Year.")
endMonth   = input.int(title="M: ", defval=12,   minval=1,    maxval=12,   inline = 'End',   group = "END DATE BACKTESTING", tooltip = "D is Day, M is Month, Y is Year.")
endYear    = input.int(title="Y: ", defval=2023, minval=1800, maxval=2100, inline = 'End',   group = "END DATE BACKTESTING", tooltip = "D is Day, M is Month, Y is Year.")

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

PROFIT   = input.float(defval = 1, minval = 0, title = "Target profit (%): ", step = 0.10, group = "TAKE PROFIT-STOP LOSS")
STOPLOSS = input.float(defval = 1, minval = 0, title = "Stop Loss (%): ",     step = 0.10, group = "TAKE PROFIT-STOP LOSS")

var float equity_trades = 0
strategy.initial_capital = 50000
equity_trades := strategy.initial_capital
var float equity   = 0
var float qty_order   = 0
t_ordersize = "Percentage size of each new order. With 'Reinvestment Profit' activate, the size will be calculate on the equity, with 'Reinvestment Profit' deactivate the size will be calculate on the initial capital."
orders_size = input.float(defval = 2, title = "Orders size (%): ", minval = 0.10, step = 0.10,  maxval = 100, group = "RISK MANAGEMENT", tooltip = t_ordersize)
qty_order := ((equity_trades * orders_size) / 100 ) / close 

C_DownTrend = true
C_UpTrend   = true
var trendRule1 = "SMA50"
var trendRule2 = "SMA50, SMA200"
var trendRule = input.string(trendRule1, "Detect Trend Based On", options=[trendRule1, trendRule2, "No detection"], group = "BULLISH ENGULFING")

if trendRule == trendRule1
	priceAvg = ta.sma(close, 50)
	C_DownTrend := close < priceAvg
	C_UpTrend := close > priceAvg

if trendRule == trendRule2
	sma200 = ta.sma(close, 200)
	sma50  = ta.sma(close, 50)
	C_DownTrend := close < sma50 and sma50 < sma200
	C_UpTrend := close > sma50 and sma50 > sma200
C_Len = 14
C_ShadowPercent = 5.0 
C_ShadowEqualsPercent = 100.0
C_DojiBodyPercent = 5.0
C_Factor = 2.0 

C_BodyHi = math.max(close, open)
C_BodyLo = math.min(close, open)
C_Body = C_BodyHi - C_BodyLo
C_BodyAvg = ta.ema(C_Body, C_Len)
C_SmallBody = C_Body < C_BodyAvg
C_LongBody = C_Body > C_BodyAvg
C_UpShadow = high - C_BodyHi
C_DnShadow = C_BodyLo - low
C_HasUpShadow = C_UpShadow > C_ShadowPercent / 100 * C_Body
C_HasDnShadow = C_DnShadow > C_ShadowPercent / 100 * C_Body
C_WhiteBody = open < close
C_BlackBody = open > close
C_Range = high-low
C_IsInsideBar = C_BodyHi[1] > C_BodyHi and C_BodyLo[1] < C_BodyLo
C_BodyMiddle = C_Body / 2 + C_BodyLo
C_ShadowEquals = C_UpShadow == C_DnShadow or (math.abs(C_UpShadow - C_DnShadow) / C_DnShadow * 100) < C_ShadowEqualsPercent and (math.abs(C_DnShadow - C_UpShadow) / C_UpShadow * 100) < C_ShadowEqualsPercent
C_IsDojiBody = C_Range > 0 and C_Body <= C_Range * C_DojiBodyPercent / 100
C_Doji = C_IsDojiBody and C_ShadowEquals

patternLabelPosLow  = low  - (ta.atr(30) * 0.6)
patternLabelPosHigh = high + (ta.atr(30) * 0.6)

label_color_bullish = input.color(color.rgb(43, 255, 0), title = "Label Color Bullish", group = "BULLISH ENGULFING")
C_EngulfingBullishNumberOfCandles = 2
C_EngulfingBullish = C_DownTrend and C_WhiteBody and C_LongBody and C_BlackBody[1] and C_SmallBody[1] and close >= open[1] and open <= close[1] and ( close > open[1] or open < close[1] )
if C_EngulfingBullish
    var ttBullishEngulfing = "Engulfing\nAt the end of a given downward trend, there will most likely be a reversal pattern. To distinguish the first day, this candlestick pattern uses a small body, followed by a day where the candle body fully overtakes the body from the day before, and closes in the trend’s opposite direction. Although similar to the outside reversal chart pattern, it is not essential for this pattern to completely overtake the range (high to low), rather only the open and the close."
    label.new(bar_index, patternLabelPosLow, text="BE", style=label.style_label_up, color = label_color_bullish, textcolor=color.white, tooltip = ttBullishEngulfing)
bgcolor(ta.highest(C_EngulfingBullish?1:0, C_EngulfingBullishNumberOfCandles)!=0 ? color.new(#21f321, 90) : na, offset=-(C_EngulfingBullishNumberOfCandles-1))

var float c       = 0
var float o       = 0
var float c_exit  = 0
var float c_stopl = 0

if C_EngulfingBullish and strategy.opentrades==0 and inDateRange 
    c := strategy.equity
    o := close
    c_exit  := c + (c * PROFIT / 100)
    c_stopl := c - (c * STOPLOSS / 100)
    strategy.entry(id = "LONG", direction = strategy.long, qty = qty_order, limit = o)

if ta.crossover(strategy.equity, c_exit)
    strategy.exit(id = "CLOSE-LONG", from_entry = "LONG", limit = close)
if ta.crossunder(strategy.equity, c_stopl)
    strategy.exit(id = "CLOSE-LONG", from_entry = "LONG", limit = close)