پیٹرن پر مبنی کینڈل سٹک کی حکمت عملی


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

جائزہ

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

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

اس حکمت عملی کے تحت سگنل کا تعین مندرجہ ذیل شکلوں پر کیا جاتا ہے:

  • نگلنے کی شکل: کثیر سر نگلنے اور خالی سر نگلنے کی شکل کی شناخت
  • کشش ثقل کی لائن / ابر ابر: کثیر سر کشش ثقل کی لائن اور خالی سر ابر ابر کی شکل کی شناخت
  • کراس اسٹار: کثیر سر والے کراس اسٹار اور خالی سر والے کراس اسٹار کی شکل کی شناخت
  • صبح کا ستارہ / شام کا ستارہ: کثیر سر صبح کا ستارہ اور خالی سر شام کا ستارہ کی شکل کی شناخت
  • کمربند کی گرفتاری: کثیر اور خالی سر کی گرفتاری کی کمربند کی شکل کی شناخت
  • تین کرب / تین سفید فوجی: تین کرب اور تین سفید فوجی کی شناخت
  • جنوبی چاند: جنوبی چاند کی شکل کی شناخت
  • ٹوسس لائن: ٹوسس لائن کی شکل کو پہچاننا
  • کانفرنس لائن: کثیر اور خالی کانفرنس لائن کی شناخت
  • ٹو ٹانگوں کی لکیریں: کثیر اور خالی ٹو ٹانگوں کی لکیروں کی شناخت
  • ٹرڈی بیس: ٹرڈی بیس کی شکل کی شناخت

جب مذکورہ بالا اسٹاپ سگنل کی نشاندہی کی جاتی ہے تو ، فکسڈ اسٹاپ اسٹاپ کے ساتھ ایک آرڈر لگائیں ، اور ٹریڈ ٹرینڈ ٹریڈنگ کریں۔ اس کے ساتھ ساتھ موبائل اسٹاپ اور موبائل اسٹاپ کے ساتھ مل کر رسک مینجمنٹ کریں۔

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

اسٹریٹجک فوائد

  1. کلاسیکی کدو شکل پر مبنی ، جس میں کچھ یونیورسل خصوصیات ہیں۔

  2. میکانی تجارت کو سختی سے شکل کے اصولوں پر عمل پیرا ہونا چاہئے ، جس میں کسی بھی طرح کا اثر و رسوخ نہیں ہوتا ہے۔

  3. اسٹاپ نقصان کی روک تھام کی ترتیب معقول ہے ، جس سے کسی بھی تجارت کے خطرے کو زیادہ سے زیادہ کنٹرول کیا جاسکتا ہے۔

  4. ایک موبائل سٹاپ نقصان روکنے کے طریقہ کار کو شامل کرنے کے لئے، مارکیٹ کے مطابق سٹاپ نقصان کی لائن کو ایڈجسٹ کرنے کے قابل.

  5. ہم آہنگ فلٹرز آپ کے فیصلے میں اضافہ کرتے ہیں اور آپ کو دھوکہ دہی سے بچاتے ہیں۔

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

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

  2. اسٹیٹک اسٹاپ مارکیٹ کے اچانک واقعات کے خطرے سے مکمل طور پر گریز نہیں کرسکتا ہے۔ اس سے زیادہ وسیع اسٹاپ کا تعین کیا جاسکتا ہے ، یا متحرک اسٹاپ کا استعمال کیا جاسکتا ہے۔

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

  4. اوسط لائن فلٹر کچھ مواقع سے محروم ہوسکتا ہے۔ آپ اوسط لائن دورانیے کو کم کرسکتے ہیں ، یا اوسط لائن فلٹر کو منسوخ کرسکتے ہیں۔

  5. کثیر سر سگنل اور خالی سر سگنل ایک ساتھ نہیں پکڑ سکتے ، ایک ہی وقت میں منافع کمانے میں دشواری کی حدود موجود ہیں۔ آپ کثیر سر اور خالی سر کے لئے الگ الگ حکمت عملی تشکیل دے سکتے ہیں ، اور وقت کے لحاظ سے چل سکتے ہیں۔

اصلاح کی سمت

  1. پہچان میں بہتری لانے کے لئے مرجان کی شکل کے پیرامیٹرز کو بہتر بنائیں۔

  2. مختلف موبائل نقصانات کو روکنے کے طریقوں کو آزمائیں اور بہترین حل تلاش کریں.

  3. زیادہ اعلی درجے کی خطرے کے انتظام کے طریقوں کی کوشش کریں ، جیسے فنڈ مینجمنٹ ، اتار چڑھاؤ کی شرح کو روکنا ، وغیرہ۔

  4. مزید فلٹرنگ اشارے شامل کریں تاکہ فلٹرنگ کو بہتر بنایا جا سکے۔

  5. مشین لرننگ اور دیگر طریقوں کو آزمائیں تاکہ آپ کو ایک نمونہ کے مطابق فیصلہ کرنے کا موقع ملے۔

  6. ایک ہی وقت میں ایک سے زیادہ اور خالی سر سگنل کے لئے حکمت عملی کی منطق تیار کریں.

خلاصہ کریں۔

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

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

//@version=2
strategy("Candle Patterns Strategy - 2", shorttitle="CPS - 2", overlay=true)
// New risk management system: order entry, moving stop loss to breakeven + moving average filter (SMA)

//--- Patterns Input ---

OnEngulfing = input(defval=true, title="Engulfing", type=bool)
OnHarami = input(defval=true, title="Harami", type=bool)
OnPiercingLine = input(defval=true, title="Piercing Line / Dark Cloud Cover", type=bool)
OnMorningStar = input(defval=true, title="Morning Star / Evening Star ", type=bool)
OnBeltHold = input(defval=true, title="Belt Hold", type=bool)
OnThreeWhiteSoldiers = input(defval=true, title="Three White Soldiers / Three Black Crows", type=bool)
OnThreeStarsInTheSouth = input(defval=true, title="Three Stars in the South", type=bool)
OnStickSandwich = input(defval=true, title="Stick Sandwich", type=bool)
OnMeetingLine = input(defval=true, title="Meeting Line", type=bool)
OnKicking = input(defval=true, title="Kicking", type=bool)
OnLadderBottom = input(defval=true, title="Ladder Bottom", type=bool)

//--- Risk Management Input ---
tick = input (defval = 0.01, title="Tick Size", minval = 0.001)
inpsl = input(defval = 10, title="Stop Loss", minval = 1)
inptp = input(defval = 100, title="Take Profit", minval = 1)
inpbm = input (defval=10, title="Breakeven Margin", minval = 1)
inpindent = input(defval = 5, title="Price Movement Confirmation", minval = 0)
InpSmaFilter = input(defval=false, title="MA Filter", type=bool)
maPer=input(defval = 50, title="MA Period", minval = 1)
//inptrail = input(defval = 0, title="Trailing Stop", minval = 0)
// If the zero value is set for stop loss, take profit or trailing stop, then the function is disabled
//sl = inpsl >= 1 ? inpsl : na
sl = inpsl * tick
bm = inpbm * tick
tp = inptp //* tick
indent = inpindent * tick
//trail = inptrail >= 1 ? inptrail : na

//--- Session Input ---

sess = input(defval = "0000-0000", title="Trading Session")
t = time(timeframe.period, sess)
session_open = na(t) ? false : true

// --- Candlestick Patterns ---

//Engulfing 
bullish_engulfing = high[0]>high[1] and low[0]<low[1] and open[0]<open[1] and close[0]>close[1] and close[0]>open[0] and close[1]<close[2] and close[0]>open[1] ? OnEngulfing : na
bearish_engulfing = high[0]>high[1] and low[0]<low[1] and open[0]>open[1] and close[0]<close[1] and close[0]<open[0] and close[1]>close[2] and close[0]<open[1] ? OnEngulfing : na

//Harami
bullish_harami =  open[1]>close[1] and close[1]<close[2] and open[0]>close[1] and open[0]<open[1] and close[0]>close[1] and close[0]<open[1] and high[0]<high[1] and low[0]>low[1] and close[0]>=open[0] ? OnHarami : na
bearish_harami =   open[1]<close[1] and close[1]>close[2] and open[0]<close[1] and open[0]>open[1] and close[0]<close[1] and close[0]>open[1] and high[0]<high[1] and low[0]>low[1] and close[0]<=open[0] ? OnHarami : na

//Piercing Line/Dark Cloud Cover 
piercing_line = close[2]>close[1] and open[0]<low[1] and close[0]>avg(open[1],close[1]) and close[0]<open[1] ? OnPiercingLine : na
dark_cloud_cover = close[2]<close[1] and open[0]>high[1] and close[0]<avg(open[1],close[1]) and close[0]>open[1] ? OnPiercingLine : na

//Morning Star/Evening Star
morning_star = close[3]>close[2] and close[2]<open[2] and open[1]<close[2] and close[1]<close[2] and open[0]>open[1] and open[0]>close[1] and close[0]>close[2] and open[2]-close[2]>close[0]-open[0] ? OnMorningStar : na
evening_star = close[3]<close[2] and close[2]>open[2] and open[1]>close[2] and close[1]>close[2] and open[0]<open[1] and open[0]<close[1] and close[0]<close[2] and close[2]-open[2]>open[0]-close[0] ? OnMorningStar : na

//Belt Hold
bullish_belt_hold = close[1]<open[1] and low[1]>open[0] and close[1]>open[0] and open[0]==low[0] and close[0]>avg(close[0],open[0]) ? OnBeltHold :na
bearish_belt_hold =  close[1]>open[1] and high[1]<open[0] and close[1]<open[0] and open[0]==high[0] and close[0]<avg(close[0],open[0]) ? OnBeltHold :na

//Three White Soldiers/Three Black Crows 
three_white_soldiers = close[3]<open[3] and open[2]<close[3] and close[2]>avg(close[2],open[2]) and open[1]>open[2] and open[1]<close[2] and close[1]>avg(close[1],open[1]) and open[0]>open[1] and open[0]<close[1] and close[0]>avg(close[0],open[0]) and high[1]>high[2] and high[0]>high[1] ? OnThreeWhiteSoldiers : na
three_black_crows =  close[3]>open[3] and open[2]>close[3] and close[2]<avg(close[2],open[2]) and open[1]<open[2] and open[1]>close[2] and close[1]<avg(close[1],open[1]) and open[0]<open[1] and open[0]>close[1] and close[0]<avg(close[0],open[0]) and low[1]<low[2] and low[0]<low[1] ? OnThreeWhiteSoldiers : na

//Three Stars in the South
three_stars_in_the_south = open[3]>close[3] and open[2]>close[2] and open[2]==high[2] and open[1]>close[1] and open[1]<open[2] and open[1]>close[2] and low[1]>low[2] and open[1]==high[1] and open[0]>close[0] and open[0]<open[1] and open[0]>close[1] and open[0]==high[0] and close[0]==low[0] and close[0]>=low[1] ? OnThreeStarsInTheSouth : na

//Stick Sandwich
stick_sandwich = open[2]>close[2] and open[1]>close[2] and open[1]<close[1] and open[0]>close[1] and open[0]>close[0] and close[0]==close[2] ? OnStickSandwich : na

//Meeting Line 
bullish_ml = open[2]>close[2] and open[1]>close[1] and close[1]==close[0] and open[0]<close[0] and open[1]>=high[0] ? OnMeetingLine : na
bearish_ml = open[2]<close[2] and open[1]<close[1] and close[1]==close[0] and open[0]>close[0] and open[1]<=low[0] ? OnMeetingLine : na

//Kicking 
bullish_kicking =  open[1]>close[1] and open[1]==high[1] and close[1]==low[1] and open[0]>open[1] and open[0]==low[0] and close[0]==high[0] and close[0]-open[0]>open[1]-close[1] ? OnKicking : na
bearish_kicking = open[1]<close[1] and open[1]==low[1] and close[1]==high[1] and open[0]<open[1] and open[0]==high[0] and close[0]==low[0] and open[0]-close[0]>close[1]-open[1] ? OnKicking : na

//Ladder Bottom
ladder_bottom = open[4]>close[4] and open[3]>close[3] and open[3]<open[4] and open[2]>close[2] and open[2]<open[3] and open[1]>close[1] and open[1]<open[2] and open[0]<close[0] and open[0]>open[1] and low[4]>low[3] and low[3]>low[2] and low[2]>low[1] ? OnLadderBottom : na

// --- Plotting Patterns ---

plotshape(bullish_engulfing, text='Engulfing', style=shape.triangleup, color=#1FADA2, editable=true, title="Bullish Engulfing Text")
plotshape(bearish_engulfing,text='Engulfing', style=shape.triangledown, color=#F35A54, editable=true, title="Bearish Engulfing Text")
plotshape(bullish_harami,text='Harami', style=shape.triangleup, color=#1FADA2, editable=true, title="Bullish Harami Text")
plotshape(bearish_harami,text='Harami', style=shape.triangledown, color=#F35A54, editable=true, title="BEarish Harami Text")
plotshape(piercing_line,text='Piercing Line', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(dark_cloud_cover,text='Dark Cloud Cover', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(morning_star,text='Morning Star', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(evening_star,text='Evening Star', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(bullish_belt_hold,text='Belt Hold', style=shape.triangleup, color=#1FADA2, editable=false)    
plotshape(bearish_belt_hold,text='Belt Hold', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(three_white_soldiers,text='Three White Soldiers', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(three_black_crows,text='Three Black Crows', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(three_stars_in_the_south,text='3 Stars South', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(stick_sandwich,text='Stick Sandwich', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(bullish_ml,text='Meeting Line', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(bearish_ml,text='Meeting Line', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(bullish_kicking,text='Kicking', style=shape.triangleup, color=#1FADA2, editable=false)
plotshape(bearish_kicking,text='Kicking', style=shape.triangledown, color=#F35A54, editable=false)
plotshape(ladder_bottom,text='Ladder Bottom', style=shape.triangleup, color=#1FADA2, editable=false)

// --- STRATEGY ---

SignalUp = bullish_engulfing or bullish_harami or piercing_line or morning_star or bullish_belt_hold or three_white_soldiers or three_stars_in_the_south or stick_sandwich or bullish_ml or bullish_kicking or ladder_bottom
SignalDown = bearish_engulfing or bearish_harami or dark_cloud_cover or evening_star or bearish_belt_hold or three_black_crows or bearish_ml or bearish_kicking

PointOfEntry = SignalUp ? high[0] + indent : SignalDown ? low[0] - indent : na

bu = strategy.position_avg_price
shlo = strategy.position_size
stL = shlo > 0 and close [0] > bu + bm ? bu : shlo < 0 and close [0] < bu - bm ? bu : na
du = sma(close, maPer)
smaF = SignalUp and high[0]>du[0] ? true : SignalUp and high[0]<du[0] ? false : SignalDown and high[0]>du[0] ? false : SignalDown and high[0]<du[0] ? true : na 
smaFilter = InpSmaFilter ? smaF : true
duplot = InpSmaFilter ? du : na
plot(duplot, color=red)

// -- Orders --

strategy.order("buy", true, stop = PointOfEntry, oca_name = "trade",  when = SignalUp and session_open and smaFilter)
strategy.cancel("buy", when = not session_open or SignalDown or strategy.opentrades > 0)
strategy.order("stop sell", false, stop = bu-sl, oca_name = "trade",  when = strategy.opentrades > 0 and shlo > 0 and session_open)
strategy.cancel("stop sell", close [0] > bu + bm or not session_open or strategy.opentrades == 0 )
strategy.order("breakeven sell", false, stop = bu + 1*tick, oca_name = "trade",  when = strategy.opentrades > 0 and shlo > 0 and close [0] > bu + bm and session_open)
strategy.cancel("breakeven sell", when = strategy.opentrades == 0 or not session_open)

strategy.order("sell", false, stop = PointOfEntry, oca_name = "trade",  when = SignalDown and session_open and smaFilter)
strategy.cancel("sell", when = not session_open or SignalUp or strategy.opentrades > 0)
strategy.order("stop buy", true, stop = bu+sl, oca_name = "trade",  when = strategy.opentrades > 0 and shlo < 0 and session_open)
strategy.cancel("stop buy", when = close [0] < bu - bm or not session_open or  strategy.opentrades == 0 )
strategy.order("breakeven buy", true, stop = bu - 1 * tick, oca_name = "trade",  when = strategy.opentrades > 0 and shlo < 0 and close [0] < bu - bm and session_open)
strategy.cancel("breakeven buy", when = strategy.opentrades == 0 or not session_open)

strategy.close("buy", when = not session_open or SignalDown )
strategy.close("sell", when = not session_open or SignalUp)
strategy.exit("Take Profit", from_entry = "buy", profit = tp)
strategy.exit("Take Profit", from_entry = "sell", profit = tp)