ট্রেডিংভিএমএ কৌশলটি পরিবর্তনশীল চলমান গড় রেখাগুলির উপর ভিত্তি করে একটি পরিমাণগত ট্রেডিং কৌশল। এটি বাজারের প্রবণতা ক্যাপচার করতে এবং সেই অনুযায়ী ট্রেডিং সংকেত তৈরি করতে পরিবর্তিত চলমান গড় ব্যবহার করে।
ট্রেডিংভিএমএ কৌশলটির মূলটি পরিবর্তনশীল দৈর্ঘ্যের চলমান গড়ের (ভেরিয়েবল মুভিং এভারেজ, ভিএমএ) গণনা। চলমান গড় একটি বহুল পরিচিত প্রযুক্তিগত সূচক যা একটি নির্দিষ্ট সময়ের মধ্যে গড় মূল্য গণনা করে। ট্রেডিংভিএমএ কৌশলটিতে ব্যবহৃত ভিএমএর বিভিন্ন সময়ের দৈর্ঘ্য রয়েছে।
বিশেষত, কৌশলটি প্রথমে একটি মধ্যবর্তী পরিমাণের একটি সিরিজ গণনা করে, যেমন মূল্য দিকনির্দেশক আন্দোলন সূচক (পিডিএম, এমডিআইএম), মসৃণ ডেটা (পিডিএম, এমডিএম) । এই ডেটা অবশেষে সূচক শক্তি (আইএস) পেতে ব্যবহৃত হয়। এই সূচকটি দামের ওঠানামা তীব্রতা প্রতিফলিত করে।
তারপর, ট্রেডিংভিএমএ কৌশলটি সূচকের শক্তির উপর ভিত্তি করে গতিশীলভাবে চলমান গড় সময়কাল সামঞ্জস্য করে। যখন বাজারের অস্থিরতা বৃদ্ধি পায়, চলমান গড় সময়কাল ছোট হয়ে যায়, এবং বিপরীতভাবে। এটি বাজারের পরিবর্তনের দ্রুত প্রতিক্রিয়া দেয়।
অবশেষে, কৌশলটি ট্রেডিং সংকেত তৈরির জন্য বর্তমান মূল্যের সাথে ভিএমএর সাথে তুলনা করে। যখন দাম ভিএমএর উপরে থাকে তখন এটি দীর্ঘ হয় এবং যখন দাম ভিএমএর নীচে থাকে তখন সংক্ষিপ্ত হয়।
ট্রেডিং ভিএমএ কৌশল নিম্নলিখিত প্রধান সুবিধা আছেঃ
ভেরিয়েবল পিরিয়ড ফিল্টারগুলি গোলমালকে আরও স্থিতিশীল করে
ট্রেডিং ফ্রিকোয়েন্সি হ্রাস করে কম ওভারট্রেডিং - নির্দিষ্ট সময়ের সূচকের তুলনায় ট্রেডিংভিএমএ অপ্রয়োজনীয় ট্রেডিং হ্রাস করতে পারে।
কাস্টমাইজযোগ্য প্যারামিটার নমনীয়তা - কৌশলটি ব্যবহারকারীদের বিভিন্ন বাজারের পরিবেশের সাথে খাপ খাইয়ে নেওয়ার জন্য তাদের পছন্দগুলির উপর ভিত্তি করে প্যারামিটারগুলি নির্বাচন করতে দেয়।
ট্রেডিং ভিএমএ কৌশলটি নিম্নলিখিত প্রধান ঝুঁকিগুলিও বহন করেঃ
বিলম্বিত পক্ষপাতিত্ব
ভুল সংকেত
কঠিন প্যারামিটার অপ্টিমাইজেশান
স্টপ লস, প্যারামিটার সমন্বয় ইত্যাদির মতো পদ্ধতির মাধ্যমে এই ঝুঁকিগুলি নিয়ন্ত্রণ করা যেতে পারে।
ট্রেডিং ভিএমএ কৌশলটি নিম্নলিখিত দিকগুলিতেও উন্নত করা যেতে পারেঃ
অন্যান্য সূচককে একত্রিত করুন
প্যারামিটার অপ্টিমাইজেশন
অভিযোজিত ট্রেডিং নিয়ম
সিস্টেমাইজেশন
ট্রেডিংভিএমএ একটি অভিযোজিত পরিমাণগত কৌশল। এটি একটি বিশেষভাবে ডিজাইন করা ভিএমএ সূচক ব্যবহার করে বাজারের প্রবণতা ক্যাপচার করে, প্রতিক্রিয়াশীল এবং গোলমাল ফিল্টারিংয়ের প্রান্ত সহ। কৌশলটি আরও ভাল পারফরম্যান্সের জন্য একাধিক উপায়ে আপগ্রেড করা যেতে পারে। তবে কিছু অন্তর্নিহিত সমস্যা যেমন বিলম্বিত পক্ষপাত অব্যাহত থাকতে পারে। সামগ্রিকভাবে, ট্রেডিংভিএমএ একটি প্রতিশ্রুতিশীল প্রবণতা অনুসরণকারী কৌশল।
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-24 23:59:59 period: 1h 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/ // © laptevmaxim92 //@version=4 strategy("Variable Moving Average Strategy", overlay=true) src=close l =input(5, title="VMA Length") std=input(true, title="Show Trend Direction Colors") utp = input(false, "Use take profit?") pr = input(100, "Take profit pips") usl = input(false, "Use stop loss?") sl = input(100, "Stop loss pips") fromday = input(01, defval=01, minval=01, maxval=31, title="From Day") frommonth = input(01, defval=01, minval= 01, maxval=12, title="From Month") fromyear = input(2000, minval=1900, maxval=2100, title="From Year") today = input(31, defval=01, minval=01, maxval=31, title="To Day") tomonth = input(12, defval=12, minval=01, maxval=12, title="To Month") toyear = input(2019, minval=1900, maxval=2100, title="To Year") use_date = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)) k = 1.0/l pdm = 0.0 pdm := max((src - src[1]), 0) mdm = 0.0 mdm := max((src[1] - src), 0) pdmS = 0.0 pdmS := ((1 - k)*nz(pdmS[1]) + k*pdm) mdmS = 0.0 mdmS := ((1 - k)*nz(mdmS[1]) + k*mdm) s = pdmS + mdmS pdi = pdmS/s mdi = mdmS/s pdiS = 0.0 pdiS := ((1 - k)*nz(pdiS[1]) + k*pdi) mdiS = 0.0 mdiS := ((1 - k)*nz(mdiS[1]) + k*mdi) d = abs(pdiS - mdiS) s1 = pdiS + mdiS iS = 0.0 iS := ((1 - k)*nz(iS[1]) + k*d/s1) hhv = highest(iS, l) llv = lowest(iS, l) d1 = hhv - llv vI = (iS - llv)/d1 vma = 0.0 vma := (1 - k*vI)*nz(vma[1]) + k*vI*src vmaC=(vma > vma[1]) ? color.lime : (vma<vma[1]) ? color.red : (vma==vma[1]) ? color.yellow : na plot(vma, color=std?vmaC:color.white, linewidth=3, title="VMA") longCondition = vma > vma[1] if (longCondition) strategy.entry("BUY", strategy.long and use_date) shortCondition = vma < vma[1] if (shortCondition) strategy.entry("SELL", strategy.short and use_date) if (utp and not usl) strategy.exit("TP", "BUY", profit = pr) strategy.exit("TP", "SELL", profit = pr) if (usl and not utp) strategy.exit("SL", "BUY", loss = sl) strategy.exit("SL", "SELL", loss = sl) if (usl and utp) strategy.exit("TP/SL", "BUY", loss = sl, profit = pr) strategy.exit("TP/SL", "SELL", loss = sl, profit = pr)