এই কৌশলটি একটি বিস্তৃত ট্রেডিং সিস্টেম যা একাধিক প্রযুক্তিগত বিশ্লেষণ সরঞ্জামকে একত্রিত করে, মূলত দ্বৈত EMA ব্যবহার করে (20⁄50ট্রেডিং সিগন্যাল তৈরির জন্য কৌশলটি ট্রেডিংয়ের সঠিকতা বাড়ানোর জন্য ট্রেন্ড অনুসরণ এবং মূল্য পুনরুদ্ধারের পদ্ধতিগুলির সংমিশ্রণ গ্রহণ করে।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করেঃ ১. সামগ্রিক প্রবণতার দিকনির্দেশনা নির্ধারণের জন্য ২০ এবং ৫০ পেরিওড EMA ক্রসওভার ব্যবহার করে 2. সম্ভাব্য সমর্থন/প্রতিরোধের মাত্রা চিহ্নিত করতে ফিবোনাচি রিট্র্যাকশন স্তর (23.6%, 38.2%, 50%, 61.8%) ব্যবহার করে ৩. মূল মূল্যের স্তর নিশ্চিত করার জন্য পিভট পয়েন্ট (পিপি) এবং তাদের সমর্থন/প্রতিরোধের স্তর (এস১/এস২, আর১/আর২) একীভূত করে ৪. প্রবেশের শর্তগুলি একই সাথে পূরণ করতে হবেঃ - স্বল্পমেয়াদী EMA দীর্ঘমেয়াদী EMA এর উপরে (লং) বা নীচে (শর্ট) অতিক্রম করে - মূল্য উপযুক্ত ফিবোনাচি স্তরের উপরে/নীচে - মূল্য পিভট পয়েন্ট সমর্থন / প্রতিরোধের মাত্রা নিশ্চিত করে ৫. ঝুঁকি ব্যবস্থাপনার জন্য স্থির স্টপ-লস (30 পিপ) এবং লাভ গ্রহণ (60 পিপ) বাস্তবায়ন করে
এই কৌশলটি একটি তুলনামূলকভাবে সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করতে একাধিক ক্লাসিকাল প্রযুক্তিগত বিশ্লেষণ সরঞ্জামকে একীভূত করে। যদিও এটির কিছু অন্তর্নিহিত বিলম্ব রয়েছে, তবে একাধিক নিশ্চিতকরণ প্রক্রিয়াটি ট্রেডিং নির্ভরযোগ্যতা বাড়ায়। অপ্টিমাইজেশান পরামর্শ বাস্তবায়নের মাধ্যমে কৌশলটির লাইভ ট্রেডিংয়ে উন্নত পারফরম্যান্সের সম্ভাবনা রয়েছে। লাইভ স্থাপনার আগে পুঙ্খানুপুঙ্খ ব্যাকটেস্টিং পরিচালনা এবং নির্দিষ্ট বাজারের বৈশিষ্ট্য অনুসারে পরামিতিগুলি সামঞ্জস্য করার পরামর্শ দেওয়া হয়।
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true) // Input for EMAs and Pivot Points emaShortPeriod = input.int(20, title="Short EMA Period", minval=1) emaLongPeriod = input.int(50, title="Long EMA Period", minval=1) fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level") fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level") fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level") fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level") // Function to calculate Pivot Points and Levels pivot(high, low, close) => pp = (high + low + close) / 3 r1 = 2 * pp - low s1 = 2 * pp - high r2 = pp + (high - low) s2 = pp - (high - low) [pp, r1, s1, r2, s2] // Calculate Pivot Points [pp, r1, s1, r2, s2] = pivot(high, low, close) // Calculate 20 EMA and 50 EMA emaShort = ta.ema(close, emaShortPeriod) emaLong = ta.ema(close, emaLongPeriod) // Plot the EMAs plot(emaShort, color=color.blue, title="20 EMA", linewidth=2) plot(emaLong, color=color.red, title="50 EMA", linewidth=2) // Fibonacci Levels (manually drawn between the most recent high and low) var float fibHigh = na var float fibLow = na if (not na(high[1]) and high > high[1]) // Check if new high is formed fibHigh := high if (not na(low[1]) and low < low[1]) // Check if new low is formed fibLow := low fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1 fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2 fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3 fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4 plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%") plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%") plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%") plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%") // Entry conditions (Crossovers) longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1 shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1 // Exit conditions (Stop Loss and Take Profit) stopLossPips = 30 * syminfo.mintick // 30 pips Stop Loss takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit if (longCondition) strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips) if (shortCondition) strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips) // Plot Pivot Points for visual reference plot(pp, color=color.yellow, linewidth=2, title="Pivot Point") plot(r1, color=color.purple, linewidth=1, title="Resistance 1") plot(s1, color=color.purple, linewidth=1, title="Support 1") plot(r2, color=color.purple, linewidth=1, title="Resistance 2") plot(s2, color=color.purple, linewidth=1, title="Support 2") // Adding Buy and Sell Signals plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small) plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)