এই কৌশলটি ট্রেন্ডের দিকনির্দেশনা নির্ধারণের জন্য দীর্ঘমেয়াদী আরএমএ এবং স্বল্পমেয়াদী ইএমএ ক্রসওভার ব্যবহার করে। এটি স্টপ লসের জন্য সাম্প্রতিক সর্বোচ্চ সর্বোচ্চ বা সর্বনিম্ন সর্বনিম্ন অনুসরণ করে। মিথ্যা বিরতি এড়ানোর জন্য আরএমএর চারপাশে একটি নো-ট্রেড জোনও রয়েছে।
প্রবণতা নির্ধারণের জন্য দীর্ঘ সময়ের আরএমএ এবং স্বল্প সময়ের ইএমএ ব্যবহার করুন। দীর্ঘ আরএমএর নীচে সংক্ষিপ্ত ইএমএ ক্রসিং ডাউনট্রেন্ডের সংকেত দেয়। উপরে ক্রসিং আপট্রেন্ডের সংকেত দেয়।
যখন মূল্য নির্দিষ্ট সময়ের মধ্যে সাম্প্রতিক সর্বোচ্চ উচ্চতা অতিক্রম করে, তখন স্টপ লস হিসাবে সর্বোচ্চ উচ্চতা অনুসরণ করুন। যখন মূল্য সাম্প্রতিক সর্বনিম্ন নিম্নতার নীচে ভঙ্গ করে, স্টপ লস হিসাবে সর্বনিম্ন নিম্নতা অনুসরণ করুন।
RMA এর চারপাশে একটি নো-ট্রেড জোন সেট করুন। Whipsaws এড়ানোর জন্য যখন মূল্য জোনের মধ্যে থাকে তখন পজিশন খুলবেন না। জোন পরিসীমা RMA মানের একটি নির্দিষ্ট শতাংশের উপর ভিত্তি করে।
প্রবেশের পর মুনাফার শতাংশে পজিশন থেকে বেরিয়ে আসার জন্য মুনাফা গ্রহণের মূল্য নির্ধারণ করুন।
দ্বৈত চলমান গড় ক্রসওভার নির্ভরযোগ্যভাবে প্রবণতা দিক নির্ধারণ করে।
ট্রেন্ডের সাথে স্টপ লস চলবে।
নো-ট্রেড জোন ভুয়া ব্রেকআউট সিগন্যাল ফিল্টার করে।
মুনাফা গ্রহণ কৌশলকে সক্রিয়ভাবে লাভজনক ব্যবসা বন্ধ করার অনুমতি দেয়।
চলমান গড় ক্রসওভারে বিলম্ব হ্রাস বাড়িয়ে তুলতে পারে।
দামের খুব কাছে স্টপ লস শব্দ দ্বারা বন্ধ হয়ে যেতে পারে।
খুব বড় কোন বাণিজ্য অঞ্চল সুযোগ হারাতে পারে।
সময়মতো না থামলে আরও ক্ষতি হতে পারে।
সম্ভাব্য সমাধান:
বিলম্ব হ্রাস করার জন্য চলমান গড় পরামিতি অপ্টিমাইজ করুন।
অতিরিক্ত সংবেদনশীলতা রোধ করার জন্য স্টপ লস একটু বাড়িয়ে দিন।
ট্রেডিং এড়ানোর জন্য ট্রেডিং জোনের সীমাবদ্ধতা পরীক্ষা করুন।
সর্বাধিক ক্ষতি সীমাবদ্ধ করার জন্য অন্যান্য স্টপ লস মেকানিজম যোগ করুন।
আরও ভাল ফিট করার জন্য অন্যান্য চলমান গড় সংমিশ্রণ পরীক্ষা করুন।
স্থিতিশীলতা বাড়াতে স্প্রেড, এমএসিডি ইত্যাদি যোগ করুন।
মেশিন লার্নিং ব্যবহার করে বুদ্ধিমানভাবে প্যারামিটার অপ্টিমাইজ করুন।
বিপরীত প্রবণতা ট্রেড এড়ানোর জন্য প্রবণতা শক্তি অন্তর্ভুক্ত করুন।
উচ্চতর জয় হার জন্য অর্থ ব্যবস্থাপনা অপ্টিমাইজ করুন.
এই কৌশলটি প্রবণতা দিক নির্ধারণের জন্য দ্বৈত চলমান গড় ক্রসওভার ব্যবহার করে এবং ট্রেন্ড মুনাফা লক করতে ট্রেলিং স্টপ এবং নো-ট্রেড জোনগুলিকে একত্রিত করে। ফ্রেমওয়ার্কটি সহজ এবং প্রসারিত। এটি প্যারামিটার ব্যাপ্তিগুলি সামঞ্জস্য করে, প্রস্থানগুলি অনুকূল করে এবং অতিরিক্ত ফিল্টার এবং সংকেতগুলি অন্তর্ভুক্ত করে উন্নত করা যেতে পারে যাতে এটি বিভিন্ন বাজারে শক্তিশালী হয়।
/*backtest start: 2023-08-24 00:00:00 end: 2023-09-12 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/ // © PatrickGwynBuckley //@version=5 //var initialCapital = strategy.equity strategy("PB Trend Scalper", "PB Trend Scalper", overlay = true) shortma = input.int(55, title="quick ma's") longma = input.int(100, title="long ma's") ema55h = ta.ema(high, shortma) ema55l = ta.ema(low, shortma) ema200h = ta.rma(high, longma) ema200l = ta.rma(low, longma) stock = ta.stoch(close, high, low, 14) lev = input.int(3, title="leverage") hhVal = input.int(170, title="Highest high period") llVal = input.int(170, title="Lowest low period") hh = ta.highest(high, hhVal) ll = ta.lowest(low, llVal) //plot(stock) plot(hh, color=color.new(color.green, 50)) plot(ll, color=color.new(color.red, 50)) var float downtrade = 0 p = input.float(3.0, title="no trade zone") l = 3 emadistlong = ema200h + ((ema200h/100)*p) emadistshort = ema200l - ((ema200h/100)*p) plot(ema55h) plot(ema55l) ntl = plot(emadistlong, color=color.new(color.red, 10)) nts = plot(emadistshort, color=color.new(color.red, 10)) fill(ntl, nts, color=color.new(color.red, 90)) //position size EntryPrice = close //positionValue = initialCapital positionSize = (strategy.equity*lev) / EntryPrice //plot(strategy.equity) //standard short if ema55h < ema200l and close[2] < ema55l and close[1] > ema55l and high[1] < ema55h and close < ema55h and ema55h < emadistshort and strategy.opentrades == 0// and stock > 85 strategy.entry("short", strategy.short, qty=positionSize, comment="short") downtrade := 1 //reset count if (ta.crossunder(ema55h, ema200l)) and downtrade == 1 downtrade := 0 //standard long if ema55l > ema200h and close[2] > ema55h and close[1] < ema55h and low[1] > ema55l and close > ema55l and ema55l > emadistlong and strategy.opentrades <= 1// and stock < 15 strategy.entry("long", strategy.long, qty=positionSize, comment="long") downtrade := 0 //RESET COUNT ON MA CROSS if (ta.crossover(ema55l, ema200h)) and downtrade == 0 downtrade := 1 longclose2 = low < ll[1] or low < emadistshort //close < open and open<open[1] and open[2] < open[3] and open[3] < emadistshort//close < ta.lowest(low, 20)// shortclose2 = high > hh[1] or high>emadistlong//close > open and open>open[1] and open[2]>open[3] and open[3] > emadistlong//high > emadistlong//close > ta.highest(high, 20)// sl = 3.5 tp = input.float(6.9, title="take profit %") tp2 = 10 strategy.exit("long exit", "long", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl))) strategy.close("long", when = longclose2, comment = "long exit") //strategy.close("long", when = (downtrade == 1), comment = "long exit") //strategy.exit("long exit", "long2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl))) //strategy.close ("long2", when = longclose2, comment = "long exit") //strategy.close("long", when = (downtrade == 1), comment = "long exit") strategy.exit("short exit", "short", profit = (strategy.position_avg_price*(tp)))//, loss = (strategy.position_avg_price*(sl)))//, loss = 300) strategy.close("short", when = shortclose2, comment = "short exit") //strategy.close("short", when = (downtrade == 0), comment = "short exit") //strategy.exit("short exit", "short2", profit = (strategy.position_avg_price*(tp2)))//, loss = (strategy.position_avg_price*(sl))) //strategy.close ("short2", when = shortclose2, comment = "short exit") //strategy.close("short2", when = (downtrade == 0), comment = "short exit") //if (strategy.exit("long exit", "long")) //downtrade := 1 //else // downtrade := 0