विचलन दर BIAS व्यापार रणनीति

लेखक:अच्छाई, बनाया गयाः 2020-06-30 09:58:26, अद्यतन किया गयाः 2023-10-28 15:29:08

[TOC]

img

सारांश

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

संक्षिप्त परिचय

img

विचलन दर BIAS चलती औसत से प्राप्त एक तकनीकी संकेतक है। यह मुख्य रूप से उतार-चढ़ाव में चलती औसत से मूल्य विचलन की डिग्री को मापने के लिए प्रतिशत के रूप में है। यदि चलती औसत एक व्यापारी की औसत लागत है, तो विचलन दर व्यापारी की औसत रिटर्न दर है।

विचलन दर का सिद्धांत

विचलन दर का सैद्धांतिक आधार व्यापारी के दिल का विश्लेषण है। जब कीमत बाजार की औसत लागत से अधिक होती है, तो इसका मतलब है कि लंबी स्थिति के व्यापारियों के पास मुनाफे को नकद करने का विचार होगा, जिससे कीमत गिर जाएगी। जब कीमत बाजार की औसत लागत से कम होती है, तो इसका मतलब है कि शॉर्ट-सेलर्स लाभदायक होते हैं, और लाभ को नकद करने का विचार कीमत में वृद्धि का कारण बनेगा।

  • जब कीमत चलती औसत से ऊपर की ओर विचलित होती है, तो विचलन दर बहुत बड़ी होती है, और भविष्य में कीमत गिरने की उच्च संभावना होती है।

  • जब कीमत चलती औसत से नीचे की ओर विचलित होती है, तो विचलन दर बहुत छोटी होती है, और भविष्य में कीमत बढ़ने की उच्च संभावना होती है।

हालांकि चलती औसत की गणना कीमत से की जाती है, बाहरी रूप के संदर्भ में, कीमत निश्चित रूप से चलती औसत के करीब चलेगी, या कीमत हमेशा चलती औसत के आसपास उतार-चढ़ाव करेगी। यदि कीमत चलती औसत से बहुत दूर हट जाती है, चाहे कीमत चलती औसत से ऊपर या नीचे हो, तो यह अंततः चलती औसत की ओर झुक सकती है, और विचलन दर वह प्रतिशत मूल्य है जो कीमत चलती औसत से विचलित होती है।

विचलन दर की गणना के लिए सूत्र

विचलन दर = [(दिन का समापन मूल्य - N दिन का औसत मूल्य) / N दिन का औसत मूल्य] * 100%

उनमें से, N चलती औसत पैरामीटर है, क्योंकि N की अवधि अलग है, विचलन दर का गणना परिणाम भी अलग है। आम तौर पर, N के मान हैंः 6, 12, 24, 36, आदि। वास्तविक उपयोग में, इसे विभिन्न किस्मों के अनुसार गतिशील रूप से समायोजित भी किया जा सकता है। हालांकि, मापदंडों का चयन बहुत महत्वपूर्ण है। यदि पैरामीटर बहुत छोटा है, तो विचलन दर बहुत संवेदनशील होगी, यदि पैरामीटर बहुत बड़ा है, तो विचलन दर बहुत धीमी होगी। विचलन दर के गणना परिणाम सकारात्मक और नकारात्मक हैं। सकारात्मक विचलन दर जितनी बड़ी होगी, बुल्स का लाभ उतना ही बड़ा होगा और मूल्य सुधार की संभावना उतनी ही अधिक होगी। जितनी बड़ी होगी, लघु विचलन दर उतनी ही अधिक होगी, नकारात्मक लाभ की दर उतनी ही अधिक होगी और रिबाउंड की संभावना उतनी ही अधिक होगी।

रणनीतिक तर्क

चूंकि विचलन दर चलती औसत का एक और रूप है, इसलिए हम डबल चलती औसत रणनीति के आधार पर एक डबल विचलन दर रणनीति को भी अनुकूलित कर सकते हैं। अल्पकालिक विचलन दर और दीर्घकालिक विचलन दर के बीच स्थित संबंध को देखते हुए, वर्तमान बाजार की स्थिति का न्याय किया जाता है। यदि दीर्घकालिक विचलन दर अल्पकालिक विचलन दर से अधिक है, तो यह वास्तव में दीर्घकालिक चलती औसत के पार अल्पकालिक चलती औसत का प्रतिनिधित्व करता है, और इसके विपरीत।

  • लंबी स्थिति खोलनाः यदि कोई वर्तमान होल्डिंग स्थिति नहीं है और दीर्घकालिक विचलन दर अल्पकालिक विचलन दर से अधिक है
  • शॉर्ट पोजीशन खोलनाः यदि कोई वर्तमान होल्डिंग पोजीशन नहीं है और दीर्घकालिक विचलन दर अल्पकालिक विचलन दर से कम है
  • लंबी स्थिति का समापनः यदि एक लंबी स्थिति है, और दीर्घकालिक विचलन दर अल्पकालिक विचलन दर से कम है
  • शॉर्ट पोजीशन बंद करनाः यदि एक होल्डिंग शॉर्ट पोजीशन है, और दीर्घकालिक विचलन दर अल्पकालिक विचलन दर से अधिक है

रणनीति लेखन

चरण 1: एक रणनीति ढांचा लिखें

# Strategy main function
def onTick():
     pass


# Program entry
def main():
     while True: # Enter infinite loop mode
         onTick() # execution strategy main function
         Sleep(1000) # sleep for 1 second

एफएमजेड प्लेटफॉर्म रोटेशन ट्रेनिंग मोड को अपनाता है।mainकार्य और एकonTickfunction को परिभाषित करने की आवश्यकता है. मुख्य कार्य रणनीति का प्रवेश कार्य है, और कार्यक्रम मुख्य कार्य से शुरू करके कोड लाइन द्वारा लाइन निष्पादित करेगा. मुख्य कार्य में, एक लिखेंwhileलूप और बार-बार निष्पादितonTickरणनीति का सारा कोर कोडonTick function.

चरण 2: आभासी पदों को परिभाषित करें

mp = 0

आभासी पदों का लाभ यह है कि यह लिखना सरल है, और पुनरावर्ती संचालन तेज़ है। यह आम तौर पर बैकटेस्ट वातावरण में उपयोग किया जाता है। यह माना जाता है कि प्रत्येक आदेश पूरी तरह से भरा हुआ है, लेकिन वास्तविक स्थिति आमतौर पर वास्तविक व्यापार में उपयोग की जाती है। चूंकि आभासी स्थिति खोलने और बंद होने के बाद राज्य को रिकॉर्ड करना है, इसलिए इसे वैश्विक चर के रूप में परिभाषित करने की आवश्यकता है।

चरण 3: K लाइन प्राप्त करें

exchange.SetContractType('rb000') # Subscribe to futures varieties
bars_arr = exchange.GetRecords() # Get K-line array
if len(bars_arr) <long + 1: # If the number of K lines is too small
     return

FMZ फ़ंक्शन का प्रयोग करनाSetContractType, आप rb000 में पारित करके रेबर इंडेक्स अनुबंध की सदस्यता ले सकते हैं, लेकिन बैकटेस्ट और वास्तविक बाजार की स्थिति में, रेबर इंडेक्स का उपयोग डेटा के रूप में किया जाता है, और विशिष्ट मुख्य अनुबंध का उपयोग आदेश देने के लिए किया जाता है।GetRecordsचूंकि यह विचलन दर की गणना करने के लिए एक निश्चित अवधि लेता है, कार्यक्रम त्रुटियों से बचने के लिए, यदि पर्याप्त K लाइनें नहीं हैं, उपयोगifफ़िल्टर करने के लिए कथन।

चरण 4: विचलन दर की गणना करें

close = bars_arr[-2]['Close'] # Get the closing price of the previous K line
ma1 = TA.MA(bars_arr, short)[-2] # Calculate the short-term moving average value of the previous K line
bias1 = (close-ma1) / ma1 * 100 # Calculate the short-term deviation rate value
ma2 = TA.MA(bars_arr, long)[-2] # Calculate the long-term average of the previous K line
bias2 = (close-ma2) / ma2 * 100 # Calculate the long-term deviation rate value

विचलन दर की गणना के लिए सूत्र के अनुसार, हम पहले समापन मूल्य प्राप्त करते हैं। इस रणनीति में, हम पिछले के-लाइन समापन मूल्य का उपयोग करते हैं, जिसका अर्थ है कि वर्तमान के-लाइन संकेत स्थापित किया गया है और अगली के-लाइन ऑर्डर देने के लिए है। फिर एफएमजेड अंतर्निहित का उपयोग करेंtalibचलती औसत की गणना करने के लिए पुस्तकालय. उदाहरण के लिए चलती औसत हैःTA.MAइस फलन को 2 पैरामीटर प्राप्त होते हैं, अर्थात्: K रेखा सरणी और चलती औसत अवधि।

चरण 5: ऑर्डर देना

global mp # global variables
current_price = bars_arr[-1]['Close'] # latest price
if mp> 0: # If you are holding long positions
    if bias2 <= bias1: # If the long-term deviation rate is less than or equal to the short-term deviation rate
        exchange.SetDirection("closebuy") # Set the trading direction and type
        exchange.Sell(current_price-1, 1) # Closing long positions
        mp = 0 # reset virtual holding positions
if mp <0: # If you are holding short positions
    if bias2 >= bias1: # If the long-term deviation rate is greater than or equal to the short-term deviation rate
        exchange.SetDirection("closesell") # Set the trading direction and type
        exchange.Buy(current_price + 1, 1) # closing short positions
        mp = 0 # reset virtual holding positions
if mp == 0: # If there is no holding position
    if bias2> bias1: # Long-term deviation rate is greater than short-term deviation rate
        exchange.SetDirection("buy") # Set the trading direction and type
        exchange.Buy(current_price + 1, 1) # open long positions
        mp = 1 # reset virtual holding position
    if bias2 <bias1: # The long-term deviation rate is less than the short-term deviation rate
        exchange.SetDirection("sell") # Set the trading direction and type
        exchange.Sell(current_price-1, 1) # open short positions
        mp = -1 # reset virtual holding position

पूर्ण रणनीति

# Backtest configuration
'''backtest
start: 2018-01-01 00:00:00
end: 2020-01-01 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}]
'''

# External parameters
short = 10
long = 50


# Global variables
mp = 0


# Strategy main function
def onTick():
    # retrieve data
    exchange.SetContractType('rb000') # Subscribe to futures varieties
    bars_arr = exchange.GetRecords() # Get K-line array
    if len(bars_arr) <long + 1: # If the number of K lines is too small
        return

    # Calculate BIAS
    close = bars_arr[-2]['Close'] # Get the closing price of the previous K line
    ma1 = TA.MA(bars_arr, short)[-2] # Calculate the short-term moving average of the previous K line
    bias1 = (close-ma1) / ma1 * 100 # Calculate the short-term deviation rate value
    ma2 = TA.MA(bars_arr, long)[-2] # Calculate the long-term average of the previous K line
    bias2 = (close-ma2) / ma2 * 100 # Calculate the long-term deviation rate value

    # Placing Orders
    global mp # global variables
    current_price = bars_arr[-1]['Close'] # latest price
    if mp> 0: # If you are holding long positions
        if bias2 <= bias1: # If the long-term deviation rate is less than or equal to the short-term deviation rate
            exchange.SetDirection("closebuy") # Set the trading direction and type
            exchange.Sell(current_price-1, 1) # closing long positions
            mp = 0 # reset virtual holding position
    if mp <0: # If you are holding short positions
        if bias2 >= bias1: # If the long-term deviation rate is greater than or equal to the short-term deviation rate
            exchange.SetDirection("closesell") # Set the trading direction and type
            exchange.Buy(current_price + 1, 1) # closing short positions
            mp = 0 # reset virtual holding position
    if mp == 0: # If there is no holding position
        if bias2> bias1: # Long-term deviation rate is greater than short-term deviation rate
            exchange.SetDirection("buy") # Set the trading direction and type
            exchange.Buy(current_price + 1, 1) # opening long positions
            mp = 1 # reset virtual holding position
        if bias2 <bias1: # The long-term deviation rate is less than the short-term deviation rate
            exchange.SetDirection("sell") # Set the trading direction and type
            exchange.Sell(current_price-1, 1) # open short positions
            mp = -1 # reset virtual holding position
        

# Program entry function
def main():
    while True: # loop
        onTick() # execution strategy main function
        Sleep(1000) # sleep for 1 second

पूरी रणनीति एफएमजेड की वेबसाइट पर प्रकाशित की गई हैःhttps://www.fmz.com/strategy/215129

रणनीति बैकटेस्ट

बैकटेस्ट कॉन्फ़िगरेशन

img

प्रदर्शन रिपोर्ट

img img

निधि वक्र

img

सारांश

विचलन दर एक सरल और प्रभावी ट्रेडिंग उपकरण है जो व्यापारियों के लिए एक प्रभावी संदर्भ प्रदान कर सकता है। वास्तविक उपयोग में, इसे वास्तव में अपने मूल्य को प्रतिबिंबित करने के लिए एमएसीडी और बोलिंगर बैंड संकेतकों के साथ लचीले ढंग से लागू किया जा सकता है।


संबंधित

अधिक