এই কৌশলটি ইচিমোকু ক্লাউড, চলমান গড়, এমএসিডি, স্টোকাস্টিক এবং এটিআর সূচকগুলিকে একাধিক সময়সীমার মধ্যে প্রবণতা সনাক্ত এবং ট্র্যাক করতে একীভূত করে। এটি উচ্চ সম্ভাব্যতা প্রবণতা সংকেত পাওয়ার পরে ঝুঁকি নিয়ন্ত্রণের জন্য এটিআর-ভিত্তিক স্টপ লস এবং মুনাফা পদ্ধতি গ্রহণ করে।
ইচিমোকু ক্লাউড মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা দিকনির্দেশনা বিচার করে। ইচিমোকুর বাঁক লাইন এবং বেসলাইন উপরে ক্লোজ মূল্য ক্রসিং একটি উত্থান সংকেত, এবং তাদের নীচে ক্রসিং একটি bearish সংকেত।
এমএসিডি স্বল্পমেয়াদী প্রবণতা এবং অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় পরিস্থিতি বিচার করে। এমএসিডি সিগন্যাল লাইনের উপরে এমএসিডি হিস্টোগ্রাম ক্রসিং একটি উত্থান সংকেত, এবং নীচে ক্রসিং একটি bearish সংকেত।
স্টোকাস্টিক কেডি ওভারকোপড/ওভারসোল্ড জোনকে মূল্যায়ন করে। কে লাইন 20 এর উপরে অতিক্রম করা একটি উত্থান সংকেত, এবং 80 এর নীচে অতিক্রম করা একটি হ্রাস সংকেত।
মুভিং এভারেজ মধ্যমেয়াদী প্রবণতাকে মূল্যায়ন করে। এমএ-র উপরে মূল্যের ঘনিষ্ঠ ক্রসিং একটি উত্থান সংকেত, এবং এর নীচে ক্রসিং একটি হ্রাস সংকেত।
উপরের সূচকগুলির সংকেতগুলিকে একত্রিত করুন কিছু মিথ্যা সংকেত ফিল্টার করতে এবং উচ্চ সম্ভাব্যতা টেকসই প্রবণতা সংকেত গঠন করতে।
স্টপ লস এবং লাভের মূল্য গণনা করতে এটিআর ব্যবহার করুন। ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস এবং লাভ বিট হিসাবে এটিআর এর একটি নির্দিষ্ট গুণক ব্যবহার করুন।
সিগন্যালের নির্ভুলতা উন্নত করতে একাধিক সময়সীমার মধ্যে প্রবণতা চিহ্নিত করুন।
মিথ্যা সংকেতগুলি কার্যকরভাবে ফিল্টার করার জন্য ব্যাপকভাবে সূচক সংমিশ্রণ ব্যবহার করুন।
ATR-ভিত্তিক স্টপ লস এবং লাভ গ্রহণ করুন ট্রেড লস প্রতি উল্লেখযোগ্যভাবে সীমাবদ্ধ।
প্রবেশের শর্তাবলীর কাস্টমাইজযোগ্য কঠোরতা বিভিন্ন ঝুঁকির আকাঙ্ক্ষাকে পূরণ করে।
প্রকৃতির অনুসরণকারী প্রবণতা ব্ল্যাক সোয়ান ইভেন্টের কারণে বিপরীতমুখীতা সনাক্ত করতে ব্যর্থ হয়।
লাইভ ট্রেডিংয়ে আদর্শ এটিআর স্টপ লস সম্পূর্ণরূপে প্রতিলিপি করা কঠিন।
অনুপযুক্ত প্যারামিটার সেটিংগুলি ওভারট্রেডিং বা অপর্যাপ্ত সংকেত নির্ভুলতার দিকে পরিচালিত করতে পারে।
বিভিন্ন পণ্য এবং বাজারের পরিবেশে ফিট করার জন্য প্যারামিটার tweak প্রয়োজন।
প্রবণতা বিপরীত পয়েন্ট বিচার করতে সাহায্য করার জন্য মেশিন লার্নিং চালু করুন।
বিভিন্ন পণ্যের জন্য ATR গুণক পরামিতি মান অপ্টিমাইজ করুন।
সূত্রের সঠিকতা বাড়ানোর জন্য ভলিউম পরিবর্তনের মতো অন্যান্য কারণগুলি অন্তর্ভুক্ত করুন।
সেরা প্যারামিটার সমন্বয় খুঁজে পেতে ব্যাকটেস্টের ফলাফলের উপর ভিত্তি করে প্যারামিটার অপ্টিমাইজ করা চালিয়ে যান।
এই কৌশলটি ইচিমোকু ক্লাউড, এমএসিডি, স্টোকাস্টিক এবং আরও অনেক কিছুকে মাল্টি-টাইমফ্রেম ট্রেন্ড সনাক্তকরণের জন্য ব্যবহার করে, ব্ল্যাক সোয়ান ইভেন্টগুলির দ্বারা ফাঁদে পড়া এড়ানোর সময় ট্রেন্ডগুলি ক্যাপচার করে। এটিআর-ভিত্তিক স্টপ লস এবং লাভ কার্যকরভাবে প্রতি বাণিজ্য ক্ষতির সীমা নির্ধারণ করে। আরও সহায়ক রায় এবং মেশিন লার্নিং পদ্ধতি প্রবর্তনের সাথে, এই কৌশলটির আরও অপ্টিমাইজেশনের সম্ভাবনা রয়েছে।
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 4h 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/ // © FXFUNDINGMATE //@version=4 strategy(title="FXFUNDINGMATE TREND INDICATOR", overlay=true) //Ichimoku Cloud conversionPeriods = input(9, minval=1, title="Conversion Line Length") basePeriods = input(26, minval=1, title="Base Line Length") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Length") displacement = input(26, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine)[displacement - 1] leadLine2 = donchian(laggingSpan2Periods)[displacement - 1] //macd fast_length = input(title="Fast Length", type=input.integer, defval=12) slow_length = input(title="Slow Length", type=input.integer, defval=26) src = input(title="Source", type=input.source, defval=close) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9) sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false) sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false) fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length) slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length) macd = fast_ma - slow_ma signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length) hist = macd - signal //kd periodK = input(5, title="%K Length", minval=1) smoothK = input(3, title="%K Smoothing", minval=1) periodD = input(3, title="%D Smoothing", minval=1) k = sma(stoch(close, high, low, periodK), smoothK) d = sma(k, periodD) //atr atrlength = input(title="Atr Length", defval=8, minval=1) SMulti = input(title="Stop loss multi Atr", defval=1.0) TMulti = input(title="Take profit multi Atr", defval=1.0) smoothing = input(title="Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"]) ma_function(source, length) => if smoothing == "RMA" rma(source, length) else if smoothing == "SMA" sma(source, length) else if smoothing == "EMA" ema(source, length) else wma(source, length) atr = ma_function(tr(true), atrlength) operation_type = input(defval = "Both", title = "Position side", options = ["Long", "Short", "Both"]) operation = operation_type == "Long" ? 1 : operation_type == "Short" ? 2 : 3 showlines = input(true, title="Show sl&tp lines") // MA sma_len = input(100, title="MA Length", type=input.integer) sma = sma(close, sma_len) longCond = crossover(k, 20) and macd > 0 and close > sma and close > leadLine1 and close > leadLine2 shortCond = crossunder(k, 80) and macd < 0 and close < sma and close < leadLine1 and close < leadLine2 entry_price = float(0.0) //set float entry_price := strategy.position_size != 0 or longCond or shortCond ? strategy.position_avg_price : entry_price[1] entry_atr = valuewhen(longCond or shortCond, atr,0) short_stop_level = float(0.0) //set float short_profit_level = float(0.0) //set float long_stop_level = float(0.0) //set float long_profit_level = float(0.0) //set float short_stop_level := entry_price + SMulti * entry_atr short_profit_level := entry_price - TMulti * entry_atr long_stop_level := entry_price - SMulti * entry_atr long_profit_level := entry_price + TMulti * entry_atr // Strategy Backtest Limiting Algorithm i_startTime = input(defval = timestamp("1 Jan 2020 00:00 +0000"), title = "Backtesting Start Time", type = input.time) i_endTime = input(defval = timestamp("31 Dec 2025 23:59 +0000"), title = "Backtesting End Time", type = input.time) timeCond = true if (operation == 1 or operation == 3) strategy.entry("long" , strategy.long , when=longCond and timeCond, alert_message = "Long") strategy.exit("SL/TP", from_entry = "long" , limit = long_profit_level , stop = long_stop_level , alert_message = "Long exit") if (operation == 2 or operation == 3) strategy.entry("short", strategy.short, when=shortCond and timeCond, alert_message="Short") strategy.exit("SL/TP", from_entry = "short", limit = short_profit_level , stop = short_stop_level , alert_message = "Short exit") if time > i_endTime strategy.close_all(comment = "close all", alert_message = "close all") plot(showlines and strategy.position_size <= 0 ? na : long_stop_level, color=color.red, style=plot.style_linebr, linewidth = 2) plot(showlines and strategy.position_size <= 0 ? na : long_profit_level, color=color.lime, style=plot.style_linebr, linewidth = 2) plot(showlines and strategy.position_size >= 0 ? na : short_stop_level, color=color.red, style=plot.style_linebr, linewidth = 2) plot(showlines and strategy.position_size >= 0 ? na : short_profit_level, color=color.lime, style=plot.style_linebr, linewidth = 2) //}