এই কৌশলটি মূলত ওভারকুপ / ওভারসোল্ড এলাকায় স্টক সূচকের ক্রসগুলি প্রবেশ সংকেত হিসাবে ব্যবহার করে, যখন ইএমএ সূচক দিয়ে বর্তমান প্রবণতার দিক বিচার করে। এটি কেবল ইএমএ দ্বারা নির্ধারিত একটি আপট্রেন্ডে দীর্ঘ যায় এবং একটি ডাউনট্রেন্ডে শর্ট যায়, যা একটি সাধারণ প্রবণতা অনুসরণকারী কৌশল।
কৌশলটি তিনটি প্রধান অংশ নিয়ে গঠিতঃ
প্রবণতার দিকনির্দেশনা নির্ধারণের জন্য EMA
একটি দ্রুত EMA এবং একটি ধীর EMA ব্যবহার করে, যখন দ্রুত EMA ধীর EMA এর উপরে থাকে, তখন এটি একটি উর্ধ্বমুখী প্রবণতা হিসাবে নির্ধারিত হয়। যখন দ্রুত EMA ধীর EMA এর নীচে থাকে, তখন এটি একটি নিম্নমুখী প্রবণতা হিসাবে নির্ধারিত হয়।
ট্রেডিং সিগন্যাল তৈরির জন্য স্টক
স্টক সূচকটি %K এবং %D লাইনের সমন্বয়ে গঠিত। যখন %K ওভারকোপড অঞ্চলে %D এর উপরে অতিক্রম করে, এটি একটি ক্রয় সংকেত উৎপন্ন করে। যখন %K ওভারসোল্ড অঞ্চলে %D এর নীচে অতিক্রম করে, এটি একটি বিক্রয় সংকেত উৎপন্ন করে। এই কৌশলটি কেবলমাত্র স্টক ক্রসওভার সংকেতগুলি গ্রহণ করে যখন তারা ওভারকোপড / ওভারসোল্ড অঞ্চলে ঘটে।
ঝুঁকি ব্যবস্থাপনা প্রক্রিয়া
কৌশলটি স্টপ লস এবং লাভের স্তরগুলিও সেট করে। একটি দীর্ঘ অবস্থান ধরে রাখার সময়, যদি দাম স্টপ লস স্তরটি ভঙ্গ করে তবে এটি বাণিজ্য থেকে বেরিয়ে আসবে। যদি দাম লাভের স্তরটি ভঙ্গ করে তবে এটি লাভের জন্য অবস্থানটি বন্ধ করবে। একই যুক্তি শর্ট পজিশনের ক্ষেত্রে প্রযোজ্য।
সাধারণভাবে, এটি একটি সাধারণ পরিমাণগত ট্রেডিং কৌশল যা ট্রেডিং ঝুঁকি হ্রাস করার জন্য কঠোর ঝুঁকি ব্যবস্থাপনা নিয়ম দ্বারা সম্পূরক প্রবণতা দিকনির্দেশ এবং ট্রেডিং সংকেত নির্ধারণের জন্য সূচকগুলির সমন্বয় ব্যবহার করে।
এই কৌশলটির প্রধান সুবিধাগুলো হল:
প্রধান এবং ক্ষুদ্র প্রবণতা নির্ধারণের জন্য ইএমএ ব্যবহার করা একটি পার্শ্ববর্তী বাজারে আটকা পড়া এড়ায়।
স্টক সূচকটির শক্তি হ'ল এটি ওভারকুপ/ওভারসোল্ড স্তরগুলি সঠিকভাবে প্রতিফলিত করার ক্ষমতা। ক্রসওভার সংকেতগুলির সাথে এটির সংমিশ্রণ ওভারকুপ/ওভারসোল্ড জোন ট্রেডিংয়ের অনুমতি দেয়।
কৌশলটি সম্ভাব্য দীর্ঘ এবং সংক্ষিপ্ত দৃশ্যকল্পগুলি স্পষ্টভাবে নির্দিষ্ট করে, যা সংকেতগুলি আরও ফিল্টার করে এবং একটি জটিল বাজারে অন্ধভাবে পজিশন খোলা এড়ায়।
কঠোর ঝুঁকি ব্যবস্থাপনা স্বতন্ত্র ব্যবসায়ের ক্ষতি নিয়ন্ত্রণে সহায়তা করে, সর্বাধিক ড্রডাউন সীমাবদ্ধ করে এবং এখনও লাভজনক ব্যবসায়ের জন্য জায়গা দেয়।
এই কৌশলটির সাথে কিছু ঝুঁকিও রয়েছেঃ
ইএমএ এবং স্টোকের মতো সূচকগুলির প্রকৃতি পিছিয়ে রয়েছে, যা এই কৌশলটিকে সময়মত বাজারের বিপরীতমুখীতা ধরতে কঠিন করে তোলে।
কেবলমাত্র সূচকগুলির উপর নির্ভর করা সহজেই পক্ষপাতিত্ব তৈরি করতে পারে, যার ফলে বাজারে প্রকৃতপক্ষে সরবরাহ করা ট্রেডিং সুযোগগুলি মিস করা যায়।
ঝুঁকি ব্যবস্থাপনা প্রক্রিয়াটিও অকাল স্টপ লস এবং লাভ গ্রহণের মাধ্যমে লাভের সম্ভাবনাকে সীমাবদ্ধ করতে পারে।
প্যারামিটার নির্বাচনের সাথে যুক্ত ঝুঁকি রয়েছে। সর্বোত্তম প্যারামিটারগুলি খুঁজে পেতে ব্যাপক ব্যাকটেস্টিং এবং অপ্টিমাইজেশান প্রয়োজন।
কৌশলটি নিম্নলিখিত দিকগুলিতে অপ্টিমাইজ করা যেতে পারেঃ
প্রবণতা নির্ধারণের জন্য বিভিন্ন ধরণের ইএমএ ব্যবহার করুন, যেমন ডাব্লুএমএ, হাল এমএ ইত্যাদি এবং ফলাফলগুলি তুলনা করুন।
ট্রেডিং সিগন্যাল তৈরির জন্য অন্যান্য সূচককে একত্রিত করুন, যেমন ম্যাকডি, কেডিজে একটি মাল্টি-ইনডিকেটর সিস্টেম তৈরি করতে।
বাজারের অস্থিরতার সাথে আরও ভালভাবে খাপ খাইয়ে নেওয়ার জন্য স্টপ লস এবং লাভের সেটিংগুলি অনুকূল করুন। বৃহত্তর স্টপ লস এবং আরও সংকীর্ণ লাভ নিতে পারেন।
সর্বোত্তম সমন্বয় খুঁজে পেতে বিভিন্ন পণ্য এবং সময়সীমার মধ্যে পারফরম্যান্স বৈচিত্র্য পরীক্ষা করুন।
কৌশলটিকে আরও বুদ্ধিমান করার জন্য প্রবণতা এবং সংকেত বিচারকে সহায়তা করার জন্য মেশিন লার্নিং মডেলগুলি প্রবর্তন করার বিষয়টি বিবেচনা করুন।
উপসংহারে, এই কৌশলটি প্রবণতা নির্ধারণ, ট্রেডিং সংকেত এবং ঝুঁকি ব্যবস্থাপনা বিবেচনা করে একটি তুলনামূলকভাবে পরিপক্ক প্রবণতা অনুসরণকারী সিস্টেম গঠনের জন্য সাধারণভাবে ব্যবহৃত সূচকগুলিকে একত্রিত করে। আরও অপ্টিমাইজেশনের সাথে, আমি বিশ্বাস করি যে এই কৌশলটি আরও ভাল লাইভ ট্রেডিং ফলাফল অর্জন করতে পারে। একই সাথে, আমাদের একক কৌশলগুলির সীমাবদ্ধতা সম্পর্কেও সচেতন হওয়া উচিত এবং দীর্ঘমেয়াদী স্থিতিশীল মুনাফার সন্ধানে বাজারের জটিলতা শিখতে অবিরত করা উচিত।
/*backtest start: 2024-01-05 00:00:00 end: 2024-02-04 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //by Wugamlo //Strategy combining Stochastic Crosses in the Overbought/Oversold Area with a trend determined by two EMAs //Default setup seems to work best on 4HR timeframe for BTC strategy(title = "Strategy Stoch/EMA Cross", shorttitle = "Strategy Stoch/EMA Cross", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD, commission_value=0.01,commission_type=strategy.commission.percent, initial_capital=1000) // === GENERAL INPUTS === SectionInd = input(defval = true ,title = "════════════ INDICATORS ════════════") maFastLength = input(defval = 55, title = "Fast MA Period", minval = 1) maSlowLength = input(defval = 89, title = "Slow MA Period", minval = 1) StochLength = input(defval = 14, title = "Stochastic Length", minval=1) smoothK = input(defval = 6, title = "%K Smooth", minval=1) smoothD = input(defval = 3, title = "%D Smooth", minval=1) overbought = 80 oversold = 20 HighlightOBOS = input(defval = true, title = "Highlight Stoch Cross?") HighlightTrend = input(defval = true, title = "Highlight Trend?") //DATE AND TIME SectionFrom = input(defval = true ,title = "═══════════════ FROM ═══════════════") fromDay = input(defval = 01, title = "From day", minval=1) fromMonth = input(defval = 1, title = "From month", minval=1) fromYear = input(defval = 2019, title = "From year", minval=2014) SectionTo = input(defval = true, title = "════════════════ TO ════════════════") toDay = input(defval = 31, title = "To day", minval=1) toMonth = input(defval = 12, title = "To month", minval=1) toYear = input(defval = 2020, title = "To year", minval=2014) // === STRATEGY RELATED INPUTS === SectionStra = input(defval = true ,title = "═════════════ STRATEGY ═════════════") // Include Shorts or only trade Long Positions? includeShorts = input(defval = true, title = "Include Short Positions?") // Risk Management inputs useTakeProfit = input(defval = true, title = "User Take Profit?") inpTakeProfit = input(defval = 8, title = "Take Profit (%)", minval = 0) useStopLoss = input(defval = false, title = "User Stop Loss?") inpStopLoss = input(defval = 2, title = "Stop Loss (%)", minval = 0) StopLossPerc = inpStopLoss * 0.01 TakeProfitPerc = inpTakeProfit * 0.01 // === EMA SERIES SETUP === maFast = ema(close, maFastLength) maSlow = ema(close, maSlowLength) diff = maFast - maSlow // === STOCHASTIC SETUP === k = sma(stoch(close, high, low, StochLength), smoothK) d = sma(k, smoothD) // Stochastic Long/Short Entry determination stochLong = crossover(k,d) and (k < oversold) stochShort = crossunder(k,d) and (k > overbought) // Stochastic Long/Short Exit determination stochLongEx = crossover (k, overbought) stochShortEx = crossunder(k, oversold) // === PLOTTING EMAs === fast = plot(maFast, title = "Fast MA", color = yellow, linewidth = 1, style = line, transp = 10) slow = plot(maSlow, title = "Slow MA", color = white, linewidth = 1, style = line, transp = 10) // === Vertical Coloring for Crosses in Overbought/Oversold zone and for MA Trend Zones === b_color = stochLong ? green : stochShort ? red : na bgcolor(HighlightOBOS ? b_color : na, title="Overbought / Oversold", transp=65) //Highlight the Overbought/Oversold Stoch Crossings t_color = diff>=0 ? green : diff<0 ? red : na bgcolor(HighlightTrend ? t_color : na, title="Trend up / Trend down", transp=75) //Highlight the EMA Trend // === STRATEGY LOGIC === // Time Restriction timeInRange = true // === STRATEGY - LONG POSITION EXECUTION === if stochLong and (diff >=0) and timeInRange //Open Long when Stoch crossing in Oversold area and EMATrend is up strategy.entry(id = "Long", long = true) if stochLong and (diff <0) and timeInRange //Close Long when another Long Stoch cross signal is given after Trend has changed to down (avoid fake signals) strategy.close(id = "Long") if stochLongEx and timeInRange //Close Long when Stoch is getting Overbought strategy.close(id = "Long") // === STRATEGY - SHORT POSITION EXECUTION === if stochShort and (diff <0) and timeInRange and includeShorts //Open Short when Stoch crossing in Overbought area and EMA Trend is down strategy.entry(id = "Short", long = false) if stochShort and (diff >=0) and timeInRange //Close Short when another Short Stoch cross signal is given after Trend has changed to up (avoid fake signals) strategy.close(id = "Short") if stochShortEx and timeInRange //Close Short when Stoch is getting Oversold strategy.close(id = "Short") // === STRATEGY RISK MANAGEMENT EXECUTION === //Stop Loss if useStopLoss //Exit when Stop Loss is hit strategy.exit("Exit Long SL", from_entry = "Long", loss = close * StopLossPerc / syminfo.mintick ) strategy.exit("Exit Short SL", from_entry = "Short", loss = close * StopLossPerc / syminfo.mintick ) //Take Profit if useTakeProfit //Exit when Take Profit Limit is hit strategy.exit("Exit Long TP", from_entry = "Long", profit = close * TakeProfitPerc / syminfo.mintick) strategy.exit("Exit Short TP", from_entry = "Short", profit = close * TakeProfitPerc / syminfo.mintick)