ডাবল মুভিং এভারেজ রিভার্সাল ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

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

বিশেষত, কৌশলটি দুটি এমএ গণনা করে sma (()) ফাংশন ব্যবহার করে, ফলাফলটি xSMA (ধীর লাইন) এবং দ্রুত লাইনে বরাদ্দ করে। এমএগুলি বন্ধের দামের ভিত্তিতে গণনা করা হয়। যখন বন্ধের দাম xSMA এর উপরে অতিক্রম করে, তখন একটি দীর্ঘ অবস্থান নেওয়া হয়। যখন বন্ধের দাম xSMA এর নীচে অতিক্রম করে, তখন একটি শর্ট অবস্থান নেওয়া হয়। কৌশলটি একটি ট্রেডিং সময় পরিসীমা সীমাও সেট করে, যাতে ট্রেডিং সংকেতগুলি কেবল নির্দিষ্ট সময় পরিসরের মধ্যে উত্পন্ন হয়।

প্রতিটি ট্রেডের জন্য লাভ এবং স্টপ লস পয়েন্ট সেট করা হয়, এবং যখন দাম লাভ বা স্টপ লস স্তরে পৌঁছে যায় তখন লাভ বা স্টপ লস অবিলম্বে ট্রিগার করা হয়। এদিকে, কৌশলটি বারকোলার ফাংশন ব্যবহার করে বারগুলিতে মূল্য বনাম এমএ সম্পর্ককে প্লট করে - বারগুলি দীর্ঘ অবস্থানের সময় সবুজ রঙের, সংক্ষিপ্ত অবস্থানের সময় লাল এবং সমতল অবস্থায় নীল রঙের।

সুবিধা বিশ্লেষণ

  • একটি দ্বৈত এমএ সিস্টেম ব্যবহার করে কার্যকরভাবে প্রবণতা ট্র্যাক করতে পারে এবং স্বল্পমেয়াদী বাজার গোলমাল দ্বারা বিভ্রান্ত করা এড়াতে পারে
  • দ্রুত এবং ধীর MAs একত্রিত ট্রেডিং সংকেত মান উন্নত করতে পারেন
  • প্রতিটি ট্রেডের জন্য লাভ এবং স্টপ লস পয়েন্ট নিয়ন্ত্রণের ঝুঁকি
  • ট্রেডিংয়ের সময়সীমা সীমাবদ্ধ করা বড় ইভেন্টের আশেপাশে বিশাল ওঠানামা এড়ায়
  • বারগুলিতে ট্রেডিং সিগন্যালগুলি প্লট করা ভিজ্যুয়াল সহায়তা তৈরি করে এবং স্বজ্ঞাততা উন্নত করে

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

  • ডাবল এমএ সিস্টেমগুলি আরও মিথ্যা সংকেত উত্পন্ন করে, ট্রেডিং ফ্রিকোয়েন্সি এবং ব্যয় বৃদ্ধি করে
  • এমএ পরামিতিগুলি যুক্তিসঙ্গতভাবে সেট করা দরকার, অন্যথায় মসৃণ প্রভাব ভোগ করে বা অনেকগুলি সুযোগ মিস করে
  • এমএ সিস্টেমের বিলম্ব আছে এবং ট্রেন্ড টার্নিং পয়েন্ট মিস করতে পারে
  • ফিক্সড ট্যাক লাভ/স্টপ লস খুব অস্পষ্ট হতে পারে এবং গতিশীলভাবে সামঞ্জস্য করা যায় না
  • ট্রেডিংয়ের সময়সীমা সীমাবদ্ধ করা অন্যান্য সময়কালে সুযোগগুলি মিস করতে পারে

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

অপ্টিমাইজেশান নির্দেশাবলী

  • সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন এমএ সময়ের সমন্বয় পরীক্ষা করুন
  • ডায়নামিক ট্রেলিং স্টপ লস/লাভ বিবেচনা করুন, যেমন ATR এর উপর ভিত্তি করে
  • ফিল্টার সংকেত হিসাবে অন্যান্য সূচক যেমন MACD, KD ইত্যাদি অন্তর্ভুক্ত করুন
  • আরও সুযোগগুলি ক্যাপচার করার জন্য ট্রেডিং সময় পরিসীমা অপ্টিমাইজ করুন
  • ব্রেকআউট কৌশল সঙ্গে একত্রিত করুন, এমএ এর চারপাশে ব্রেকআউট সংকেত খুঁজছেন
  • গতিশীল প্রস্থান প্রক্রিয়া তৈরি করুন, যখন দাম পরিসীমা প্রবেশ করে তখন সক্রিয়ভাবে বন্ধ করুন

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

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


/*backtest
start: 2023-09-15 00:00:00
end: 2023-10-15 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © HPotter
//  Simple SMA strategy
//
// WARNING:
//      - For purpose educate only
//      - This script to change bars colors
//@version=4
timeinrange(res, sess) => not na(time(res, sess)) ? 1 : 0

strategy(title="Simple SMA Strategy Backtest", shorttitle="SMA Backtest", precision=6, overlay=true)
Resolution = input(title="Resolution", type=input.resolution, defval="D")
Source = input(title="Source", type=input.source, defval=close)
xSeries = security(syminfo.tickerid, Resolution, Source)
Length = input(title="Length", type=input.integer, defval=14, minval=2)
TriggerPrice = input(title="Trigger Price", type=input.source, defval=close)
TakeProfit = input(50, title="Take Profit", step=0.01)
StopLoss = input(20, title="Stop Loss", step=0.01)
UseTPSL = input(title="Use Take\Stop", type=input.bool, defval=false)
BarColors = input(title="Painting bars", type=input.bool, defval=true)
ShowLine = input(title="Show Line", type=input.bool, defval=true)
UseAlerts = input(title="Use Alerts", type=input.bool, defval=false)
timeframe = input(title="Time Frame", defval="15")
timerange = input(title="Time Range", defval="2300-0800")
reverse = input(title="Trade Reverse", type=input.bool, defval=false)
pos = 0
xSMA = sma(xSeries, Length)
pos := iff(TriggerPrice > xSMA, 1,
         iff(TriggerPrice < xSMA, -1, nz(pos[1], 0)))
nRes = ShowLine ? xSMA : na
alertcondition(UseAlerts == true and pos != pos[1] and pos == 1, title='Signal Buy', message='Strategy to change to BUY')
alertcondition(UseAlerts == true and pos != pos[1] and pos == -1, title='Signal Sell', message='Strategy to change to SELL')
alertcondition(UseAlerts == true and pos != pos[1] and pos == 0, title='FLAT', message='Strategy get out from position')
possig =iff(pos[1] != pos,
         iff(reverse and pos == 1, -1,
           iff(reverse and pos == -1, 1, pos)), 0)
if (possig == 1 and timeinrange(timeframe, timerange))
    strategy.entry("Long", strategy.long)
if (possig == -1 and timeinrange(timeframe, timerange))
    strategy.entry("Short", strategy.short)
if (timeinrange(timeframe, timerange) == 0) 
    strategy.close_all()

if (UseTPSL)    
    strategy.close("Long", when = high > strategy.position_avg_price + TakeProfit, comment = "close buy take profit")
    strategy.close("Long", when = low < strategy.position_avg_price - StopLoss, comment = "close buy stop loss")
    strategy.close("Short", when = low < strategy.position_avg_price - TakeProfit, comment = "close buy take profit")
    strategy.close("Short", when = high > strategy.position_avg_price + StopLoss, comment = "close buy stop loss")
nColor = BarColors ? strategy.position_avg_price != 0  and pos == 1 ? color.green :strategy.position_avg_price != 0 and pos == -1 ? color.red : color.blue : na
barcolor(nColor)
plot(nRes, title='SMA', color=#00ffaa, linewidth=2, style=plot.style_line)

আরো