এই কৌশলটি কমোডিটি চ্যানেল সূচক (সিসিআই) সূচকের উপর ভিত্তি করে তৈরি করা হয়, যার লক্ষ্য ওভারসোল্ড শর্তে লম্বা এবং ওভারক্রয় শর্তে শর্ট করা। এটি কেবল প্রবণতার দিকে বাণিজ্য করার জন্য একটি এক্সপোনেনশিয়াল মুভিং এভারেজ (ইএমএ) ফিল্টারও ব্যবহার করে। কৌশলটি স্থির শতাংশ বা গড় সত্য পরিসীমা (এটিআর) ভিত্তিক স্টপ লস এবং মুনাফা গ্রহণ করে।
বাজার প্রবণতা নির্ধারণের জন্য সিসিআই সূচক ব্যবহার করুন
সিসিআই বর্তমান মূল্যকে একটি সময়ের মধ্যে গড় মূল্যের সাথে তুলনা করে গতির পরিমাপ করে।
সিসিআই ১৫০ এর উপরে বেশি কেনা হয়, -১০০ এর নিচে বেশি বিক্রি হয়
ই এম এ ফিল্টার ব্যবহার করুন
শুধুমাত্র যখন দাম EMA এর উপরে থাকে তখনই লম্বা এবং যখন EMA এর নিচে থাকে তখনই শর্ট
প্রবণতার দিকনির্দেশনা নির্ধারণের জন্য ইএমএ ব্যবহার করুন, বিপরীত প্রবণতার ট্রেডিং এড়ান
দুই ধরনের স্টপ লস এবং লাভ নিন
স্টপ লস এবং লাভ গ্রহণের উপর ভিত্তি করে নির্দিষ্ট শতাংশঃ প্রবেশ মূল্যের নির্দিষ্ট শতাংশ ব্যবহার করুন
এটিআর ভিত্তিক স্টপ লস এবং লাভ নিনঃ স্টপ লসের জন্য এটিআর মাল্টিপ্লায়ার ব্যবহার করুন, ঝুঁকি পুরস্কার অনুপাতের ভিত্তিতে লাভ নিন গণনা করুন
প্রবেশের শর্ত
সিসিআই-এর লেনদেনের হার -১০০-এর ঊর্ধ্বে হলে লম্বা হয়ে যাবে
সিসিআই ১৫০ এর নিচে গেলে শর্ট করুন
যদি EMA সক্ষম থাকে, তবে শুধুমাত্র যখন দাম EMA এর ডানদিকে থাকে তখনই প্রবেশ করান
প্রস্থান শর্তাবলী
স্টপ লস বা লাভ নেওয়ার সময় পজিশন বন্ধ করুন
সিসিআই পুনরায় অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় অঞ্চলে প্রবেশের সময় বন্ধ অবস্থান
চক্রান্ত
প্রবেশের জন্য CCI overbought/oversold ব্যবহার করুন, CCI এর একটি ক্লাসিকাল ব্যবহার
ইচ্ছাকৃত ইএমএ ট্রেডিংয়ের প্রবণতা নিশ্চিত করে, বিপরীতমুখীতা এড়ায়
নমনীয়তার জন্য দুই ধরনের স্টপ লস/ট্যাক প্রফিট প্রদান করুন
সিসিআই সিগন্যাল বন্ধ করে আবারও লাভের পুনরাবৃত্তি বন্ধ করে দেয়
গ্রাফিং হাইলাইটস স্পষ্টভাবে সিসিআই সংকেত দেয়
সহজ এবং পরিষ্কার যুক্তি, সহজ বুঝতে এবং অপ্টিমাইজ করা
সিসিআই-র প্রভাব বিলম্বিত হয়, এটি বিপরীতমুখী হতে পারে বা মিথ্যা সংকেত দিতে পারে
ভুল EMA পরামিতিগুলি প্রবণতা মিস করতে পারে বা কৌশলটিকে অকার্যকর করে তুলতে পারে
নির্দিষ্ট শতাংশ স্টপ লস/টেক প্রফিট বাজার পরিবর্তনের সাথে কম অভিযোজিত
এটিআর স্টপ লস/ট্যাক মুনাফা এটিআর সময়ের জন্য সংবেদনশীল, অপ্টিমাইজ করা উচিত
প্রয়োগের ঝুঁকি বেশি, পজিশনের আকার সংশোধন করা উচিত
পারফরম্যান্স বাজার অবস্থার মধ্যে পরিবর্তিত হয়, পরামিতি পুনরায় মূল্যায়ন
সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে সিসিআই সময়কাল মূল্যায়ন করুন
সেরা প্রবণতা অনুমানের জন্য বিভিন্ন EMA সময় পরীক্ষা করুন
সর্বোত্তম ঝুঁকি পুরস্কার অনুপাতের জন্য স্টপ লস/টেকে মুনাফা সামঞ্জস্য করুন
মিথ্যা সংকেত এড়াতে ভলিউম মত অন্যান্য ফিল্টার যোগ করুন
প্যাটার্ন নিশ্চিতকরণের জন্য ট্রেন্ড লাইন/চার্ট প্যাটার্নের সাথে সংযুক্ত করুন
ড্রাউনডাউন নিয়ন্ত্রণের জন্য স্থির আকারের মতো অবস্থান আকারের নিয়ম যুক্ত করুন
বিভিন্ন বাজারের অবস্থার উপর ব্যাকটেস্ট, গতিশীলভাবে সামঞ্জস্য
কৌশলটি প্রবেশের জন্য ক্লাসিক সিসিআই ওভারবয়ড / ওভারসোল্ড নীতিগুলি ব্যবহার করে। ইএমএ ফিল্টার ট্রেন্ড ট্রেডিং নিয়ন্ত্রণ করে। নমনীয়তার জন্য দুটি ধরণের স্টপ লস / লাভ নিন। প্লট স্পষ্টভাবে সংকেতগুলি হাইলাইট করে। সহজ এবং পরিষ্কার যুক্তি, বুঝতে এবং অনুকূলিতকরণ সহজ। প্যারামিটার টিউনিং, ফিল্টার যুক্ত করা, ঝুঁকি নিয়ন্ত্রণ ইত্যাদির মাধ্যমে আরও উন্নতি করা যেতে পারে।
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 1h 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/ // © alifer123 //@version=5 // strategy("CCI+EMA Strategy with Percentage or ATR TP/SL [Alifer]", shorttitle = "CCI_EMA_%/ATR_TP/SL", overlay=false, // initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.045) length = input(14, "CCI Length") overbought = input.int(150, step = 10, title = "Overbought") oversold = input.int(-140, step = 10, title = "Oversold") src = hlc3 ma = ta.sma(src, length) cci = (src - ma) / (0.015 * ta.dev(src, length)) // EMA useEMA = input(true, "Use EMA", tooltip = "Only enters long when price is above the EMA, only enters short when price is below the EMA") emaLength = input(55, "EMA Length") var float ema = na if useEMA ema := ta.ema(src, emaLength) // Take Profit and Stop Loss Method tpSlMethod_percentage = input(true, "Percentage TP/SL", group="TP/SL Method") tpSlMethod_atr = input(false, "ATR TP/SL", group="TP/SL Method") // Percentage-based Take Profit and Stop Loss tp_percentage = input.float(10.0, title="Take Profit (%)", step=0.1, group="TP/SL Method") sl_percentage = input.float(10.0, title="Stop Loss (%)", step=0.1, group="TP/SL Method") // ATR-based Take Profit and Stop Loss atrLength = input(20, title="ATR Length", group="TP/SL Method") atrMultiplier = input(4, title="ATR SL Multiplier", group="TP/SL Method") riskRewardRatio = input(2, title="Risk Reward Ratio", group="TP/SL Method") // Calculate TP/SL levels based on the selected method, or leave them undefined if neither method is selected longTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 + tp_percentage / 100) : na longSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 - sl_percentage / 100) : na shortTP = tpSlMethod_percentage ? strategy.position_avg_price * (1 - tp_percentage / 100) : na shortSL = tpSlMethod_percentage ? strategy.position_avg_price * (1 + sl_percentage / 100) : na if tpSlMethod_atr longSL := strategy.position_avg_price - ta.atr(atrLength) * atrMultiplier longTP := ((strategy.position_avg_price - longSL) * riskRewardRatio) + strategy.position_avg_price shortSL := strategy.position_avg_price + ta.atr(atrLength) * atrMultiplier shortTP := ((strategy.position_avg_price - shortSL) * riskRewardRatio) - strategy.position_avg_price // Enter long position when CCI crosses below oversold level and price is above EMA longCondition = ta.crossover(cci, oversold) and (not useEMA or close > ema) if longCondition strategy.entry("Buy", strategy.long) // Enter short position when CCI crosses above overbought level and price is below EMA shortCondition = ta.crossunder(cci, overbought) and (not useEMA or close < ema) if shortCondition strategy.entry("Sell", strategy.short) // Close long positions with Take Profit or Stop Loss if strategy.position_size > 0 strategy.exit("Long Exit", "Buy", limit=longTP, stop=longSL) // Close short positions with Take Profit or Stop Loss if strategy.position_size < 0 strategy.exit("Short Exit", "Sell", limit=shortTP, stop=shortSL) // Close positions when CCI crosses back above oversold level in long positions or below overbought level in short positions if ta.crossover(cci, overbought) strategy.close("Buy") if ta.crossunder(cci, oversold) strategy.close("Sell") // Plotting color_c = cci > overbought ? color.red : (cci < oversold ? color.green : color.white) plot(cci, "CCI", color=color_c) hline(0, "Middle Band", color=color.new(#787B86, 50)) obband = hline(overbought, "OB Band", color=color.new(#78867a, 50)) osband = hline(oversold, "OS Band", color=color.new(#867878, 50)) fill(obband, osband, color=color.new(#787B86, 90))