এই কৌশলটি একটি প্রবণতা অনুসরণকারী সিস্টেম যা একাধিক এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) ক্রসওভারকে ফিবোনাচি এক্সটেনশন স্তরের সাথে একত্রিত করে। এটি সম্ভাব্য প্রবণতা শুরু এবং শেষগুলি সনাক্ত করতে বিভিন্ন সময়ের ইএমএর মধ্যে মিথস্ক্রিয়া ব্যবহার করে, লাভের লক্ষ্য নির্ধারণের জন্য ফিবোনাচি এক্সটেনশন স্তরগুলি ব্যবহার করে। কৌশলটি ঝুঁকি পরিচালনা এবং লাভ রক্ষা করার জন্য নির্দিষ্ট স্টপ-লস নিয়মও অন্তর্ভুক্ত করে।
এই কৌশলটির মূল বিষয় হল ট্রেন্ডের সূচনা এবং সমাপ্তি ক্যাপচার করার জন্য একাধিক সময়সীমার মধ্যে ইএমএ ক্রসওভার ব্যবহার করা। বিশেষত এটি 5-পরিয়াল, 10-পরিয়াল এবং 30-পরিয়ালের ইএমএ ব্যবহার করে। কৌশলটিতে চারটি ভিন্ন এন্ট্রি শর্ত রয়েছে, যার প্রত্যেকটি বিভিন্ন বাজারের দৃশ্যাবলী ক্যাপচার করার জন্য ডিজাইন করা হয়েছেঃ
প্রথম এন্ট্রি শর্তটি তখন সক্রিয় হয় যখন মূল্য 30 পিরিয়ডের EMA এর নিচে আসে বা পড়ে তবে তারপরে এটির উপরে বন্ধ হয়, যখন 10 পিরিয়ডের EMA 5 পিরিয়ডের EMA এর উপরে থাকে এবং 30 পিরিয়ডের EMA 5 পিরিয়ডের EMA এর তুলনায় 1% কম থাকে।
দ্বিতীয় এন্ট্রি শর্ত তখনই সক্রিয় হয় যখন ৫-পরিয়ড EMA ৩০-পরিয়ড EMA এর উপরে অতিক্রম করে এবং ৩০-পরিয়ড EMA গত ৬টি বারের মধ্যে ৫-পরিয়ড EMA এর নিচে অতিক্রম করে।
তৃতীয় এন্ট্রি শর্তটি তখন সক্রিয় হয় যখন পূর্ববর্তী দুটি বারের উচ্চতা তাদের নিজ নিজ ৫ পেরিওড EMA এর নিচে থাকে, ৫ পেরিওড EMA ১০ পেরিওড EMA এর নিচে থাকে, যা ৩০ পেরিওড EMA এর নিচে থাকে এবং পূর্ববর্তী বারের উচ্চতা বর্তমান বন্ধের নিচে থাকে।
চতুর্থ এন্ট্রি শর্ত তখনই সক্রিয় হয় যখন ১০ পেরিওড EMA ৩০ পেরিওড EMA এর উপরে অতিক্রম করে, ৫ পেরিওড EMA গত ৪ বারের মধ্যে ৩০ পেরিওড EMA এর উপরে অতিক্রম করেছে এবং ১০ পেরিওড এবং ৫ পেরিওড EMAs
স্টপ লস-এর জন্য, কৌশলটি বিভিন্ন প্রবেশের শর্তের জন্য নির্দিষ্ট নিয়ম নির্ধারণ করেঃ
মুনাফা লক্ষ্যমাত্রা 0.618, 0.786, 1.0 এবং 1.618 স্তর সহ ফিবোনাচি এক্সটেনশন স্তরের উপর ভিত্তি করে সেট করা হয়। কৌশলটি নির্দিষ্ট নিয়ম অনুসারে এই স্তরগুলি পৌঁছানোর পরে অবস্থানগুলি বন্ধ করে দেয়।
উপরন্তু, কৌশলটি লাভের লক শর্ত অন্তর্ভুক্ত করেঃ যদি শেষ দুইটি বারের সর্বনিম্ন স্তরগুলি 5 পেরিওডের EMA এর উপরে থাকে এবং EMAগুলি ক্রমবর্ধমান ক্রমে সারিবদ্ধ হয় (5 > 10 > 30), মুনাফা লক করার জন্য অবস্থানটি বন্ধ করা হয়।
একাধিক নিশ্চিতকরণঃ একাধিক ইএমএ এবং প্রবেশের শর্ত ব্যবহার করে, কৌশলটি প্রবণতার শুরু এবং ধারাবাহিকতা আরও সঠিকভাবে সনাক্ত করতে পারে। এই একাধিক নিশ্চিতকরণ প্রক্রিয়াটি মিথ্যা সংকেত হ্রাস করতে পারে এবং ব্যবসায়ের নির্ভুলতা উন্নত করতে পারে।
উচ্চ অভিযোজনযোগ্যতাঃ চারটি ভিন্ন প্রবেশের শর্ত কৌশলকে বিভিন্ন বাজারের পরিবেশে অভিযোজিত করতে দেয়, দ্রুত ব্রেকআউট বা ধীর প্রবণতা গঠনের ক্ষেত্রে ট্রেডিং সুযোগগুলি ক্যাপচার করে।
ঝুঁকি ব্যবস্থাপনাঃ কৌশলটিতে নির্দিষ্ট স্টপ-লস নিয়ম অন্তর্ভুক্ত রয়েছে, যা প্রতিটি ব্যবসায়ের জন্য ঝুঁকি নিয়ন্ত্রণে সহায়তা করে। বিভিন্ন স্টপ-লস কৌশলগুলির সাথে বিভিন্ন প্রবেশের শর্তগুলি মিলে যায়, যা ঝুঁকি ব্যবস্থাপনার উপর কৌশলটির জোরকে নির্দেশ করে।
সুস্পষ্ট মুনাফা লক্ষ্যমাত্রাঃ মুনাফা লক্ষ্যমাত্রা হিসাবে ফিবোনাচি এক্সটেনশন স্তরগুলি ব্যবহার করা ব্যবসায়ীদের স্পষ্ট প্রস্থান পয়েন্ট সরবরাহ করে। এটি অকাল মুনাফা গ্রহণ বা খুব দীর্ঘ সময়ের জন্য অবস্থানগুলি ধরে রাখতে সহায়তা করে।
মুনাফা সুরক্ষাঃ মুনাফা লক শর্ত প্রবণতা বিপরীত হতে পারে যখন লাভ লাভ রক্ষা করতে সাহায্য করে, একটি গুরুত্বপূর্ণ দিক প্রায়ই অনেক প্রবণতা অনুসরণ কৌশল দ্বারা উপেক্ষা করা হয়।
প্রযুক্তিগত সূচকগুলির সংমিশ্রণঃ কৌশলটি ইএমএ এবং ফিবোনাচি সরঞ্জামগুলির সংমিশ্রণ করে, এই দুটি জনপ্রিয় প্রযুক্তিগত বিশ্লেষণ সরঞ্জামের শক্তিগুলিকে কাজে লাগায়।
ওভারট্রেডিংঃ একাধিক এন্ট্রি শর্তে ওভারট্রেডিং হতে পারে, বিশেষ করে অত্যন্ত অস্থির বাজারে। এটি লেনদেনের খরচ বাড়িয়ে তুলতে পারে এবং সম্ভাব্যভাবে আরও মিথ্যা সংকেত হতে পারে।
পরামিতি সংবেদনশীলতাঃ কৌশলটি একাধিক স্থির ইএমএ সময়কাল এবং শতাংশের প্রান্তিক ব্যবহার করে। এই পরামিতিগুলি বিভিন্ন বাজার এবং সময়সীমার জন্য সামঞ্জস্য করা প্রয়োজন হতে পারে, অন্যথায়, তারা খারাপ কৌশল কর্মক্ষমতা হতে পারে।
প্রবণতা নির্ভরতাঃ প্রবণতা অনুসরণকারী কৌশল হিসাবে, এটি ব্যাপ্তি বা দোলন বাজারে খারাপ পারফর্ম করতে পারে। এই বাজারের পরিবেশে, এটি একাধিক মিথ্যা সংকেত এবং ছোট ক্ষতি তৈরি করতে পারে।
বিলম্বঃ ইএমএগুলি অন্তর্নিহিতভাবে বিলম্বিত সূচক। দ্রুত পরিবর্তিত বাজারে, কৌশলটি সময়মতো প্রবণতা পাল্টা পয়েন্টগুলি ধরতে সক্ষম নাও হতে পারে।
জটিলতাঃ কৌশলটির একাধিক শর্ত এবং নিয়মগুলি এর জটিলতা বাড়ায়, যা বোঝা এবং বজায় রাখা কঠিন করে তুলতে পারে এবং অতিরিক্ত ফিটিংয়ের ঝুঁকিও বাড়ায়।
ডায়নামিক প্যারামিটার সমন্বয়ঃ বাজারের অস্থিরতার উপর ভিত্তি করে ইএমএ সময়কাল এবং অন্যান্য প্যারামিটারগুলিকে গতিশীলভাবে সামঞ্জস্য করার জন্য একটি অভিযোজনশীল প্রক্রিয়া প্রবর্তন বিবেচনা করুন। এটি বিভিন্ন বাজারের পরিবেশে কৌশলটির অভিযোজনযোগ্যতা উন্নত করতে পারে।
ভলিউম সূচক অন্তর্ভুক্ত করুনঃ ভলিউম বিশ্লেষণের সমন্বয় প্রবেশ এবং প্রস্থান সিদ্ধান্তের নির্ভুলতা উন্নত করতে পারে। উদাহরণস্বরূপ, প্রবণতা শক্তি নিশ্চিত করার জন্য প্রবেশের সময় ভলিউম বৃদ্ধি প্রয়োজন।
বাজার পরিবেশ ফিল্টারিংঃ ট্রেন্ড অনুসরণ করার জন্য অনুপযুক্ত পরিবেশে ট্রেডিং বন্ধ করার জন্য একটি বাজার পরিবেশ সনাক্তকরণ প্রক্রিয়া চালু করুন, যেমন ATR (গড় সত্য পরিসীমা) বা অস্থিরতা সূচক ব্যবহার করে।
স্টপ-লস মেকানিজম অপ্টিমাইজ করুন: স্থির স্টপের পরিবর্তে ট্রেলিং স্টপ ব্যবহার করার কথা বিবেচনা করুন। এটি লাভ রক্ষা করতে পারে এবং তাদের বাড়তে অব্যাহত রাখতে পারে।
টাইম ফিল্টারিং যোগ করুন: ট্রেডিংকে নির্দিষ্ট সময়ের মধ্যে সীমাবদ্ধ করুন, অত্যন্ত অস্থির বা কম তরলতার সময়কাল এড়ান, যা কৌশল স্থিতিশীলতা উন্নত করতে পারে।
মেশিন লার্নিং প্রবর্তন করুনঃ প্যারামিটার নির্বাচন এবং এন্ট্রি সিদ্ধান্তগুলি অনুকূল করতে মেশিন লার্নিং অ্যালগরিদম ব্যবহার করুন, যা কৌশলটির অভিযোজনযোগ্যতা এবং কর্মক্ষমতা উন্নত করতে পারে।
মাল্টি-টাইমফ্রেম বিশ্লেষণঃ প্রবেশের সিদ্ধান্তের নির্ভুলতা উন্নত করতে এবং মূল প্রবণতার বিরুদ্ধে প্রবেশ এড়াতে দীর্ঘ সময়সীমার ট্রেন্ড বিশ্লেষণ অন্তর্ভুক্ত করুন।
ফিবোনাচি এক্সটেনশন ট্রেন্ড অনুসরণকারী কৌশল সহ এই মাল্টি-ইএমএ ক্রসওভার একটি বিস্তৃত ট্রেডিং সিস্টেম প্রদর্শন করে যা একাধিক প্রযুক্তিগত সূচক এবং ট্রেডিং ধারণাগুলিকে একত্রিত করে। একাধিক ইএমএ এবং প্রবেশের শর্তগুলি ব্যবহার করে, কৌশলটি প্রবণতা ক্যাপচার এবং মিথ্যা সংকেত হ্রাস করার মধ্যে ভারসাম্য বজায় রাখার চেষ্টা করে। ফিবোনাচি এক্সটেনশন স্তরের ব্যবহার লাভের লক্ষ্য নির্ধারণের জন্য একটি উদ্দেশ্য ভিত্তি সরবরাহ করে, যখন নির্দিষ্ট স্টপ-লস এবং লাভ লকিং নিয়মগুলি ঝুঁকি পরিচালনার উপর জোর দেয়।
যদিও কৌশলটির একাধিক নিশ্চিতকরণ এবং উচ্চ অভিযোজনযোগ্যতার সুবিধা রয়েছে, তবে এর জটিলতা এবং প্যারামিটার নির্বাচনের সংবেদনশীলতাও কিছু চ্যালেঞ্জ নিয়ে আসে। কৌশলটির স্থিতিশীলতা এবং কর্মক্ষমতা আরও উন্নত করতে, গতিশীল প্যারামিটার সমন্বয়, বাজার পরিবেশ ফিল্টারিং এবং মাল্টি-টাইমফ্রেম বিশ্লেষণকে অপ্টিমাইজেশন দিক হিসাবে প্রবর্তন করার বিষয়ে বিবেচনা করা যেতে পারে।
সামগ্রিকভাবে, এই কৌশলটি প্রবণতা অনুসরণ করার জন্য একটি আকর্ষণীয় কাঠামো সরবরাহ করে, তবে ব্যবসায়ীদের এটি বাস্তবে প্রয়োগ করার সময় পুঙ্খানুপুঙ্খ ব্যাকটেস্টিং এবং প্যারামিটার অপ্টিমাইজেশন পরিচালনা করতে হবে এবং নির্দিষ্ট বাজার এবং ট্রেডিং স্টাইলের উপর ভিত্তি করে উপযুক্ত সমন্বয় করতে হবে। ক্রমাগত পর্যবেক্ষণ এবং অপ্টিমাইজেশনের মাধ্যমে, এই কৌশলটির একটি কার্যকর প্রবণতা অনুসরণকারী সরঞ্জাম হওয়ার সম্ভাবনা রয়েছে।
/*backtest start: 2024-06-01 00:00:00 end: 2024-06-30 23:59:59 period: 3h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Combined Strategy with Specific Stop Loss", overlay=true) // Define the EMAs ema30 = ta.ema(close, 30) ema10 = ta.ema(close, 10) ema5 = ta.ema(close, 5) // Define the conditions for opening an order open_condition1 = low <= ema30 and close > ema30 and ema10 > ema5 and ema30 * 1.01 < ema5 open_condition2 = ta.crossover(ema5, ema30) and (ta.crossover(ema30[1], ema5[1]) or ta.crossover(ema30[2], ema5[2]) or ta.crossover(ema30[3], ema5[3]) or ta.crossover(ema30[4], ema5[4]) or ta.crossover(ema30[5], ema5[5]) or ta.crossover(ema30[6], ema5[6]) ) open_condition3 = high[2] < ema5[2] and high[1] < ema5[1] and ema5 < ema10 and ema10 < ema30 and high[1] < close open_condition4 = ta.crossover(ema10, ema30) and (ta.crossover(ema5[0], ema30[0]) or ta.crossover(ema5[1], ema30[1]) or ta.crossover(ema10[2], ema30[2]) or ta.crossover(ema10[3], ema30[3])) and ema10[1] < ema10 and ema5[1] <ema5 // Calculate the lowest low of the previous two bars lowest_low_prev_two_bars = ta.lowest(low, 3) // Track the entry price and the lowest low of the previous two bars for open_condition3 var float entry_price = na var float low_entry_price = na var float entry_lowest_low1 = na var float entry_lowest_low2 = na var float entry_lowest_low3 = na var float entry_lowest_low4 = na var bool order1 = false var bool order2 = false var bool order3 = false var bool order4 = false // Fibonacci extension levels based on the last significant swing var float fib_extension_level_0_618 = na var float fib_extension_level_0_786 = na var float fib_extension_level_1 = na var float fib_extension_level_1_618 = na // Calculate Fibonacci extension levels var float swing_low = na var float swing_high = na // Here we assume the latest swing low and swing high, adjust based on your logic swing_low := ta.lowest(low, 20) swing_high := ta.highest(high, 20) // Open a long order when any of the conditions are met if open_condition1 and not order2 and not order1 and not order3 and not order4 strategy.entry("Long", strategy.long, comment="<ema30") entry_lowest_low1 := lowest_low_prev_two_bars low_entry_price := low fib_extension_level_0_618 := low_entry_price + (swing_high - swing_low) * 0.618 fib_extension_level_0_786:= low_entry_price + (swing_high - swing_low) * 0.786 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1.618 entry_price := close order1 := true if open_condition2 and not order2 and not order1 and not order3 and not order4 strategy.entry("Long", strategy.long, comment="ema5xema30") entry_lowest_low2 := lowest_low_prev_two_bars low_entry_price := low fib_extension_level_0_618 := low_entry_price + (swing_high - swing_low) * 0.618 fib_extension_level_0_786:= low_entry_price + (swing_high - swing_low) * 0.786 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1.618 entry_price := close order2 := true if open_condition3 and not order2 and not order1 and not order3 and not order4 strategy.entry("Long", strategy.long, comment="high<ema5") entry_price := close low_entry_price := low entry_lowest_low3 := lowest_low_prev_two_bars fib_extension_level_0_618 := low_entry_price + (swing_high - swing_low) * 0.618 fib_extension_level_0_786:= low_entry_price + (swing_high - swing_low) * 0.786 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1.618 order3 := true if open_condition4 and not order2 and not order1 and not order3 and not order4 strategy.entry("Long", strategy.long, comment="high<ema5444") entry_price := close low_entry_price := low entry_lowest_low4 := lowest_low_prev_two_bars fib_extension_level_0_618 := low_entry_price + (swing_high - swing_low) * 0.618 fib_extension_level_0_786:= low_entry_price + (swing_high - swing_low) * 0.786 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1 fib_extension_level_1:= low_entry_price + (swing_high - swing_low) * 1.618 order4 := true // Set a stop loss only if the order was opened with the specified conditions if (not na(entry_price)) if order1 if ta.crossover(ema30,ema10) strategy.close("Long", comment="stop loss1" ) entry_price := na order1 := false low_entry_price := na if order2 if close < entry_lowest_low2 strategy.close("Long", comment="stop loss2" ) entry_price := na order2 := false low_entry_price := na if order3 if close < entry_lowest_low3 strategy.close("Long", comment="stop loss3" ) entry_price := na order3 := false low_entry_price := na if order4 if close < entry_lowest_low4 strategy.close("Long", comment="stop loss4" ) entry_price := na order4 := false low_entry_price := na if low[1] > ema5[1] and low > ema5 and ema5 > ema10 and ema10 > ema30 strategy.close("Long", comment="profit low > ema5") entry_price := na order1 := false order2 := false order3 := false order4 := false low_entry_price := na // Take profit at Fibonacci extension levels if high >= fib_extension_level_0_618 and close <= fib_extension_level_0_618 strategy.close("Long", comment="at 0.618 Fib") entry_price := na order1 := false order2 := false order3 := false order4 := false low_entry_price := na if high >= fib_extension_level_0_786 and close < fib_extension_level_0_786 strategy.close("Long", comment="at 0.786 Fib") entry_price := na order1 := false order2 := false order3 := false order4 := false low_entry_price := na if high >= fib_extension_level_1 and close < fib_extension_level_1 strategy.close("Long", comment="at 1 Fib") entry_price := na order1 := false order2 := false order3 := false order4 := false low_entry_price := na if high >= fib_extension_level_1_618 strategy.close("Long", comment="at 1 Fib") entry_price := na order1 := false order2 := false order3 := false order4 := false low_entry_price := na // Plot the EMAs for visual reference plot(ema30, color=color.blue, title="EMA 30") plot(ema10, color=color.orange, title="EMA 10") plot(ema5, color=color.red, title="EMA 5")