یہ حکمت عملی تین مختلف تکنیکی اشارے کا ایک مجموعہ استعمال کرتی ہے تاکہ ایک کراس سائیکل آربراجی حکمت عملی تیار کی جاسکے جو کم خطرہ سے زیادہ منافع حاصل کرنے کے لئے مختلف ٹائم فریموں میں قیمت کے رجحانات کو پکڑتی ہے۔
اس حکمت عملی میں استعمال ہونے والے تین تکنیکی اشارے کیلٹنر چینل (KC) ، اتار چڑھاؤ اسٹاپ (Vstop) ، اور ولیمز ایلیگیٹر (WAE) ہیں۔ کیلٹنر چینل کا استعمال اس بات کا تعین کرنے کے لئے کیا جاتا ہے کہ کیا قیمتیں چینل کی حد سے باہر ہیں اور اس طرح تجارتی سگنل تیار کرتے ہیں۔ اتار چڑھاؤ اسٹاپ کا استعمال متحرک طور پر اسٹاپ نقصان کی پوزیشنوں کو ایڈجسٹ کرنے کے لئے کیا جاتا ہے تاکہ غیر ضروری اسٹاپ نقصان کو کم کرتے ہوئے اسٹاپ نقصان کو یقینی بنایا جاسکے۔ ولیمز ایلیگیٹر اشارے کا استعمال اس بات کا تعین کرنے کے لئے کیا جاتا ہے کہ کیا قیمتیں مضبوط رجحان میں ہیں۔ خاص طور پر:
جب قیمت Keltner Channel کے اوپری ریل سے زیادہ ہوتی ہے ، تو اسے تیزی کا اشارہ سمجھا جاتا ہے۔ جب قیمت Keltner Channel کے نچلے ریل سے کم ہوتی ہے ، تو اسے bearish سگنل سمجھا جاتا ہے۔
اتار چڑھاؤ اسٹاپ قیمت کی اتار چڑھاؤ اور چینل کی چوڑائی کی بنیاد پر اسٹاپ نقصان کی پوزیشن طے کرتا ہے۔ یہ انتہائی محتاط اسٹاپ نقصان کی پوزیشنوں سے بچتے ہوئے اسٹاپ نقصان کو یقینی بنانے کے لئے متحرک طور پر ایڈجسٹ کرسکتا ہے۔
ولیمز ایلیگیٹر اشارے کا حساب MACD اور بولنگر بینڈ چینل کی چوڑائی کے حساب سے کیا جاتا ہے کہ کیا قیمتیں مضبوط اپ ٹرینڈ یا ڈاؤن ٹرینڈ میں ہیں۔
ان تین اشارے کو یکجا کرکے ، مختلف ٹائم فریموں میں سگنلوں کی کراس توثیق کی جاتی ہے۔ اس سے غلط فیصلے کا امکان کم ہوجاتا ہے اور ایک بہتر حکمت عملی منطق بنتی ہے۔
اس حکمت عملی کا سب سے بڑا فائدہ متعدد اشارے کے امتزاج سے آنے والے درست تجارتی سگنل ہیں۔ تینوں اشارے مختلف وقت کے فریموں میں کام کرتے ہیں اور ایک دوسرے کی تصدیق کرتے ہیں ، جو غلط فیصلے کے امکان کو مؤثر طریقے سے کم کرسکتے ہیں اور اشاروں کی درستگی کو بڑھا سکتے ہیں۔ اس کے علاوہ ، اتار چڑھاؤ اسٹاپ کی ترتیب متحرک ہے اور حقیقی وقت کی اتار چڑھاؤ کے مطابق اسٹاپ نقصان کی پوزیشن کو ایڈجسٹ کرسکتی ہے تاکہ خطرات کو مزید کنٹرول کیا جاسکے۔
ایک اشارے کی حکمت عملی کے مقابلے میں ، یہ مشترکہ حکمت عملی زیادہ درست اور موثر تجارتی سگنل فراہم کرسکتی ہے۔ ایک ہی وقت میں ، تین اشارے متعدد ٹائم فریموں میں تجارتی فیصلے کرنے کے لئے مل کر کام کرتے ہیں ، جو ایک بہت ہی سائنسی اور معقول منطق ڈیزائن ہے جس سے سیکھنے کے قابل ہے۔
اس حکمت عملی کا بنیادی خطرہ یہ ہے کہ پیرامیٹر کی غلط ترتیبات سے زیادہ فٹنگ ہوسکتی ہے۔ تینوں اشارے میں مجموعی طور پر 8 پیرامیٹرز ہیں۔ غلط ترتیبات حکمت عملی کو منفی طور پر متاثر کرسکتی ہیں۔ اس کے علاوہ ، اشارے کے مابین وزن کے تعلقات کو بھی مناسب طریقے سے تشکیل دینے کی ضرورت ہے ، بصورت دیگر سگنل ایک دوسرے کو غیر فعال کرسکتے ہیں اور ناقابل اعتبار ہوجاتے ہیں۔
ان خطرات کو کم کرنے کے لئے ، پیرامیٹرز کی ترتیب کے دوران مختلف مارکیٹ کے ماحول میں موافقت پر مکمل طور پر غور کیا جانا چاہئے ، اور بیک ٹسٹنگ تجزیہ کے ذریعہ پیرامیٹرز کے بہترین امتزاج کو ایڈجسٹ کیا جانا چاہئے۔ اس کے علاوہ ، اشارے کے مابین وزن کو مناسب طریقے سے ایڈجسٹ کریں تاکہ یہ یقینی بنایا جاسکے کہ تجارتی سگنل کو مؤثر طریقے سے متحرک کیا جاسکے۔ جب لگاتار نقصانات ہوتے ہیں تو ، نقصانات پر قابو پانے کے لئے پوزیشن کا سائز کم کرنے پر غور کریں۔
اس حکمت عملی کی اصلاح کی جگہ بنیادی طور پر دو پہلوؤں پر مرکوز ہے: پیرامیٹر ٹوننگ اور اسٹاپ نقصان کی حکمت عملیوں کو بہتر بنانا۔ خاص طور پر ، مندرجہ ذیل پہلوؤں پر غور کیا جاسکتا ہے۔
اشارے کے پیرامیٹرز کو زیادہ سائنسی طور پر منتخب کریں اور پیرامیٹر کے مجموعوں کو بہتر بنائیں۔ الگورتھم کو زیادہ سے زیادہ منافع اور خطرے کو کم کرنے جیسے مقاصد کے ساتھ زیادہ سے زیادہ پیرامیٹرز تلاش کرنے کے لئے استعمال کیا جاسکتا ہے۔
اسٹاپ نقصان کی حکمت عملی کو بہتر بنائیں تاکہ غیر ضروری اسٹاپ نقصان کو مزید کم کیا جاسکے جبکہ اسٹاپ نقصان کو یقینی بنایا جاسکے ، اس طرح جیت کی شرح کو بہتر بنایا جاسکے۔ مثال کے طور پر ، اسٹاپ نقصان کے اشارے کے طور پر مزید اشارے شامل کریں ، یا اسٹاپ نقصان کی پوزیشنوں کی ترقی پسند واپسی کا تعین کریں۔
غلط فیصلے کی شرح کو کم کرنے کے لئے اشارے اور تجارتی سگنل کے فیصلوں کی منطق کے مابین وزن کو بہتر بنائیں۔ زیادہ مستحکم اور قابل اعتماد فیصلے کے قواعد بنانے کے لئے قیمت کے طرز عمل کی مزید خصوصیات متعارف کروائی جاسکتی ہیں۔
خودکار پیرامیٹر کی اصلاح حاصل کرنے کے لئے مشین لرننگ ماڈل متعارف کرانے کی کوشش کریں۔ یا حکمت عملی کے جائزے اور بہتری کے لئے گہری تقویت سیکھنے کی پروگرامنگ کا استعمال کریں۔
اس حکمت عملی میں کیلٹنر چینل ، Volatility Stop اور Williams Alligator کے امتزاج کے ذریعے ایک کراس سائیکل آربراجیج سسٹم بنایا گیا ہے۔ کثیر اشارے کا امتزاج سگنل کی درستگی کو بہتر بناتا ہے اور متحرک اسٹاپ نقصان کے خطرات کو کنٹرول کرتا ہے۔ لیکن پیرامیٹرز کی ترتیب اور اصلاح میں بہتری کی گنجائش ہے۔ مجموعی طور پر ، اس حکمت عملی میں مضبوط سائنسیت ہے اور مزید تحقیق اور درخواست کے قابل ہے۔
/*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"}] */ //@version=4 strategy("QuarryLake", overlay=true) ///Ultilized modified full kelly for this strategy = 36% ///Keltner channel/// nPeriod = input(title="Keltner Period", type=input.integer, defval=200, minval=1) Mult = input(title="Keltner Mult", type=input.integer, defval=5, minval=1) xPrice = ema(hlc3, nPeriod) xMove = ema(high - low, nPeriod) xMoveMult = xMove * Mult xUpper = xPrice + xMoveMult xLower = xPrice - xMoveMult // plot(xPrice, color=red, title="KSmid") p1 = plot(xUpper, color=color.white, title="KSup") p2 = plot(xLower, color=color.white, title="KSdn") fill(p1, p2, color=close > xUpper ? color.green : close < xLower ? color.red : color.white) kclongcondition = close > xUpper kcshortcondition = close < xLower kccloselongcondition = crossunder(close, xUpper) kccloseshortcondition = crossover(close, xLower) ///Volatility Stop/// length = input(title="Vstop length", type=input.integer, defval=3, minval=1) mult1 = 1.5 atr_ = atr(length) max1 = 0.0 min1 = 0.0 is_uptrend_prev = false stop = 0.0 vstop_prev = 0.0 vstop1 = 0.0 is_uptrend = false is_trend_changed = false max_ = 0.0 min_ = 0.0 vstop = 0.0 max1 := max(nz(max_[1]), close) min1 := min(nz(min_[1]), close) is_uptrend_prev := nz(is_uptrend[1], true) stop := is_uptrend_prev ? max1 - mult1 * atr_ : min1 + mult1 * atr_ vstop_prev := nz(vstop[1]) vstop1 := is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop) is_uptrend := close - vstop1 >= 0 is_trend_changed := is_uptrend != is_uptrend_prev max_ := is_trend_changed ? close : max1 min_ := is_trend_changed ? close : min1 vstop := is_trend_changed ? is_uptrend ? max_ - mult1 * atr_ : min_ + mult1 * atr_ : vstop1 plot(vstop, color=is_uptrend ? color.green : color.red, style=plot.style_line, linewidth=1) vstoplongcondition = close > vstop vstoplongclosecondition = crossunder(close, vstop) vstopshortcondition = close < vstop vstopshortclosecondition = crossover(close, vstop) ///Waddah Attar Explosion/// sensitivity = input(150, title="Sensitivity") fastLength = input(20, title="FastEMA Length") slowLength = input(40, title="SlowEMA Length") channelLength = input(20, title="BB Channel Length") mult = input(2.0, title="BB Stdev Multiplier") DEAD_ZONE = nz(rma(tr(true), 100)) * 3.7 calc_macd(source, fastLength, slowLength) => fastMA = ema(source, fastLength) slowMA = ema(source, slowLength) fastMA - slowMA calc_BBUpper(source, length, mult) => basis = sma(source, length) dev = mult * stdev(source, length) basis + dev calc_BBLower(source, length, mult) => basis = sma(source, length) dev = mult * stdev(source, length) basis - dev t1 = (calc_macd(close, fastLength, slowLength) - calc_macd(close[1], fastLength, slowLength)) * sensitivity t2 = (calc_macd(close[2], fastLength, slowLength) - calc_macd(close[3], fastLength, slowLength)) * sensitivity e1 = calc_BBUpper(close, channelLength, mult) - calc_BBLower(close, channelLength, mult) trendUp = t1 >= 0 ? t1 : 0 trendDown = t1 < 0 ? -1 * t1 : 0 waelongcondition = trendUp and trendUp > DEAD_ZONE and trendUp > e1 waeshortcondition = trendDown and trendDown > DEAD_ZONE and trendDown > e1 ///Long Entry/// longcondition = kclongcondition and vstoplongcondition and waelongcondition if longcondition strategy.entry("Long", strategy.long) ///Long exit/// closeconditionlong = kccloselongcondition or vstoplongclosecondition if closeconditionlong strategy.close("Long") ///Short Entry/// shortcondition = kcshortcondition and vstopshortcondition and waeshortcondition if shortcondition strategy.entry("Short", strategy.short) ///Short exit/// closeconditionshort = kccloseshortcondition or vstopshortclosecondition if closeconditionshort strategy.close("Short") ///Free Hong Kong, the revolution of our time///