এই সূচকটি হ'ল মোবো ব্যান্ডস (মোমেন্টাম ব্রেকআউট ব্যান্ডস) । এই ব্যান্ডগুলি হ'ল বোলিংজার ব্যান্ড যা একটি সমন্বিত স্ট্যান্ডার্ড বিচ্যুতি রয়েছে। যখন এটি আপসাইডের দিকে যাওয়ার জন্য ব্যান্ডগুলির উপরে গতির ব্রেকআউট থাকে তখন ক্রয় সংকেত থাকে এবং যখন এটি ডাউনসাইডের দিকে যাওয়ার জন্য ব্যান্ডগুলির নীচে গতির ব্রেকআউট থাকে তখন বিক্রয় সংকেত থাকে। ব্যান্ডগুলি কেবল প্রস্তাব করে যে সমস্ত বাজারের সময় রয়েছে যা আমরা সকলেই সত্য বলে জানি। যখন দামটি ব্যান্ডের ভিতরে থাকে তখন এটি প্রবণতাহীন বলে মনে করা হয়। একবার ব্রেকআউট ঘটে গেলে আপনি ব্রেকআউট দিকের ট্রেডগুলি নিতে পারেন। আমি এগুলি ঘন্টার টাইমফ্রেমে ট্রেড বিকল্পগুলি সুইং করতে পছন্দ করি তবে ব্যান্ডগুলি বেশিরভাগ যন্ত্র এবং টাইমফ্রেমে কাজ করা উচিত। আমি এন্ট্রিগুলির জন্য 1 ঘন্টার SPY চার্টে সুইং নিতে এবং ট্রেন্ড নিশ্চিতকরণের জন্য দৈনিক চার্ট ব্যবহার করতে পছন্দ করি।
ব্যাকটেস্ট
/*backtest start: 2022-04-12 00:00:00 end: 2022-05-11 23:59:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 study("Mobo Bands", overlay=false) price = input(hl2, "Price") colorNormLength = input(3, "colorNormLength", input.integer) dpoLength = input(13, "dpoLength", input.integer) moboDisplace = input(0, "moboDisplace", input.integer) moboLength = input(10, "moboLength", input.integer) numDevDn = input(-0.8, "numDevDn", input.float) numDevUp = input(0.8, "numDevUp", input.float) coloredMobo = input(true, "coloredMobo") coloredFill = input(true, "coloredFill") breakArrows = input(true, "breakArrows") moboShowMid = input(true, "moboShowMid") //def DPO = price - Average(price[DPO_length / 2 + 1], DPO_length); xsma = sma(price[int(dpoLength / 2 + 1)], dpoLength) //alert(int(dpoLength / 2 + 1)) //xsma = sma(price, dpoLength) DPO = price - xsma Midline = sma(DPO, moboLength) sDev = stdev(DPO, moboLength) LowerBand = Midline + numDevDn * sDev UpperBand = Midline + numDevUp * sDev plot(DPO, color=color.yellow,linewidth=2) plot(Midline, color=Midline > Midline[1] ? color.lime : color.red,linewidth=2) Upper = plot(UpperBand, color=color.black,linewidth=1) Lower = plot(LowerBand, color=color.black,linewidth=1) plot(0, color=color.white,linewidth=1) Signal1 = DPO > UpperBand and DPO[1] < UpperBand[1] Signal2 = DPO < LowerBand and DPO[1] > LowerBand[1] wasUp = 1 wasDn = 1 wasUp := Signal1 ? 1 : (Signal2 ? 0 : nz(wasUp[1])) wasDn := Signal2 ? 1 : (Signal1 ? 0 : nz(wasDn[1])) //plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.arrowup, location=location.absolute, size=size.normal, color=color.red) //plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.arrowdown, location=location.absolute, size=size.normal, color=color.green) plotshape(Signal1 and wasDn[1] ? UpperBand : na, style=shape.labelup, location=location.absolute, size=size.normal, color=color.green, text="Buy",textcolor=color.white) plotshape(Signal2 and wasUp[1] ? LowerBand : na, style=shape.labeldown, location=location.absolute, size=size.normal, color=color.red, text="Sell",textcolor=color.white) //fill(Upper, Lower, color=color.purple) alertcondition(Signal1 and wasDn[1], "Break Out Arrow", "Break Out Arrow") alertcondition(Signal2 and wasUp[1], "Break Down Arrow", "Break Down Arrow") if Signal1 and wasDn[1] strategy.entry("Enter Long", strategy.long) else if Signal2 and wasUp[1] strategy.entry("Enter Short", strategy.short)