مومنٹم سکیز اسٹریٹیجی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-14 14:04:24
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

  1. رجحان کی سمت کا تعین کرنے کے لئے لیزی بیئر کے رفتار اشارے بلیو ویو کا استعمال کریں ، جو رجحان کی سمت کا تعین کرنے کے لئے 20 دن کی اعلی ترین ، کم سے کم کم اور قریب اوسط کے مقابلے میں قریبی قیمت کی لکیری رجعت کا حساب لگاتا ہے۔ جب بلیو ویو 0 سے اوپر جاتا ہے تو ، اس سے اوپر کا رجحان ظاہر ہوتا ہے۔ جب یہ 0 سے نیچے جاتا ہے تو ، اس سے نیچے کا رجحان ظاہر ہوتا ہے۔

  2. پیسے کے بہاؤ کا تعین کرنے کے لئے کریپٹو فیس کے ذریعہ بہتر کردہ ایم ایف آئی اشارے کا استعمال کریں ، جو پچھلے 58 دنوں میں قیمتوں میں تبدیلی اور حجم کا مجموعہ شمار کرتا ہے۔ پیسے کے بہاؤ کا تعین کرنے کے لئے 0 سے زیادہ ایم ایف آئی پیسے کے بہاؤ کی نشاندہی کرتا ہے ، 0 سے کم بہاؤ کی نشاندہی کرتا ہے۔

  3. جب بلیو ویو 0 سے اوپر جاتا ہے اور ایم ایف آئی 0 سے بڑا ہوتا ہے تو ، ایک خرید سگنل تیار کیا جاتا ہے تاکہ ایک لمبی پوزیشن کھول دی جاسکے۔ جب بلیو ویو 0 سے نیچے جاتا ہے اور ایم ایف آئی 0 سے کم ہوتا ہے تو ، ایک مختصر پوزیشن کھولنے کے لئے فروخت سگنل تیار کیا جاتا ہے۔

  4. سٹاپ نقصان مقرر کریں اور منافع لینے کی شرائط کو کنٹرول کرتے ہوئے منافع کے لئے مارکیٹ کے رجحان کی پیروی کریں.

فوائد

  1. دو اشارے کو ملا کر مارکیٹ کی رجحان کی سمت کو زیادہ درست طریقے سے طے کیا جاسکتا ہے۔

  2. بلیو ویو کے ہموار منحنی خطوط کو غیر معمولی اعداد و شمار سے تعصب سے بچتا ہے، جس سے رجحان کا فیصلہ زیادہ قابل اعتماد ہوتا ہے.

  3. ایم ایف آئی پیسے کے بہاؤ کا تعین کر سکتی ہے، جھوٹے بریک آؤٹ سے ہونے والے نقصانات سے بچ سکتی ہے۔

  4. اس حکمت عملی میں چند پیرامیٹرز ہیں اور اس کا نفاذ اور کام کرنا آسان ہے۔

  5. لچکدار سٹاپ نقصان اور منافع لینے کی ترتیبات تجارتی خطرات کو کنٹرول کرنے میں مدد کرتی ہیں۔

  6. مخصوص مارکیٹ اوقات کے دوران غیر معمولی اتار چڑھاؤ سے بچنے کے لئے ٹریڈنگ سیشن مقرر کیے جاسکتے ہیں۔

خطرات

  1. مسلسل گرنے کا رجحان مسلسل مختصر پوزیشنوں اور نقصانات کا باعث بن سکتا ہے۔

  2. غلط سگنل پوزیشنوں میں داخل ہونے کے بعد پھنس جانے کا باعث بن سکتے ہیں۔

  3. زیادہ سے زیادہ سٹاپ نقصان نقصان کو بڑھا سکتا ہے.

  4. اعلی اتار چڑھاؤ اکثر سٹاپ نقصان کے مقامات کو مار سکتا ہے.

  5. نامناسب پیرامیٹر کی اصلاح سے حکمت عملی کی ناقص کارکردگی کا باعث بن سکتی ہے۔

  6. بہت کثرت سے ٹریڈنگ سگنل ٹرانزیکشن لاگت اور سلائڈج میں اضافہ کرسکتے ہیں۔

بہتری

  1. زیادہ مستحکم اور قابل اعتماد سگنل کے لئے بلیو ویو اور ایم ایف آئی کے پیرامیٹرز کو بہتر بنائیں۔

  2. مسلسل مختصر نقصانات سے بچنے کے لئے رجحان کے اشارے شامل کریں.

  3. اسٹاپ نقصان / منافع حاصل کرنے کے تناسب کو متحرک طور پر ایڈجسٹ کریں تاکہ پھنس جانے کا امکان کم ہو۔

  4. غلط سگنلز کو کم کرنے کے لیے داخلے کے حالات کو بہتر بنائیں۔

  5. ریلیوں کا پیچھا کرنے اور ڈمپنگ ڈپس سے بچنے کے لئے پوزیشن سائزنگ پر غور کریں.

  6. زیادہ درست انٹری اور آؤٹ پوائنٹس کے لئے مشین لرننگ ماڈلز کے ساتھ مل کر.

نتیجہ

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


/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2021
strategy(title="Crypto Squeeze Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)

//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1")
long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick
long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick

// Enable Short Strategy
enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3")
short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4")
short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick
short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4")
short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick

// Plot Stoploss & Take Profit Levels
long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100)
long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100)
short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100)
short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100)
plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level")
plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level")
plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level")
plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level")

// Date Range
start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range")
start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range")
end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range")
end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range")
in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0))


//// Indicator Inputs
// Lazy Bear's Momentum Indicator
BlueWave = linreg(close - avg(avg(highest(high, 20), lowest(low, 20)), sma(close, 20)), 20, 0)

// Replicated version of Crypto Face's MFI Indicator
mfiUpper = sum(volume * (change(hlc3) <= 0 ? 0 : hlc3), 58)
mfiLower = sum(volume * (change(hlc3) >= 0 ? 0 : hlc3), 58)
_mfiRsi(mfiUpper, mfiLower) =>
    if mfiLower == 0
        100
    if mfiUpper == 0
        0
	100.0 - (100.0 / (1.0 + mfiUpper / mfiLower))

mf = _mfiRsi(mfiUpper, mfiLower)
mfi = (mf - 50) * 3


//// Strategy
// Creating Long and Short Strategy
buy_signal = crossover(BlueWave, 0) and mfi > 0 
sell_signal = crossunder(BlueWave, 0) and mfi < 0 

// Long Strategy
if buy_signal and in_date_range and enable_long_strategy == true
    strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position")
    strategy.exit("Long  SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.")
    strategy.close("Long", when=sell_signal, alert_message="Close Long Position")

// Short Strategy
if sell_signal and in_date_range and enable_short_strategy == true
    strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position")
    strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.")
    strategy.close("Short", when=buy_signal, alert_message="Close Short Position")


مزید