ডায়নামিক মুভিং এভারেজ ট্র্যাকিং কৌশল

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

img

সারসংক্ষেপ

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

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

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

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

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

ঝুঁকি এবং সমাধান

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

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

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

সিদ্ধান্ত

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


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(
     "Larry Williams 3 Period EMAs strategy",
     overlay=true,
     calc_on_every_tick=true,
     currency=currency.USD
     )

// Time range for backtesting
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2018, minval=1800, maxval=2100)

endDate = input.int(title="End Date", defval=31, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2041, minval=1800, maxval=2100)

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and
     (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

// EMA
period = 3

emaH = ta.ema(high, period)
emaL = ta.ema(low, period)

// PLOT:
// Draw the EMA lines on the chart
plot(series=emaH, color=color.green, linewidth=2)
plot(series=emaL, color=color.red, linewidth=2)

// Conditions
if(inDateRange and close < emaL)
    strategy.entry("Long", strategy.long, comment="Long")
if(close > emaH)
    strategy.close("Long", comment="Close Long")

// Uncomment to enable short entries
//if(inDateRange and close > emaH)                                    
//    strategy.entry("Short", strategy.short, comment="Short")    
//if(close < emaL)
//    strategy.close("Short", comment="Close Short")

আরো