यह रणनीति ट्रेंड फॉलोइंग और रिवर्सल ट्रेडिंग को लागू करने के लिए एमएसीडी, ईएमए और आरएसआई संकेतकों को जोड़ती है। यह खरीद संकेत उत्पन्न करता है जब एमएसीडी सिग्नल लाइन के माध्यम से ऊपर जाता है और बंद मूल्य ईएमए से ऊपर होता है; और संकेत बेचता है जब एमएसीडी सिग्नल लाइन से नीचे गिरता है और बंद मूल्य ईएमए से नीचे होता है। इस बीच, यह रुझानों को पकड़ने के लिए रिवर्सल ट्रेड करता है जब आरएसआई ओवरबॉट या ओवरसोल्ड स्तर तक पहुंचता है।
एमएसीडी अंतर और ईएमए की गणना करें।
fastMA = ema(close, fast)
slowMA = ema(close, slow)
macd = fastMA - slowMA
signal = sma(macd, 9)
ema = ema(close, input(200))
खरीद संकेत उत्पन्न करेंः एमएसीडी डिफ (एमएसीडी - संकेत) 0 से ऊपर जाता है और बंद मूल्य ईएमए से ऊपर होता है।
delta = macd - signal
buy_entry= close>ema and delta > 0
बेचने का संकेत उत्पन्न करेंः एमएसीडी डिफ 0 से नीचे जाता है और बंद मूल्य ईएमए से नीचे होता है।
sell_entry = close<ema and delta<0
जब आरएसआई ओवरबॉट या ओवरसोल्ड स्तर तक पहुंचता है तो व्यापार में उलटफेर होता है।
if (rsi > 70 or rsi < 30)
reversal := true
समाधान:
यह रणनीति मैकडी, ईएमए और आरएसआई को संयोजित करती है ताकि ट्रेंड फॉलोइंग और रिवर्सल ट्रेडिंग को व्यवस्थित रूप से लागू किया जा सके। मैकडी ट्रेंड दिशाओं का न्याय करता है, ईएमए शोर को फ़िल्टर करता है, और आरएसआई रिवर्सल पॉइंट्स को कैप्चर करता है। इस तरह के बहु-सूचक संयोजन बाजार की चाल को बेहतर ढंग से निर्धारित कर सकते हैं, गलत संकेतों को कम करते हुए लाभप्रदता में सुधार कर सकते हैं। अनावश्यक नुकसान को कम करने के लिए पैरामीटर अनुकूलन और स्टॉप लॉस प्रबंधन में और सुधार किया जा सकता है। कुल मिलाकर, यह स्थिर लाभ की क्षमता के साथ एक ठोस रणनीति ढांचा है।
/*backtest start: 2023-11-17 00:00:00 end: 2023-12-17 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/ // © mbuthiacharles4 //Good with trending markets //@version=4 strategy("CHARL MACD EMA RSI") fast = 12, slow = 26 fastMA = ema(close, fast) slowMA = ema(close, slow) macd = fastMA - slowMA signal = sma(macd, 9) ema = ema(close, input(200)) rsi = rsi(close, input(14)) //when delta > 0 and close above ema buy delta = macd - signal buy_entry= close>ema and delta > 0 sell_entry = close<ema and delta<0 var bought = false var sold = false var reversal = false if (buy_entry and bought == false and rsi <= 70) strategy.entry("Buy",true , when=buy_entry) bought := true strategy.close("Buy",when= delta<0 or rsi > 70) if (delta<0 and bought==true) bought := false //handle sells if (sell_entry and sold == false and rsi >= 30) strategy.entry("Sell",false , when=sell_entry) sold := true strategy.close("Sell",when= delta>0 or rsi < 30) if (delta>0 and sold==true) sold := false if (rsi > 70 or rsi < 30) reversal := true placing = rsi > 70 ? high :low label.new(bar_index, placing, style=label.style_flag, color=color.blue, size=size.tiny) if (reversal == true) if (rsi < 70 and sold == false and delta < 0) strategy.entry("Sell",false , when= delta < 0) sold := true reversal := false else if (rsi > 30 and bought == false and delta > 0) strategy.entry("Buy",true , when= delta > 0) bought := true reversal := false