এটি ৪৪-পরিয়ড এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) এর উপর ভিত্তি করে একটি ট্রেন্ড-ফলো-আপ কৌশল। কৌশলটি মূলত ইএমএ প্যালেন্ট, ক্যান্ডেলস্টিক প্যাটার্ন এবং মূল্য পুনরুদ্ধার সহ একাধিক শর্ত বিশ্লেষণ করে আপট্রেন্ডে কেনার সুযোগগুলি সন্ধান করে। এটি ২ মিনিটের এবং ৫ মিনিটের চার্টগুলির মতো স্বল্প সময়ের জন্য ডিজাইন করা হয়েছে, এর লক্ষ্য স্বল্পমেয়াদী দামের ওঠানামাতে ট্রেডিংয়ের সুযোগগুলি ক্যাপচার করা।
গাউসিয়ান ক্রস ইএমএ ট্রেন্ড রিট্র্যাকশন কৌশল একটি প্রবণতা অনুসরণকারী সিস্টেম যা একাধিক প্রযুক্তিগত সূচককে একত্রিত করে। ইএমএ, ক্যান্ডেলস্টিক প্যাটার্ন বিশ্লেষণ এবং মূল্য রিট্র্যাকশনকে একীভূত করে, এই কৌশলটি আপট্রেন্ডগুলি সনাক্ত করতে এবং এন্ট্রি টাইমিং অপ্টিমাইজ করার ক্ষেত্রে ভাল সম্ভাবনা দেখায়। তবে ব্যবহারকারীদের ওভারট্রেডিং ঝুঁকি সম্পর্কে সতর্ক থাকতে হবে এবং বিভিন্ন বাজারের পরিবেশের জন্য পরামিতিগুলি অনুকূল করতে হবে। অতিরিক্ত প্রযুক্তিগত সূচক প্রবর্তন এবং ঝুঁকি ব্যবস্থাপনা প্রক্রিয়া উন্নত করে, এই কৌশলটির স্বল্পমেয়াদী ট্রেডিংয়ে আরও স্থিতিশীল পারফরম্যান্স অর্জনের সম্ভাবনা রয়েছে।
/*backtest start: 2019-12-23 08:00:00 end: 2024-09-24 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Custom Strategy with EMA and Candle Conditions", overlay=true) // Define parameters ema_length = 44 // Calculate EMA ema_44 = ta.ema(close, ema_length) // Calculate the slope of the EMA ema_slope = ta.ema(close, ema_length) - ta.ema(close[9], ema_length) // Define a threshold for considering the EMA flat flat_threshold = 0.5 // Check if the EMA is flat or inclined ema_is_inclined = math.abs(ema_slope) > flat_threshold // Define the previous candle details prev_candle_high = high[1] prev_candle_low = low[1] prev_candle_close = close[1] prev_candle_open = open[1] // Candle before the previous candle (for high comparison) candle_before_prev_high = high[2] // Current candle details current_candle_high = high current_candle_low = low current_candle_close = close current_candle_open = open // Previous to previous candle details prev_prev_candle_low = low[2] // Previous candle body and wick length prev_candle_body = math.abs(prev_candle_close - prev_candle_open) prev_candle_wick_length = math.max(prev_candle_high - prev_candle_close, prev_candle_close - prev_candle_low) // Calculate retrace level for the current candle retrace_level = prev_candle_close - (prev_candle_close - prev_candle_low) * 0.5 // Check if the previous candle's wick is smaller than its body prev_candle_condition = prev_candle_wick_length < prev_candle_body // Check if the previous candle is a green (bullish) candle and if the previous candle's close is above EMA prev_candle_green = prev_candle_close > prev_candle_open prev_candle_red = prev_candle_close < prev_candle_open prev_candle_above_ema = prev_candle_close > ema_44 // Entry condition: The current candle has retraced to 50% of the previous candle's range, previous candle was green and above EMA, and the high of the current candle is above the retrace level, and EMA is inclined entry_condition = prev_candle_close > candle_before_prev_high and prev_candle_green and prev_candle_above_ema and current_candle_low <= retrace_level and current_candle_high >= retrace_level and ema_is_inclined // Exit condition exit_condition = (strategy.position_size > 0 and prev_candle_red) or (strategy.position_size > 0 and current_candle_low < prev_candle_low) // Ensure only one trade is open at a time single_trade_condition = strategy.position_size == 0 // Plot EMA for visualization plot(ema_44, color=color.blue, title="44 EMA") // Plot conditions for debugging plotshape(series=entry_condition and single_trade_condition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=exit_condition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell") // Print entry condition value on chart var label entry_label = na if (entry_condition and single_trade_condition) entry_label := label.new(bar_index, low, text="Entry Condition: TRUE", color=color.green, textcolor=color.white, size=size.small, yloc=yloc.belowbar) else entry_label := label.new(bar_index, high, text="Entry Condition: FALSE", color=color.red, textcolor=color.white, size=size.small, yloc=yloc.abovebar) // Debugging: Plot retrace level and other key values plot(retrace_level, color=color.orange, title="Retrace Level") plot(prev_candle_high, color=color.purple, title="Previous Candle High") plot(candle_before_prev_high, color=color.yellow, title="Candle Before Previous High") // Trigger buy order if entry condition and single trade condition are met if (entry_condition and single_trade_condition) strategy.entry("Buy", strategy.long) // Trigger sell order if exit condition is met if (exit_condition) strategy.close("Buy")