ডুয়াল মুভিং এভারেজ চ্যানেল ট্রেডিং কৌশল একটি ট্রেন্ড ট্রেডিং কৌশল যা ডাবল মুভিং এভারেজগুলির মধ্যে ক্রসওভারগুলি ট্র্যাক করে। কৌশলটি ট্রেডিং সিগন্যাল সূচক হিসাবে এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) এবং ওয়েটেড মুভিং এভারেজ (ডাব্লুএমএ) ব্যবহার করে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ডাব্লুএমএর উপরে অতিক্রম করে, তখন কৌশলটি দীর্ঘ হয়। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ডাব্লুএমএর নীচে অতিক্রম করে, তখন কৌশলটি শর্ট হয়।
এই কৌশলটির ট্রেডিং সংকেতগুলি 10 পিরিয়ডের স্বল্পমেয়াদী ইএমএ এবং 20 পিরিয়ডের দীর্ঘমেয়াদী ডাব্লুএমএ এর মধ্যে সোনার ক্রস এবং মৃত্যুর ক্রস থেকে আসে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ডাব্লুএমএ এর উপরে অতিক্রম করে, এটি নির্দেশ করে যে বাজারটি বিপরীতমুখী হচ্ছে, সুতরাং দীর্ঘ যাচ্ছে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ডাব্লুএমএ এর নীচে অতিক্রম করে, এটি নির্দেশ করে যে বাজারটি বিপরীতমুখী হচ্ছে, সুতরাং শর্ট যাচ্ছে।
ট্রেডিংয়ের দিকনির্দেশ নির্ধারণ করার পরে, কৌশলটি স্টপ লসকে প্রবেশ মূল্যের নীচে বা তার উপরে 1 ATR সময়ের মধ্যে, দুটি লাভের সাথে সেট করে - প্রথম লাভটি প্রবেশ মূল্যের উপরে বা তার নীচে 1 ATR এ সেট করা হয় এবং দ্বিতীয় লাভটি প্রবেশ মূল্যের উপরে বা তার নীচে 2 ATR এ সেট করা হয়। যখন প্রথম লাভটি ট্রিগার করা হয়, 50% অবস্থান বন্ধ হয়ে যাবে। অবশিষ্ট অবস্থানটি দ্বিতীয় লাভের দিকে চালিয়ে যাবে বা ট্রেলিং স্টপ লস সহ চলবে।
ট্রেলিং স্টপ লস লজিক - এটি সর্বোচ্চ মূল্য বা সর্বনিম্ন মূল্য প্রথম লাভের স্তরে পৌঁছে গেলে এটি সক্রিয় হবে। রিয়েল টাইম বার আপডেটের মতে, স্টপ লস সর্বোচ্চ লাভের পয়েন্ট এবং প্রবেশ মূল্যের মধ্যে সুরক্ষা হিসাবে ক্ষতি এড়াতে এবং লাভের পথে লক করার জন্য ট্রেল করা হবে।
কৌশলটি বাজারে এলোমেলো ওঠানামা কার্যকরভাবে ফিল্টার করতে এবং মাঝারি থেকে দীর্ঘমেয়াদী প্রবণতা সংকেত সনাক্ত করতে মুভিং গড়ের দ্বৈত মসৃণতা গোলমাল হ্রাস বৈশিষ্ট্য ব্যবহার করে, এইভাবে whipsaws মধ্যে ধরা পড়া এড়াতে। উপরন্তু, দুই পর্যায়ের মুনাফা গ্রহণ কৌশল মুনাফা জোন বৃদ্ধি এবং মুনাফা সর্বাধিকীকরণ। পিছনে স্টপ প্রক্রিয়া এছাড়াও কৌশল লাভ লক এবং ক্ষতি কমাতে পারবেন।
মুভিং মিডিয়ার মধ্যে ক্রসওভারের ফলে কিছু বাজারে অতিরিক্ত মিথ্যা সংকেত তৈরি হতে পারে, যা ক্ষতির কারণ হতে পারে।
স্টপ লস সেটিং কৌশলটির একটি গুরুত্বপূর্ণ উপাদান। যদি স্টপ লস খুব ছোট হয় তবে এটি বাজারের গোলমাল দ্বারা আঘাত পেতে পারে। যদি স্টপ লস খুব বড় হয় তবে এটি কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে ব্যর্থ হতে পারে।
উপরন্তু, যখন বাজার তীব্রভাবে ওঠানামা করে, তখন ট্রেলিং স্টপ সুরক্ষার ক্ষেত্রে খুব ভাল কাজ করতে পারে না।
সর্বোত্তম প্যারামিটার সংমিশ্রণটি খুঁজে পেতে বিভিন্ন পরামিতি সহ EMA এবং WMA পরীক্ষা করুন। খুব ছোট EMA বা খুব দীর্ঘ WMA উভয়ই কৌশল কর্মক্ষমতা প্রভাবিত করতে পারে।
নির্দিষ্ট পয়েন্ট বা ATR মাল্টিপল স্টপ লস নির্বাচন করুন যা পণ্যের বিভিন্ন বৈশিষ্ট্য এবং ট্রেডিং স্টাইলের উপর ভিত্তি করে।
আংশিক অবস্থান ট্রেলিং স্টপ এবং পূর্ণ অবস্থান ট্রেলিং স্টপের প্রভাব পরীক্ষা করুন।
সিগন্যালের গুণমান উন্নত করার জন্য ইএমএ এবং ডব্লিউএমএকে সহায়তা করার জন্য সিগন্যাল ফিল্টারিংয়ের জন্য অন্যান্য সূচক প্রবর্তন করুন।
সাধারণভাবে, দ্বৈত চলমান গড় চ্যানেল ট্রেডিং কৌশলটি তুলনামূলকভাবে শক্তিশালী এবং ট্রেন্ডিং বাজারে ভাল পারফর্ম করে। প্যারামিটারগুলি অনুকূলিতকরণ, স্টপ লস প্রক্রিয়া এবং সংকেতের গুণমান উন্নত করে এই কৌশলটির আসল ট্রেডিং পারফরম্যান্স আরও বাড়ানো যেতে পারে। এটি একটি প্রতিশ্রুতিবদ্ধ কৌশল ধারণা যা প্রকৃত ট্রেডিংয়ে গভীর গবেষণা এবং প্রয়োগের মূল্যবান।
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 3h 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/ // © gpadihar //@version=4 strategy("SL1 Pips after TP1 (MA)", commission_type=strategy.commission.cash_per_order, overlay=true) // Strategy Buy = input(true) Sell = input(true) // Date Range start_year = input(title='Start year' ,defval=2020) start_month = input(title='Start month' ,defval=1) start_day = input(title='Start day' ,defval=1) start_hour = input(title='Start hour' ,defval=0) start_minute = input(title='Start minute' ,defval=0) end_time = input(title='set end time?',defval=false) end_year = input(title='end year' ,defval=3019) end_month = input(title='end month' ,defval=12) end_day = input(title='end day' ,defval=31) end_hour = input(title='end hour' ,defval=23) end_minute = input(title='end minute' ,defval=59) // MA ema_period = input(title='EMA period',defval=10) wma_period = input(title='WMA period',defval=20) ema = ema(close,ema_period) wma = wma(close,wma_period) // Entry Condition buy = crossover(ema,wma) and nz(strategy.position_size) == 0 and Buy and time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and (end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true) sell = crossunder(ema,wma) and nz(strategy.position_size) == 0 and Sell and time > timestamp(start_year, start_month, start_day, start_hour, start_minute) and (end_time?(time < timestamp(end_year, end_month, end_day, end_hour, end_minute)):true) // Pips pip = input(20)*10*syminfo.mintick // Trading parameters // var bool LS = na var bool SS = na var float EP = na var float TVL = na var float TVS = na var float TSL = na var float TSS = na var float TP1 = na var float TP2 = na var float SL1 = na var float SL2 = na if buy or sell and strategy.position_size == 0 EP := close SL1 := EP - pip * (sell?-1:1) SL2 := EP - pip * (sell?-1:1) TP1 := EP + pip * (sell?-1:1) TP2 := EP + pip * 2 * (sell?-1:1) // current trade direction LS := buy or strategy.position_size > 0 SS := sell or strategy.position_size < 0 // adjust trade parameters and trailing stop calculations TVL := max(TP1,open) - pip[1] TVS := min(TP1,open) + pip[1] TSL := open[1] > TSL[1] ? max(TVL,TSL[1]):TVL TSS := open[1] < TSS[1] ? min(TVS,TSS[1]):TVS if LS and high > TP1 if open <= TP1 SL2:=min(EP,TSL) if SS and low < TP1 if open >= TP1 SL2:=max(EP,TSS) // Closing conditions close_long = LS and open < SL2 close_short = SS and open > SL2 // Buy strategy.entry("buy" , strategy.long, when=buy and not SS) strategy.exit ("exit1", from_entry="buy", stop=SL1, limit=TP1, qty_percent=50) strategy.exit ("exit2", from_entry="buy", stop=SL2, limit=TP2) // Sell strategy.entry("sell" , strategy.short, when=sell and not LS) strategy.exit ("exit3", from_entry="sell", stop=SL1, limit=TP1, qty_percent=50) strategy.exit ("exit4", from_entry="sell", stop=SL2, limit=TP2) // Plots a=plot(strategy.position_size > 0 ? SL1 : na, color=#dc143c, style=plot.style_linebr) b=plot(strategy.position_size < 0 ? SL1 : na, color=#dc143c, style=plot.style_linebr) c=plot(strategy.position_size > 0 ? TP1 : na, color=#00ced1, style=plot.style_linebr) d=plot(strategy.position_size < 0 ? TP1 : na, color=#00ced1, style=plot.style_linebr) e=plot(strategy.position_size > 0 ? TP2 : na, color=#00ced1, style=plot.style_linebr) f=plot(strategy.position_size < 0 ? TP2 : na, color=#00ced1, style=plot.style_linebr) g=plot(strategy.position_size >= 0 ? na : EP, color=#ffffff, style=plot.style_linebr) h=plot(strategy.position_size <= 0 ? na : EP, color=#ffffff, style=plot.style_linebr) plot(ema,title="ema",color=#fff176) plot(wma,title="wma",color=#00ced1)