মুভিং এভারেজ অনুসরণ কৌশল


সৃষ্টির তারিখ: 2023-10-20 17:02:52 অবশেষে সংশোধন করুন: 2023-10-20 17:03:32
অনুলিপি: 2 ক্লিকের সংখ্যা: 614
1
ফোকাস
1617
অনুসারী

মুভিং এভারেজ অনুসরণ কৌশল

ওভারভিউ

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

কৌশল নীতি

এই কৌশলটি মূলত নিম্নলিখিত নীতিগুলির উপর ভিত্তি করে তৈরি করা হয়েছেঃ

  1. ২০০ দিনের একটি সরল চলমান গড় ব্যবহার করে, slowMA মূল্য প্রবণতার দিক নির্ণয় করে।
  2. যখন ক্লোজিং প্রাইস ক্লোজের উপরে স্লো এমএ প্রবেশ করে, তখন মনে হয় যে বাজারটি বাড়তে শুরু করেছে, তাই আরও কিছু করুন।
  3. যখন ক্লোজিং প্রাইস ক্লোজের নীচে স্লো এমএ অতিক্রম করে, তখন মনে করা হয় যে বাজারটি হ্রাস পেতে শুরু করেছে, তাই এটি খালি।
  4. Last_long এবং last_short ভেরিয়েবলের মাধ্যমে সর্বশেষ অতিরিক্ত এবং খালি সময় রেকর্ড করুন।
  5. ক্রসওভার ফাংশন দ্বারা last_long এবং last_short এর ক্রসওভার বিচার করে লেনদেনের সংকেত উৎপন্ন করা হয়।
  6. রিটার্নিং সময়ের মধ্যে, দীর্ঘ_সিগন্যাল প্রাপ্ত হলে বেশি করুন, শর্ট_সিগন্যাল প্রাপ্ত হলে শূন্য করুন।

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

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

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

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

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

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

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

ঝুঁকির জন্য, নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজেশন এবং উন্নতি করা যেতে পারেঃ

  1. সংক্ষিপ্তকালীন গড়ের সাথে সংযুক্ত এবং দীর্ঘকালীন প্রবণতা বিবেচনা করে।
  2. ক্যাটাগরিতে ক্যাটাগরিতে ক্যাটাগরিতে ক্যাটাগরিতে ক্যাটাগরিতে ক্যাটাগরিতে
  3. প্রবণতা পরিমাপকারী ফিল্টার যুক্ত করা হয়েছে, যা প্রবণতা পরিবর্তনের সনাক্তকরণের ক্ষমতা উন্নত করে।
  4. একক ক্ষতি নিয়ন্ত্রণের জন্য গতিশীল ক্ষতি থামানোর ব্যবস্থা যুক্ত করুন।
  5. প্যারামিটার অপ্টিমাইজেশান পদ্ধতি ব্যবহার করে প্যারামিটারগুলির অভিযোজনযোগ্যতা বাড়ানো।
  6. বিভিন্ন বাজার পরিবেশে প্রতিলিপি পরীক্ষার মাধ্যমে কৌশলটির স্থায়িত্ব পরীক্ষা করা।

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

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

  1. চলমান গড়ের জন্য চক্রের প্যারামিটারগুলি অনুকূলিত করুন, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন। প্যারামিটার অপ্টিমাইজেশনের পদ্ধতি যেমন ওয়াক ফরওয়ার্ড বিশ্লেষণ ব্যবহার করা যেতে পারে।

  2. স্বল্পমেয়াদী চলন্ত গড়ের যোগ করা, একটি বহু-অভ্যাস লাইন কৌশল গঠন করা, এবং একই সাথে দীর্ঘমেয়াদী প্রবণতা অনুসরণ করা।

  3. ট্রেন্ডিং সূচক যেমন MACD এর সাথে মিলিত হয়ে ট্রেন্ড রিভার্সনের সনাক্তকরণের ক্ষমতা বাড়ায়।

  4. একক ক্ষতি নিয়ন্ত্রণের জন্য স্টপ লস ম্যানেজমেন্ট, যেমন ট্র্যাকিং স্টপ লস, স্টপ লস স্টপ, ইত্যাদি।

  5. প্রতিলিপি পরীক্ষা, বিভিন্ন জাত এবং বিভিন্ন সময়ে কৌশল পরীক্ষা, স্থিতিশীলতা বৃদ্ধি।

  6. মেশিন লার্নিং এবং অন্যান্য পদ্ধতি ব্যবহার করে কৌশলগুলির প্যারামিটারগুলিকে স্ব-অনুকূলিতকরণ এবং কৌশলগুলিকে অনুকূলিতকরণ করা যায়।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)