একতরফা ট্রেন্ড শক ব্রেকআউট কৌশল একটি ব্রেকআউট কৌশল যা মূল্য চ্যানেল এবং প্রবণতা বিচার ব্যবহার করে। এটি প্রবণতা দিক সনাক্ত করার লক্ষ্যে, পরিসীমা সীমাবদ্ধ সময়ের মধ্যে ব্রেকআউটগুলিতে প্রবেশ করে এবং মুনাফা লক্ষ্যমাত্রা পৌঁছে গেলে প্রস্থান করে।
কৌশলটি সাম্প্রতিক এন সময়ের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন দাম ব্যবহার করে একটি মূল্য চ্যানেলের উপরের এবং নীচের ব্যান্ডগুলি গণনা করে। এটি তারপরে একটি মূল্য মধ্যরেখা গণনা করে। চ্যানেল ব্যান্ডগুলি পেতে দাম এবং মধ্যরেখার মধ্যে দূরত্ব গড় হয়।
প্রবণতা সনাক্তকরণের জন্য, কৌশলটি পরীক্ষা করে যে সাম্প্রতিক মোমবাতিগুলি চ্যানেলের উপরে (উর্ধ্বমুখী) বা নীচে (হ্রাস) বন্ধ হয়েছে কিনা। প্রবণতা নিশ্চিত হওয়ার পরে, এটি ব্যান্ডগুলির কাছাকাছি মূল্যের শকগুলির জন্য অপেক্ষা করে এবং বিপরীত দিকে প্রবেশ করে।
যখন শরীরের দৈর্ঘ্য গড় শরীরের দৈর্ঘ্যের গুণিতক অতিক্রম করে তখন শরীরের ব্রেকআউটগুলি প্রবেশের সংকেতগুলিকে পরিপূরক করে। কৌশলটি প্রবেশের পরে একটি লাভের লক্ষ্য নির্ধারণ করে এবং যখন দাম তা পৌঁছে যায় তখন লাভ করে।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
এছাড়াও কিছু ঝুঁকি আছেঃ
এগুলি প্যারামিটার টিউনিং, শক্তিশালী প্রবণতার সময় বিপরীতমুখী হওয়া এড়ানো, প্রস্থান লজিক ইত্যাদির মাধ্যমে সমাধান করা যেতে পারে।
কৌশল উন্নত করার কিছু উপায়:
সিঙ্গল সাইড ট্রেন্ড শক ব্রেকআউট কৌশলটি বিভিন্ন সময়ে প্রবণতার বিরুদ্ধে ব্রেকআউট থেকে মুনাফা অর্জন করে। এটিতে প্রবণতা সনাক্তকরণ এবং সক্রিয় মুনাফা গ্রহণের সুবিধা রয়েছে, তবে কিছু ঝুঁকিও রয়েছে। এই ঝুঁকিগুলি বহু-ফ্যাক্টর নিশ্চিতকরণ, পরামিতি অপ্টিমাইজেশন ইত্যাদির মাধ্যমে হ্রাস করা যেতে পারে। কৌশলটি স্বল্পমেয়াদী ব্যবসায়ের জন্য উপযুক্ত এবং প্রবণতা অনুসরণকারী কৌশলগুলিকে পরিপূরক করতে পারে।
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Noro's Bands Scalper Strategy v1.5", shorttitle = "Scalper str 1.5", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %") needbe = input(true, defval = true, title = "Bands Entry") needct = input(false, defval = false, title = "Counter-trend entry") bodylen = input(10, defval = 10, minval = 0, maxval = 50, title = "Body length") trb = input(1, defval = 1, minval = 1, maxval = 5, title = "Trend bars") len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period") needbb = input(true, defval = true, title = "Show Bands") needbg = input(true, defval = true, title = "Show Background") src = close //PriceChannel 1 lasthigh = highest(src, len) lastlow = lowest(src, len) center = (lasthigh + lastlow) / 2 //Distance dist = abs(src - center) distsma = sma(dist, len) hd = center + distsma ld = center - distsma hd2 = center + distsma * 2 ld2 = center - distsma * 2 //Trend chd = close > hd cld = close < ld uptrend = trb == 1 and chd ? 1 : trb == 2 and chd and chd[1] ? 1 : trb == 3 and chd and chd[1] and chd[2] ? 1 : trb == 4 and chd and chd[1] and chd[2] and chd[3] ? 1 : trb == 5 and chd and chd[1] and chd[2] and chd[3] and chd[4] ? 1 : 0 dntrend = trb == 1 and cld ? 1 : trb == 2 and cld and cld[1] ? 1 : trb == 3 and cld and cld[1] and cld[2] ? 1 : trb == 4 and cld and cld[1] and cld[2] and cld[3] ? 1 : trb == 5 and cld and cld[1] and cld[2] and cld[3] and cld[4] ? 1 : 0 trend = dntrend == 1 and high < center ? -1 : uptrend == 1 and low > center ? 1 : trend[1] //trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1] //Lines colo = needbb == false ? na : black plot(hd2, color = colo, linewidth = 1, transp = 0, title = "High band 2") plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band 1") plot(center, color = colo, linewidth = 1, transp = 0, title = "center") plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band 1") plot(ld2, color = colo, linewidth = 1, transp = 0, title = "Low band 2") //Background col = needbg == false ? na : trend == 1 ? lime : red bgcolor(col, transp = 80) //Body body = abs(close - open) smabody = ema(body, 30) / 10 * bodylen //Signals bar = close > open ? 1 : close < open ? -1 : 0 up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and bar == -1)) ? 1 : 0 dn7 = trend == 1 and ((bar == 1 and bar[1] == 1) or (close > hd and needbe == true)) and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0 up8 = trend == -1 and ((bar == -1 and bar[1] == -1) or (close < ld2 and needbe == true)) and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0 dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and bar == 1)) ? 1 : 0 if up7 == 1 or up8 == 1 strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na) if dn7 == 1 or dn8 == 1 strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)