ईएमए फिल्टर और सत्र समय सीमा के साथ ऊपर बनाम नीचे बंद मोमबत्तियों की रणनीति

लेखक:चाओझांग, दिनांक: 2023-12-27 14:38:28
टैगः

img

1. रणनीति का अवलोकन

इस रणनीति को उप बनाम डाउन क्लोज कैंडल्स स्ट्रैटेजी विथ ईएमए फिल्टर और सेशन टाइमफ्रेम कहा जाता है। यह बाजार की भावना निर्धारित करने के लिए एक निश्चित लुकबैक अवधि में अप और डाउन क्लोज कैंडल्स की संख्या को गिनती करता है, जो ईएमए फिल्टर और विशिष्ट सत्रों में ट्रेडिंग के साथ संयुक्त है, ताकि लंबे और छोटे संकेतों की पहचान की जा सके।

2. रणनीति तर्क

मूल तर्क हाल के लुकबैक अवधि में अप क्लोज कैंडल (अपक्लोजकाउंट) और डाउन क्लोज कैंडल (डाउनक्लोजकाउंट) की संख्या की गणना करना है। यदि अपक्लोजकाउंट बड़ा है, तो यह एक तेजी से बाजार का संकेत देता है। यदि डाउनक्लोजकाउंट बड़ा है, तो यह एक मंदी बाजार का संकेत देता है। ईएमए संकेतक को एक फ़िल्टर के रूप में उपयोग किया जाता है, केवल मूल्य > ईएमए और मूल्य < ईएमए पर विचार करते हुए लंबे समय तक। यह सत्र 1 और सत्र 2 को ट्रेडिंग सत्र के रूप में भी सेट करता है।

विस्तृत तर्क:

लॉन्ग सिग्नल तब ट्रिगर होता है जब: inSession true (ट्रेडिंग सत्रों में) और upCloseCount > downCloseCount (अधिक करीब मोमबत्तियाँ) और close > ema (बंद मूल्य EMA से अधिक) और currentSignal long नहीं है (कोई मौजूदा स्थिति नहीं है) ।

शॉर्ट सिग्नल तब ट्रिगर होता है जब: inSession true और downCloseCount > upCloseCount (अधिक नीचे बंद मोमबत्तियाँ) और close < ema (बंद मूल्य EMA से कम) और currentSignal short नहीं है (कोई मौजूदा स्थिति नहीं है) ।

3. लाभ का विश्लेषण

  1. बंद/नीचे बंद मोमबत्तियों के इतिहास की तुलना करके बाजार की भावना और प्रवृत्ति को पकड़ता है
  2. ईएमए फ़िल्टर का उपयोग करें ताकि विभिन्न बाजारों में व्यापार से बचा जा सके
  3. सत्र सेट करके गैर-मुख्य व्यापारिक घंटों में शोर से बचें
  4. प्रवृत्ति के अनुसरण और व्यापारिक आवृत्ति के बीच संतुलन

4. जोखिम विश्लेषण

  1. साइडवेज बाजारों में गुमराह किया जा सकता है
  2. अनुचित ईएमए पैरामीटर अप्रभावी फ़िल्टर का कारण बन सकता है
  3. सत्र अनुचित रूप से सेट होने पर छूटने वाले अवसर
  4. घटनाओं के कारण अंतराल को पकड़ने में असमर्थ

समाधान:

  1. ईएमए पैरामीटर अनुकूलित करें
  2. ट्रेडिंग सत्रों को अनुकूलित करें
  3. एटीआर के आधार पर स्टॉप लॉस जोड़ें
  4. घटनाओं की पहचान करें, अंतराल से बचें

5. अनुकूलन दिशाएँ

  1. ट्रेडिंग सत्रों को अनुकूलित करें
  2. ईएमए मापदंडों का अनुकूलन करें
  3. एटीआर आधारित स्टॉप लॉस जोड़ें
  4. घटनाओं की पहचान करें, अंतराल से बचें
  5. बेहतर फ़िल्टर के लिए अन्य संकेतकों के साथ संयोजन
  6. विभिन्न उत्पादों का परीक्षण और समायोजन

6. सारांश

यह रणनीति पूर्व निर्धारित ट्रेडिंग सत्रों के भीतर, बंद और नीचे बंद मोमबत्तियों की तुलना करके और ईएमए फ़िल्टर का उपयोग करके प्रवृत्ति संकेतों की पहचान करती है। इसमें कुछ प्रवृत्ति निम्नलिखित प्रभाव है लेकिन झूठे संकेतों के जोखिम भी हैं। मापदंडों को अनुकूलित करके, स्टॉप लॉस जोड़कर, फ़िल्टर आदि को बढ़ाकर सुधार करें। बैकटेस्ट में पूरी तरह से मूल्यांकन करें।


/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Up vs Down Close Candles Strategy with EMA and Session Time Frames", shorttitle="UvD Strat EMA Session", overlay=true)

// User input to define the lookback period, EMA period, and session strings for time frames
int lookback = input(20, title="Lookback Period")
int emaPeriod = input(50, title="EMA Period")
string session1 = input("0900-1200", title="Time Frame 1 Session")
string session2 = input("1300-1600", title="Time Frame 2 Session")

// Calculate the EMA
float ema = ta.ema(close, emaPeriod)

// State variable to track the current signal
var string currentSignal = na

// Counting up-close and down-close candles within the lookback period
int upCloseCount = 0
int downCloseCount = 0

if barstate.isnew
    upCloseCount := 0
    downCloseCount := 0
    for i = 0 to lookback - 1
        if close[i] > close[i + 1]
            upCloseCount += 1
        else if close[i] < close[i + 1]
            downCloseCount += 1

// Define the long (buy) and short (sell) conditions with EMA filter and session time frame
bool inSession = time(timeframe.period, session1) or time(timeframe.period, session2)
bool longCondition = inSession and upCloseCount > downCloseCount and close > ema and currentSignal != "long"
bool shortCondition = inSession and downCloseCount > upCloseCount and close < ema and currentSignal != "short"

// Enter or exit the market based on conditions
if longCondition
    currentSignal := "long"
    strategy.entry("Buy", strategy.long)

if shortCondition
    currentSignal := "short"
    strategy.entry("Sell", strategy.short)

// Exit logic for long and short positions
if currentSignal == "long" and strategy.position_size <= 0
    strategy.close("Sell")

if currentSignal == "short" and strategy.position_size >= 0
    strategy.close("Buy")

plot(ema, color=color.blue, title="EMA")


अधिक