মোমেন্টাম-ভিত্তিক সুইং ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2024-02-05 10:44:19 অবশেষে সংশোধন করুন: 2024-02-05 10:44:19
অনুলিপি: 1 ক্লিকের সংখ্যা: 678
1
ফোকাস
1617
অনুসারী

মোমেন্টাম-ভিত্তিক সুইং ট্রেডিং কৌশল

ওভারভিউ

এই কৌশলটি একটি গতিশীল প্রযুক্তির উপর ভিত্তি করে একটি দৈনিক স্প্যানড্রোম ট্রেডিং কৌশল, এটিআর স্টপ লস ব্যবহার করে। এই কৌশলটি স্ট্যাবলির কোরি হোয়ং দ্বারা তৈরি করা হয়েছে।

কৌশলটি গতিশীলতার সূচকগুলি ব্যবহার করে প্রবণতার দিক চিহ্নিত করে এবং এটিআর সূচকগুলির সাথে স্টপ লিন সেট করে, কম কেনা এবং উচ্চ বিক্রয়ের জন্য একটি কম্পন ট্রেডিং কৌশল।

কৌশল নীতি

কোডের মধ্যে প্রথমেই সেট করা আছে যে কোন সময়সীমার উপর রিসেপশন করা হবে।

এরপরে, সূচক অংশে, নিম্নলিখিত সূচকগুলি গণনা করা হয়ঃ

  • atr ((): এটিআর সূচক গণনা করা হয়, যা স্টপ লস সেট করার জন্য ব্যবহৃত হয়;
  • max/min: একটি কে লাইনের সর্বোচ্চ/ন্যূনতম মূল্য রেকর্ড করুন;
  • is_uptrend: কোন ট্রেন্ড বাড়ে কিনা তা নির্ণয় করা;
  • প্রবেশঃ স্টপ লস লাইন;

এই প্রবণতার মূল যুক্তি হলঃ

যদি বন্ধটি পূর্বের পতনের স্টপলাইন vstop এর চেয়ে বেশি হয়, তবে এটি একটি উচ্চতর প্রবণতা হিসাবে বিবেচিত হবে; যদি বন্ধটি পূর্বের উত্থানের স্টপলাইন vstop এর চেয়ে কম হয়, তবে এটি একটি নিম্নমুখী প্রবণতা হিসাবে বিবেচিত হবে।

ট্রেন্ড পরিবর্তনের সময় স্টপ লিনের অবস্থান পরিবর্তন করুন।

বিশেষ করে, যখন একটি উত্থান প্রবণতা, স্টপ লাইন পূর্ববর্তী K লাইন সর্বোচ্চ মূল্য বিয়োগ ATR এর মান নির্ধারণ করা হয়; যখন একটি পতনশীল প্রবণতা, স্টপ লাইন পূর্ববর্তী K লাইন সর্বনিম্ন মূল্য যোগ ATR এর মান নির্ধারণ করা হয়।

এটি ট্রেন্ড ট্র্যাকিং স্টপ লস করতে পারে।

ট্রেডিং নিয়মের অংশে, স্টপ লোন ভেঙে পজিশন খোলার সময় অতিরিক্ত খালি করুন।

সামর্থ্য বিশ্লেষণ

এই কৌশলটির সুবিধাগুলো হলঃ

  1. গতিশীল প্রযুক্তি ব্যবহার করে ট্রেন্ডের দিকনির্দেশনা নির্ধারণ করুন, সময়মতো টার্নিং পয়েন্টগুলি ধরুন এবং ভুয়া ব্রেকথ্রুগুলি এড়ান।
  2. এটিআর স্টপ লস সর্বোচ্চ/সর্বনিম্ন মূল্যের উপর নজর রাখে, যা ঝুঁকি নিয়ন্ত্রণের জন্য ভাল।
  3. এই কৌশলটি সহজ, সুস্পষ্ট এবং সহজেই বোঝা যায়।
  4. ট্রেন্ডের মধ্যে স্বল্প ও উচ্চমূল্যের কম্পন ট্রেডিং করা যায়।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. এটিআর মানের ভুল নির্বাচন স্টপডাউনের জন্য খুব হালকা বা খুব সংকীর্ণ হতে পারে।
  2. এই ধাক্কাটির প্রবণতা তীব্র ওঠানামা হতে পারে এবং ধারাবাহিক ক্ষতি হতে পারে।
  3. এই ক্ষেত্রে, আপনি আপনার অ্যাকাউন্টের জন্য অনেক বেশি অর্থ প্রদান করতে পারেন।

এই ক্ষেত্রে, নিম্নলিখিত দিকগুলিকে অপ্টিমাইজ করা যেতে পারেঃ

  1. বিভিন্ন ATR প্যারামিটার পরীক্ষা করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন।
  2. এটিআর-এর উপর ভিত্তি করে অস্থিরতার সূচকগুলির সাথে সংযুক্ত স্টপ লিনের অপ্টিমাইজেশন।
  3. ট্রেন্ড ফিল্টারিংয়ের সাথে, বাজারের অস্থিরতা এড়ানোর জন্য কোন পজিশন নেওয়া উচিত নয়।

অপ্টিমাইজেশান দিক

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. বিভিন্ন ATR প্যারামিটার পরীক্ষা করে, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন। আপনি একাধিক প্যারামিটার পুনরায় পরীক্ষা করতে পারেন, উপার্জন-ঝুঁকি অনুপাতের মূল্যায়ন করতে পারেন।

  2. এটিআর ভিত্তিতে ওঠানামা সূচকগুলির সাথে সংযুক্ত স্টপ লিনের অপ্টিমাইজেশন। ওঠানামা সূচকগুলি প্রবর্তন করা যেতে পারে, যখন ওঠানামা বাড়বে তখন যথাযথভাবে স্টপ লিনের প্রশস্ততা দেওয়া যেতে পারে।

  3. প্রবণতা ফিল্টারিংয়ের সাথে, আপনি ট্রেন্ডিংয়ের পরিমাপকারীকে বাড়িয়ে তুলতে পারেন, কেবলমাত্র যখন ট্রেন্ডটি স্পষ্ট হয় তখনই পজিশন খুলতে পারেন।

  4. পজিশন ম্যানেজমেন্ট ব্যবস্থা বাড়ানো হয়েছে। পজিশনগুলি তহবিলের ব্যবহার, ক্রমাগত ক্ষতি বন্ধের সংখ্যা ইত্যাদির উপর ভিত্তি করে সামঞ্জস্য করা যেতে পারে।

  5. রাতের ব্যবধানের ঝুঁকি নিয়ন্ত্রণ বাড়ানো হয়েছে। রাতারাতি দামের উচ্চতা এড়াতে বন্ধ হওয়ার আগে সক্রিয়ভাবে ক্ষতি বন্ধ করা যেতে পারে।

সারসংক্ষেপ

এই কৌশলটি একটি ভিত্তি হিসাবে ব্যবহৃত হয় ইন্ডি-ডে স্ট্রাইক ট্রেডিং কৌশল, সামগ্রিক চিন্তাভাবনা পরিষ্কার, গতিশীল প্রযুক্তির ব্যবহার করে প্রবণতা বিচার করা, এবং এটিআর সূচক ব্যবহার করে স্লাইড পয়েন্ট ট্র্যাকিং স্টপ লস কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে।

অনেক কিছু অপ্টিমাইজ করা যায়, ট্রেন্ডিং, স্টপ লস, পজিশন ম্যানেজমেন্ট ইত্যাদি বিভিন্ন দিক থেকে উন্নতি করা যায়, যাতে কৌশলটি রিয়েল-টাইম ট্রেডিংয়ের জন্য আরও উপযুক্ত হয়। সামগ্রিকভাবে, এই কৌশলটি পরিমাণগত ব্যবসায়ের জন্য একটি ভাল প্রাথমিক কাঠামো সরবরাহ করে।

কৌশল সোর্স কোড
/*backtest
start: 2023-01-29 00:00:00
end: 2024-02-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("BTC Swinger", overlay=true, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)

/////////////////////////////////////////////////////////////
//START - SET DATE RANGE

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2010, title = "From Year")
ToMonth   = input(defval = 12, title = "To Month", minval = 1)
ToDay     = input(defval = 31, title = "To Day", minval = 1)
ToYear    = input(defval = 2020, title = "To Year")

startDate = time > timestamp(FromYear, FromMonth, FromDay, 1, 1)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true

/////////////////////////////////////////////////////////////
//END - SET DATE RANGE



/////////////////////////////////////////////////////////////
//START - INDICATORS

length = input(3)
mult = input(1, minval = 0.01)
atr_ = atr(length)
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 - mult * atr_ : min1 + mult * 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_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? yellow : red, style=circles, linewidth=2)

/////////////////////////////////////////////////////////////
//END - INDICATORS



/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

condition1 = close > vstop and withinTimeRange
condition2 = close < vstop and withinTimeRange

strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2)

/////////////////////////////////////////////////////////////
//END - TRADING RULES