ইম্পোমেন্টাম স্ক্র্যাচ কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১১-১৪ ১৪ঃ০৪ঃ২৪
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটির মূল ধারণা হ'ল ল্যাজি বিয়ার এর গতির সূচক এবং ক্রিপ্টো ফেস এর এমএফআই সূচককে একত্রিত করা যাতে প্রবণতা বাড়লে দীর্ঘ এবং প্রবণতা কমে গেলে সংক্ষিপ্ত হয়, যা বাজারের প্রবণতা অনুসরণ করে একটি পরিমাণগত ট্রেডিং কৌশল উপলব্ধি করে।

কৌশলগত যুক্তি

  1. ট্রেন্ডের দিকনির্দেশনা নির্ধারণের জন্য লেজি বিয়ারের গতির সূচক ব্লুওয়েভ ব্যবহার করুন, যা ২০ দিনের সর্বোচ্চ উচ্চ, সর্বনিম্ন নিম্ন এবং নিকটতম গড়ের তুলনায় বন্ধ মূল্যের রৈখিক রিগ্রেশন গণনা করে। যখন ব্লুওয়েভ 0 এর উপরে অতিক্রম করে, এটি একটি আপগ্রেড প্রবণতা নির্দেশ করে; যখন এটি 0 এর নীচে অতিক্রম করে, এটি একটি ডাউনগ্রেড প্রবণতা নির্দেশ করে।

  2. মুদ্রা প্রবাহ নির্ধারণের জন্য ক্রিপ্টো ফেসের উন্নত এমএফআই সূচক ব্যবহার করুন, যা গত ৫৮ দিনের দাম পরিবর্তন এবং ভলিউমের যোগফল গণনা করে। 0 এর চেয়ে বড় এমএফআই অর্থ প্রবাহকে নির্দেশ করে, 0 এর চেয়ে কম অর্থ প্রবাহকে নির্দেশ করে।

  3. যখন ব্লুওয়েভ শূন্যের উপরে চলে যায় এবং এমএফআই শূন্যের চেয়ে বড় হয়, তখন একটি লং পজিশন খোলার জন্য একটি ক্রয় সংকেত উৎপন্ন হয়; যখন ব্লুওয়েভ শূন্যের নীচে চলে যায় এবং এমএফআই শূন্যের কম হয়, তখন একটি শর্ট পজিশন খোলার জন্য একটি বিক্রয় সংকেত উৎপন্ন হয়।

  4. ঝুঁকি নিয়ন্ত্রণের সাথে সাথে লাভের জন্য বাজারের প্রবণতা অনুসরণ করার জন্য স্টপ লস এবং লাভের শর্তগুলি সেট করুন।

সুবিধা

  1. দুটি সূচক একত্রিত করলে বাজারের প্রবণতার দিক আরও সঠিকভাবে নির্ধারণ করা সম্ভব।

  2. ব্লুওয়েভের মসৃণ বক্ররেখা অ্যাটলিয়ারের পক্ষপাত এড়ায়, যা প্রবণতা বিচারকে আরও নির্ভরযোগ্য করে তোলে।

  3. মুদ্রাধনী প্রতিষ্ঠানগুলি নগদ প্রবাহ নির্ধারণ করতে পারে, যা ভুয়া ব্রেকআউট থেকে ক্ষতি এড়াতে পারে।

  4. এই কৌশলটির কয়েকটি পরামিতি রয়েছে এবং এটি বাস্তবায়ন ও পরিচালনা করা সহজ।

  5. নমনীয় স্টপ লস এবং লাভ নেওয়ার সেটিংস ট্রেডিং ঝুঁকি নিয়ন্ত্রণে সহায়তা করে।

  6. নির্দিষ্ট বাজারের সময় অস্বাভাবিক অস্থিরতা এড়াতে ট্রেডিং সেশন সেট করা যেতে পারে।

ঝুঁকি

  1. নিম্নমুখী প্রবণতা ধারাবাহিকভাবে শর্ট পজিশন এবং ক্ষতির দিকে পরিচালিত করতে পারে।

  2. ভুল সংকেতগুলো পজিশনে প্রবেশের পর ফাঁদে পড়তে পারে।

  3. অতিরিক্ত স্টপ লস হারাতে পারে।

  4. উচ্চ অস্থিরতা প্রায়ই স্টপ লস পয়েন্ট আঘাত করতে পারে।

  5. অনুপযুক্ত পরামিতি অপ্টিমাইজেশান খারাপ কৌশল কর্মক্ষমতা হতে পারে।

  6. খুব ঘন ঘন ট্রেডিং সিগন্যালগুলি লেনদেনের খরচ এবং স্লিপিং বাড়িয়ে তুলতে পারে।

উন্নতকরণ

  1. আরও স্থিতিশীল এবং নির্ভরযোগ্য সংকেত পাওয়ার জন্য ব্লুওয়েভ এবং এমএফআই-র পরামিতিগুলি অনুকূল করা।

  2. দীর্ঘস্থায়ী স্বল্প ক্ষতি এড়ানোর জন্য প্রবণতা সূচক অন্তর্ভুক্ত করুন।

  3. স্টপ লস/টেক প্রফিট রেসিওগুলিকে গতিশীলভাবে সামঞ্জস্য করুন যাতে ফাঁদে পড়ার সম্ভাবনা কম হয়।

  4. ভুয়া সংকেত কমাতে প্রবেশের শর্তগুলি সংশোধন করুন।

  5. রিলিজ এবং ডাম্পিং ডাইপগুলি এড়ানোর জন্য অবস্থানের আকার বিবেচনা করুন।

  6. আরও সঠিক প্রবেশ এবং প্রস্থান পয়েন্টের জন্য মেশিন লার্নিং মডেলগুলির সাথে একত্রিত করুন।

সিদ্ধান্ত

এই কৌশলটি ট্রেন্ডের দিকনির্দেশ নির্ধারণের জন্য ব্লুওয়েভ এবং এমএফআই সূচকগুলিকে একত্রিত করে, উপরের প্রবণতাগুলিতে দীর্ঘ এবং নিম্নমুখী প্রবণতাগুলিতে সংক্ষিপ্ত, লাভের জন্য বাজারের প্রবণতা কার্যকরভাবে অনুসরণ করে। তবে, প্যারামিটার সেটিংস, স্টপ লস / লাভ গ্রহণ, ধারাবাহিক ডাউনট্রেন্ড ইত্যাদিতে ঝুঁকি রয়েছে, যা পরামিতি টিউনিং, স্টপ লস প্রক্রিয়া, ফিল্টার শর্তাবলী ইত্যাদির উপর আরও অপ্টিমাইজেশনের প্রয়োজন যা কৌশল কর্মক্ষমতা এবং দৃust়তা উন্নত করতে পারে। সামগ্রিকভাবে, কৌশলটি স্বজ্ঞাত এবং দীর্ঘমেয়াদী প্রবণতা অনুসরণ করার জন্য ভাল কাজ করে, তবে ব্যাপ্তি বাজারে আটকা পড়লে ক্ষতি হতে পারে।


/*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")


আরো