এই কৌশলটি তিনটি প্রধান প্রবাহের প্রযুক্তিগত সূচক ব্যবহার করেঃ চলমান গড় EMA, আপেক্ষিক শক্তি সূচক RSI এবং কমোডিটি চ্যানেল সূচক CCI EMA ক্রসওভারের মাধ্যমে মূল্যের গতি চিহ্নিত করতে এবং RSI এবং CCI থেকে oversold / overbought রিডিং দ্বারা নিশ্চিত করা আরও এন্ট্রিগুলি। এই মধ্যমেয়াদী ট্রেডিং কৌশলটি গতি বিপরীততা ক্যাপচার করার লক্ষ্যে।
দামের গতি নির্ধারণের জন্য ৪ পেরিওড এবং ৮ পেরিওড EMA এর মধ্যে ক্রসওভার ব্যবহার করুন
যখন ইএমএগুলি উর্ধ্বমুখী হয়ে যায়, অর্থাৎ ৪-পরিয়ালের ইএমএ ৮-পরিয়ালের ইএমএ অতিক্রম করে, তখন পরীক্ষা করুন যে আরএসআই (৬৫-এর বেশি) এবং সিসিআই (০-এর বেশি) লং সিগন্যাল দেওয়ার জন্য অত্যধিক ক্রয় করা হয় না;
যখন ইএমএগুলি নেমে যায়, অর্থাৎ ৪-পরিয়ালের ইএমএ ৮-পরিয়ালের ইএমএ এর নীচে অতিক্রম করে, তখন পরীক্ষা করুন যে আরএসআই (৩৫ এর নিচে) এবং সিসিআই (০ এর নিচে) একটি সংক্ষিপ্ত সংকেত দেওয়ার জন্য অতিরিক্ত বিক্রি হয়েছে কিনা;
ট্রেডিং সিগন্যাল সক্রিয় হলে ইনপুট দূরত্বের উপর ভিত্তি করে স্টপ লস এবং লাভের দাম সেট করুন।
সংক্ষেপে, এই কৌশলটি মধ্যমেয়াদী প্রবণতা এবং স্বল্পমেয়াদী অতিরিক্ত ক্রয় / অতিরিক্ত বিক্রয় স্তরগুলিকে তুলনামূলকভাবে স্থিতিশীল সংকেত হিসাবে বিবেচনা করে, যখন হ্রাস হ্রাস এবং লাভ কার্যকরভাবে প্রতি ব্যবসায়ের ক্ষতি সীমাবদ্ধ করে।
একাধিক সূচক পৃথক ওসিলেটর থেকে মিথ্যা সংকেত হ্রাস করে;
ইএমএগুলি মূল প্রবণতা নির্ধারণ করে যখন আরএসআই এবং সিসিআই জয়ের হার উন্নত করার জন্য অতিরিক্ত উত্তাপযুক্ত অঞ্চলগুলি এড়ায়;
স্বয়ংক্রিয় স্টপ লস এবং লাভের সেটআপ চরম গতিতে ক্ষতি সীমাবদ্ধ করে;
বিশুদ্ধভাবে প্রযুক্তিগত প্রকৃতি এই কৌশলকে যেকোনো সময়সীমার মধ্যে সহজেই বাস্তবায়নযোগ্য করে তোলে।
প্রধান মৌলিক খবর প্রযুক্তিগত স্তরের উপর অগ্রাধিকার দিতে পারে;
স্টপ লসকে বড় স্টপের জন্য বিশাল অস্থিরতার কল দ্বারা নেওয়া যেতে পারে;
ঘন ঘন লেনদেনের ফলে লেনদেনের খরচ বেশি হয়, তাই উচ্চ-ফ্রিকোয়েন্সি অ্যালগরিদমের জন্য এটি সবচেয়ে ভাল।
মেশিন লার্নিং মডেলগুলিকে মৌলিক বিষয়গুলির উপর ভিত্তি করে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করার জন্য অন্তর্ভুক্ত করা;
স্থির দূরত্বের পরিবর্তে অস্থিরতার প্রতি প্রতিক্রিয়াশীল অভিযোজিত স্টপ তৈরি করুন।
এই বহুমুখী কৌশলটি অপ্টিমাইজড পরামিতিগুলির অধীনে ধারাবাহিক মাঝারি মেয়াদী মুনাফা প্রদান করতে পারে, এটি একটি অ্যাক্সেসযোগ্য প্রযুক্তিগত সিস্টেম করে তোলে। তবুও, ব্ল্যাক সোয়ান ইভেন্টগুলিকে বর্ধিত স্টপ ইত্যাদির মাধ্যমে মঞ্জুরি দেওয়া দরকার, চলমান পরিমার্জনের ক্ষেত্রগুলি উপস্থাপন করে।
/*backtest start: 2023-11-19 00:00:00 end: 2023-11-26 00:00:00 period: 45m basePeriod: 5m 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/ // © SoftKill21 //@version=4 strategy(title="Moving Average Exponential", shorttitle="EMA", overlay=true) len4 = input(4, minval=1, title="Length_MA4") src4 = input(close, title="Source") offset4 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500) out4 = ema(src4, len4) plot(out4, title="EMA", color=color.blue, offset=offset4) len8 = input(8, minval=1, title="Length_MA8") src8 = input(close, title="Source") offset8 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500) out8 = ema(src8, len8) plot(out8, title="EMA", color=color.blue, offset=offset8) //rsioma src = close, len = input(14, minval=1, title="Length") up = rma(max(change(ema(src, len)), 0), len) down = rma(-min(change(ema(src, len)), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //plot(rsi, color=color.blue) //band1 = hline(80) //band0 = hline(20) //fill(band1, band0, color=color.purple, transp=90) //hline(50, color=color.gray, linestyle=plot.style_line) sig = ema(rsi, 21) //plot(sig, color=color.purple) //woodie cciTurboLength = input(title="CCI Turbo Length", type=input.integer, defval=6, minval=3, maxval=14) cci14Length = input(title="CCI 14 Length", type=input.integer, defval=14, minval=7, maxval=20) source = close cciTurbo = cci(source, cciTurboLength) cci14 = cci(source, cci14Length) last5IsDown = cci14[5] < 0 and cci14[4] < 0 and cci14[3] < 0 and cci14[2] < 0 and cci14[1] < 0 last5IsUp = cci14[5] > 0 and cci14[4] > 0 and cci14[3] > 0 and cci14[2] > 0 and cci14[1] > 0 histogramColor = last5IsUp ? color.green : last5IsDown ? color.red : cci14 < 0 ? color.green : color.red // Exit Condition // Exit Condition a = input(12)*10 b = input(15)*10 c = a*syminfo.mintick d = b*syminfo.mintick longCondition = crossover(out4, out8) and (rsi >= 65 and cci14>=0) shortCondition = crossunder(out4, out8) and (rsi <=35 and cci14<=0) long_stop_level = float(na) long_profit_level1 = float(na) long_profit_level2 = float(na) long_even_level = float(na) short_stop_level = float(na) short_profit_level1 = float(na) short_profit_level2 = float(na) short_even_level = float(na) long_stop_level := longCondition ? close - c : long_stop_level [1] long_profit_level1 := longCondition ? close + d : long_profit_level1 [1] //long_profit_level2 := longCondition ? close + d : long_profit_level2 [1] //long_even_level := longCondition ? close + 0 : long_even_level [1] short_stop_level := shortCondition ? close + c : short_stop_level [1] short_profit_level1 := shortCondition ? close - d : short_profit_level1 [1] //short_profit_level2 := shortCondition ? close - d : short_profit_level2 [1] //short_even_level := shortCondition ? close + 0 : short_even_level [1] //ha // === Input === //ma1_len = input(1, title="MA 01") //ma2_len = input(40, title="MA 02") // === MA 01 Filter === //o=ema(open,ma1_len) //cc=ema(close,ma1_len) //h=ema(high,ma1_len) //l=ema(low,ma1_len) // === HA calculator === //ha_t = heikinashi(syminfo.tickerid) //ha_o = security(ha_t, timeframe.period, o) //ha_c = security(ha_t, timeframe.period, cc) //ha_h = security(ha_t, timeframe.period, h) //ha_l = security(ha_t, timeframe.period, l) // === MA 02 Filter === //o2=ema(ha_o, ma2_len) //c2=ema(ha_c, ma2_len) //h2=ema(ha_h, ma2_len) //l2=ema(ha_l, ma2_len) // === Color def === //ha_col=o2>c2 ? color.red : color.lime // === PLOTITING=== //plotcandle(o2, h2, l2, c2, title="HA Smoothed", color=ha_col) tp=input(120) sl=input(96) strategy.entry("long", strategy.long, when = longCondition) //strategy.close("long", when = o2>c2 , comment="ha_long") strategy.entry("short", strategy.short , when =shortCondition ) //strategy.close("short", when = o2<=c2 , comment = "ha_short" ) //strategy.close("long",when=long_profit_level1 or long_stop_level , comment="tp/sl") //strategy.close("short",when=short_profit_level1 or short_stop_level , comment="tp/sl") strategy.exit("x_long","long",profit = tp, loss = sl) //when = o2>c2) strategy.exit("x_short","short",profit = tp, loss = sl) //when = o2<c2)