ডাবল মুভিং এভারেজ ক্রসওভারের উপর ভিত্তি করে পরিমাণগত ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

কৌশল নীতি

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

বিশেষত, দ্রুত চলমান গড় রেখা প্যারামিটারটি 24 পিরিয়ডে সেট করা হয় এবং ধীর চলমান গড় রেখা প্যারামিটারটি 100 পিরিয়ডে সেট করা হয়। যখন দ্রুত চলমান গড় রেখা নীচে থেকে ধীর চলমান গড় রেখার উপরে অতিক্রম করে, তখন এটি নির্দেশ করে যে দামগুলি একটি ঊর্ধ্বমুখী প্রবণতায় প্রবেশ করছে, এবং কৌশলটি এই সময়ে একটি ক্রয় সংকেত জারি করবে। যখন দ্রুত চলমান গড় রেখা উপরে থেকে ধীর চলমান গড় রেখার নীচে অতিক্রম করে, তখন এটি নির্দেশ করে যে দামগুলি নিম্নমুখী প্রবণতায় প্রবেশ করছে, এবং কৌশলটি এই সময়ে একটি বিক্রয় সংকেত জারি করবে।

দ্রুত এবং ধীর গতির গড় রেখাগুলির ক্রসওভার দিক বিচার করে, মূল্য প্রবণতা পরিবর্তনগুলি কার্যকরভাবে কিনে এবং বিক্রয় সিদ্ধান্ত গ্রহণে সহায়তা করার জন্য ধরা যেতে পারে।

কৌশলটির সুবিধা

এই কৌশল নিম্নলিখিত সুবিধাগুলি আছেঃ

  1. নীতিটি সহজ এবং সহজেই বোঝা যায়, সহজেই বাস্তবায়ন করা যায়। ডাবল মুভিং মিডিয়ার ক্রসওভারটি সবচেয়ে মৌলিক প্রযুক্তিগত সূচকগুলির মধ্যে একটি এবং এটি বোঝা এবং প্রয়োগ করা সহজ।

  2. সামঞ্জস্যযোগ্য পরামিতি, উচ্চ অভিযোজনযোগ্যতা। দ্রুত এবং ধীর চলমান গড়ের পরামিতিগুলি প্রকৃত অবস্থার অনুযায়ী সামঞ্জস্য করা যেতে পারে, কৌশলটিকে আরও নমনীয় করে তোলে।

  3. প্রবণতা পরিবর্তন ক্যাপচার করার শক্তিশালী ক্ষমতা। ডাবল চলমান গড় ক্রসওভারগুলি প্রায়শই টার্নিং পয়েন্টগুলি ক্যাপচার করতে ব্যবহৃত হয় যখন দামগুলি একত্রীকরণ থেকে প্রবণতায় চলে যায়।

  4. ডাবল মুভিং মিডিয়ার সাহায্যে কনসোল্ডেশন রেঞ্জ চিহ্নিত করা যায় এবং কনসোল্ডেশনের সময় পজিশন পুনরাবৃত্তি করা এড়ানো যায়।

কৌশলটির ঝুঁকি

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

  1. ডাবল চলমান গড় ক্রসওভার সংকেতগুলি বিলম্বিত হতে পারে। প্রবণতা ট্র্যাকিং সূচক হিসাবে, ডাবল চলমান গড়ের ক্রসওভার সংকেতগুলি প্রায়শই একটি নির্দিষ্ট সময়ের দ্বারা বিলম্বিত হয়, যা একটি নির্দিষ্ট ডিগ্রি সুযোগ ব্যয় হতে পারে।

  2. ডাবল মুভিং এভারেজগুলি যখন দামগুলি একটি স্পষ্ট প্রবণতা দেখায় তখন তারা সবচেয়ে ভাল কাজ করে। তবে দোলনশীল বাজারে, তারা ঘন ঘন মিথ্যা সংকেত উত্পাদন করে।

  3. অনুপযুক্ত পরামিতি সেটিং কৌশল কর্মক্ষমতা প্রভাবিত করতে পারে। যদি দ্রুত এবং ধীর চলমান গড় পরামিতি ভুলভাবে সেট করা হয়, এটি প্রবণতা ক্রসওভার ক্যাপচার সংবেদনশীলতা প্রভাবিত করবে।

সংশ্লিষ্ট সমাধানঃ

  1. ক্রসওভার সিগন্যালের সংবেদনশীলতা বাড়ানোর জন্য চলমান গড় সময়কাল যথাযথভাবে সংক্ষিপ্ত করুন।

  2. অস্থির বাজারগুলিতে অবৈধ ট্রেড হ্রাস করার জন্য ফিল্টারিংয়ের জন্য অস্থিরতা বা ভলিউম সূচক যুক্ত করুন।

  3. সর্বোত্তম প্যারামিটার সমন্বয় খুঁজতে প্যারামিটার অপ্টিমাইজেশান. স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করার জন্য মেশিন লার্নিং এবং অন্যান্য পদ্ধতি যোগ করুন.

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

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

  1. সূচকগুলির ট্র্যাকিং এবং ভবিষ্যদ্বাণী করার ক্ষমতা উন্নত করতে সরল চলমান গড়ের পরিবর্তে লিনিয়ার ওয়েটেড চলমান গড়ের মতো আরও উন্নত চলমান গড় প্রযুক্তিগত সূচক ব্যবহার করুন।

  2. অকার্যকর সংকেত হ্রাস করার জন্য যৌথ ফিল্টারিংয়ের জন্য ভলিউম এবং অস্থিরতা সূচকগুলির মতো আরও সহায়ক সূচক যুক্ত করুন।

  3. প্যারামিটার অভিযোজনযোগ্যতা উন্নত করার জন্য দ্রুত এবং ধীর চলমান গড় পরামিতিগুলি অনুকূল করুন। মেশিন লার্নিং এবং এলোমেলো অপ্টিমাইজেশনের মতো পদ্ধতিগুলি সর্বোত্তম পরামিতিগুলি খুঁজে পেতে ব্যবহার করা যেতে পারে।

  4. কৌশলটি বাজারে প্রবেশের পরে, স্টপ লস পয়েন্ট এবং ট্রেলিং স্টপ লস একক ক্ষতি নিয়ন্ত্রণের জন্য ডিজাইন করা যেতে পারে। একই সাথে, পর্যাপ্ত লাভ নিশ্চিত করার জন্য মুনাফা অপ্টিমাইজেশন কৌশল যুক্ত করুন।

  5. ডিপ লার্নিংয়ের মতো নতুন প্রযুক্তি ব্যবহার করে আরও জটিল মূল্য প্যাটার্নগুলি সনাক্ত করা যায় যাতে আরও ভাল ফলাফল অর্জনের জন্য ক্রয় এবং বিক্রয় সিদ্ধান্ত নেওয়ার ক্ষেত্রে চলমান গড় ক্রসওভারগুলিকে সহায়তা করা যায়।

সংক্ষিপ্তসার

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


/*backtest
start: 2024-01-21 00:00:00
end: 2024-02-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=100000, default_qty_value=100, default_qty_type=strategy.percent_of_equity)

//OBV
src = close
obv = ta.cum(math.sign(ta.change(src)) * volume)
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)
typeMA = input.string(title = "Method", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title = "Length", defval = 20, minval = 1, maxval = 100, group="Smoothing")
Limit = input.float(title = "Limit", defval = 1, minval = 0.1, maxval = 10, group="Smoothing")
smoothingLine_ma = ma(obv,smoothingLength, typeMA)
obv_diff = (obv-smoothingLine_ma)*100/obv

//PVT
var cumVolp = 0.
cumVolp += nz(volume)
if barstate.islast and cumVolp == 0
    runtime.error("No volume is provided by the data vendor.")
srcp = close
vt = ta.cum(ta.change(srcp)/srcp[1]*volume)
smoothingLine_map = ma(vt,smoothingLength, typeMA)
pvt_diff = (vt-smoothingLine_map)*100/vt

// plot(obv_diff+close+100 ,title="OBV_DIFF", color = color.rgb(255, 118, 54))
// plot(pvt_diff+close+80 ,title="PVT_DIFF", color = color.rgb(223, 61, 255))

indicator = (pvt_diff+obv_diff)/2
goLongCondition1 = ta.crossover(indicator,Limit)
timePeriod = time >= timestamp(syminfo.timezone, 2023,1, 1, 0, 0)  // Backtesting Time
notInTrade = strategy.position_size <= 0
if goLongCondition1 and timePeriod and notInTrade
    stopLoss = low * 0.99 // -2%
    takeProfit = high * 1.05 // +5%
    strategy.entry('long', strategy.long )
    strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)






// fastEMA = ta.ema(close, 24)
// slowEMA = ta.ema(close, 100)
// goLongCondition1 = ta.crossover(fastEMA, slowEMA)
// timePeriod = time >= timestamp(syminfo.timezone, 2018, 12, 15, 0, 0)
// notInTrade = strategy.position_size <= 0
// if goLongCondition1 and timePeriod and notInTrade
//     stopLoss = low * 0.97
//     takeProfit = high * 1.12
//     strategy.entry('long', strategy.long)
//     strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit)
// plot(fastEMA, color=color.new(color.blue, 0))
// plot(slowEMA, color=color.new(color.yellow, 0))

আরো