अक्सर कहा जाता है कि ट्रेडिंग एक कला है, और कला प्रेरणा से आती है। इसलिए आज मैं आपके साथ साझा करना चाहूंगा कि कैसे अपने ट्रेडिंग प्रेरणा का पता लगाने के लिए FMZ क्वांट डेटा प्लेबैक फ़ंक्शन का उपयोग करें।
जो हम आमतौर पर प्रेरणा कहते हैं वह रचनात्मक अवस्था को संदर्भित करता है जो लोग सोचने की प्रक्रिया में उत्पन्न करते हैं। व्यापारियों के लिए, हमारे मस्तिष्क के बाएं गोलार्ध ने रणनीति लेखन, पूंजी आवंटन और पैरामीटर सेटिंग जैसे नियमों की एक श्रृंखला का निर्माण पूरा कर लिया है। व्यापार की प्रेरणा और बाजार की भावना मस्तिष्क के दाहिने गोलार्ध से आती है।
बहुत से लोगों ने
एक आम आदमी की आंखों में, बाजार की भावना रहस्यमय है। यह एक रहस्यमय प्रतिभा है। इसके साथ, आप बाजार पर खड़े हो सकते हैं। वास्तव में, यह मस्तिष्क द्वारा व्यक्तिपरक व्यापार अनुभव का सारांश है। यह बाजार को देखने के वर्षों के माध्यम से महसूस किया गया एक अस्पष्ट पूर्वानुमान भावना है।
यद्यपि सख्ती से बोलते हुए, प्रेरणा बाजार की भावना के समान नहीं है, हमारा मानना है कि हजारों बार बाजार परिष्करण के बाद, हमारे पास बाजार की गहरी समझ होगी, और हम आसानी से रणनीतियों को विकसित करने में सक्षम होंगे। इसलिए यदि आप इस प्रतिभा को प्राप्त करना चाहते हैं और अधिक व्यापारिक रणनीतियों को विकसित करना चाहते हैं। केवल बड़ी संख्या में लेनदेन के माध्यम से, हम अपनी व्यापार प्रणाली में सुधार कर सकते हैं।
हालांकि, घरेलू कमोडिटी वायदा और स्टॉक में केवल कुछ घंटे का ही ट्रेडिंग समय होता है, इसलिए बाजार को देखने, अपने स्वयं के लाभ पैटर्न और ट्रेडिंग नियमों को बनाने और केवल लाइव ट्रेडिंग से अवचेतन रूप से अपने सशर्त रिफ्लेक्स को प्रशिक्षित करने में किसी के अनुभव में सुधार करना भारी होगा। लंबे समय की लागत का भुगतान करने के अलावा, अधिकांश व्यापारी पूंजी हानि की लागत भी उठाते हैं। इस समस्या को हल करने के लिए, एफएमजेड क्वांट ने डेटा प्लेबैक फ़ंक्शन विकसित किया।
डेटा प्लेबैक फ़ंक्शन को एक्सचेंज के ट्रेडिंग घंटों की परवाह किए बिना प्रशिक्षित किया जा सकता है, और यह विभिन्न प्रकार के कमोडिटी वायदा और डिजिटल मुद्रा किस्मों का समर्थन करता है। बाजार को मैन्युअल रूप से या स्वचालित रूप से खेला जा सकता है, और ऐतिहासिक बाजार का प्रारंभ और अंत समय और प्लेबैक गति को स्वतंत्र रूप से सेट किया जा सकता है। अन्य सॉफ़्टवेयर की तुलना में, के-लाइन डेटा प्लेबैक मोड का व्यापक रूप से उपयोग किया जाता है, जबकि एफएमजेड क्वांट टिक स्तर पर डेटा प्लेबैक मोड को अपनाता है, जो वास्तविक बॉट ट्रेडिंग के बैकटेस्टिंग वातावरण के बहुत करीब है, और यह बाजार के मूल्य मात्रा डेटा को पुनः पेश करता है, जिससे व्यापारियों को वास्तविक दुनिया में विसर्जित होने की अनुमति मिलती है।
FMZ Quant की आधिकारिक वेबसाइट खोलें (fmz.com) रजिस्टर करने और लॉग इन करने के लिए, और फिर डैशबोर्ड में डेटाबेस पर क्लिक करें डेटा प्लेबैक फ़ंक्शन पृष्ठ प्रदर्शित करने के लिए. चार विकल्प बॉक्स और एक चयन बटन हैं. सबसे पहले, केवल उन किस्मों को प्रदर्शित करने के लिए चयन बटन पर क्लिक करें जो वास्तविक बॉट प्लेबैक का समर्थन करते हैं, फिर ऊपरी बाएं भाग में वापस खेलने के लिए किस्मों का चयन करें, फिर अगले दो विकल्प बॉक्स में डेटा का प्रारंभ और अंत समय चुनें, फिर डेटा की समय अवधि को वास्तविक बॉट प्लेबैक के रूप में चुनें, और अंत में डेटा प्लेबैक फ़ंक्शन शुरू करने के लिए सबसे दाईं ओर गो बटन पर क्लिक करें.
डेटा लेबल के नीचे तीन खंड हैं। बाईं ओर ट्रेडिंग इतिहास है, जहां सभी ऑर्डर जो बंद किए गए हैं, कालानुक्रमिक क्रम में प्रदर्शित किए गए हैं। बीच में प्रत्येक खरीद और बिक्री ऑर्डर डेटा की 20-स्थिति गहराई है। दाईं ओर डेटा प्लेबैक का नियंत्रण क्षेत्र है, जहां आप मैन्युअल और स्वचालित डेटा प्लेबैक विधियों का चयन कर सकते हैं, जैसे कि मीडिया प्लेयर का उपयोग करना।
स्थिति सूचकांक कर्सर को बाएं से दाएं आगे और पीछे खींच सकता है, जिससे आप डेटा प्लेबैक के प्रारंभ समय को जल्दी से चुन सकते हैं।
डेटा प्लेबैक की गति को भी नीचे से नियंत्रित किया जा सकता है, कर्सर को दाएं-बाएं, मिलीसेकंड में स्थानांतरित करके, प्लेबैक के दौरान डेटा को तेज और धीमा करने के लिए।
हालांकि वैश्विक आर्थिक माहौल, राष्ट्रीय मैक्रो नीतियों, प्रासंगिक औद्योगिक नीतियों, आपूर्ति और मांग संबंधों, अंतरराष्ट्रीय घटनाओं, ब्याज दरों और विनिमय दरों, मुद्रास्फीति और मुद्रास्फीति, बाजार मनोविज्ञान, अज्ञात कारकों आदि सहित कई कारक हैं जो मूल्य में वृद्धि और गिरावट को प्रभावित करते हैं, बाजार पर अंतिम मूल्य विभिन्न पक्षों और शॉर्ट पोजीशन पक्ष के बीच प्रतिस्पर्धा का परिणाम है। यदि अधिक लोग बेचते हैं, तो कीमत बढ़ेगी; इसके विपरीत, यदि अधिक लोग खरीदते हैं, तो कीमत घट जाएगी। फिर हमें केवल एक ट्रेडिंग रणनीति बनाने के लिए कीमत का विश्लेषण करने की आवश्यकता है।
बाइनेंस एक्सचेंज के बीटीसी_यूएसडीटी ट्रेडिंग जोड़े के एफएमजेड क्वांट प्लेबैक के माध्यम से, हमने पाया कि जब बाजार तेजी से बढ़ता है और घटता है, तो लंबी और छोटी स्थिति के बीच ऑर्डर की मात्रा के संदर्भ में टिक डेटा स्पष्ट रूप से असममित होता है। जब बाजार बढ़ रहा है, तो चल रहे लंबे ऑर्डर की संख्या स्पष्ट रूप से चल रहे शॉर्ट ऑर्डर की संख्या से अधिक होती है; जब बाजार बढ़ रहा है, तो चल रहे शॉर्ट ऑर्डर की संख्या स्पष्ट रूप से चल रहे लंबे ऑर्डर की संख्या से अधिक होती है। तो क्या हम ऑर्डर बुक में लंबित ऑर्डर की मात्रा के आधार पर कम अवधि में कीमत बढ़ने और घटने की भविष्यवाणी कर सकते हैं?
जवाब है हाँ।
जब बाजार बढ़ रहा है, तो लंबे आदेशों की संख्या स्पष्ट रूप से छोटे आदेशों की संख्या से अधिक है।
जब बाजार घट रहा होता है, तो शॉर्ट ऑर्डर की संख्या लॉन्ग ऑर्डर की संख्या से अधिक होती है।
हम लंबी और छोटी लंबित ऑर्डर की गणना करने के लिए गहन टिक डेटा एकत्र कर सकते हैं और उनकी तुलना कर सकते हैं, यदि संयुक्त लंबी और छोटी लंबित ऑर्डर बहुत अलग हैं, तो यह एक संभावित ट्रेडिंग अवसर हो सकता है। उदाहरण के लिए, जब लंबी स्थिति के आदेशों की संख्या छोटी स्थिति के आदेशों की तुलना में N गुना है, तो हम सोच सकते हैं कि बाजार में अधिकांश लोग तेजी से हैं, और भविष्य में कम समय में कीमत में वृद्धि की संभावना बढ़ जाएगी; जब शॉर्ट सेलर की संख्या लंबी बिक्री की तुलना में N गुना है, तो हम सोच सकते हैं कि बाजार में अधिकांश लोग मंदी हैं, और निकट भविष्य में कीमत में गिरावट की संभावना बढ़ जाएगी।
उपरोक्त रणनीति तर्क के अनुसार, यह कोड में लागू किया जाना शुरू होता है। खोलेंःfmz.com> लॉगिन > डैशबोर्ड > रणनीति > रणनीति जोड़ें > पायथन भाषा का चयन करने और रणनीतियों को लिखना शुरू करने के लिए ऊपरी दाएं कोने में ड्रॉप-डाउन मेनू पर क्लिक करें। यह रणनीति शिक्षण के लिए एक परिचय के रूप में कार्य करती है, इसलिए मैं रणनीति को सरल बनाने और निम्नलिखित कोड में टिप्पणियों पर ध्यान देने की कोशिश करता हूं।
चरण 1: रणनीति ढांचा लिखें
# Strategy main function
def onTick():
pass
# Program entry
def main():
while True: # Enter the infinite loop mode
onTick() # Execute the strategy main function
Sleep(1000) # Sleep for 1 second
हमें अपनी रणनीति को बड़े से छोटे तक लिखना चाहिए, जैसे कि एक घर बनाना, पहले फ्रेम और फिर दीवार बनाना। इस ढांचे में, हम दो कार्यों का उपयोग करते हैंः मुख्य कार्य और ऑनटिक कार्य। मुख्य कार्य कार्यक्रम का प्रवेश है, अर्थात, कार्यक्रम यहां से निष्पादित होगा, फिर अनंत लूप मोड में प्रवेश करेगा, और बार-बार ऑनटिक फ़ंक्शन निष्पादित करेगा। फिर हमें बस रणनीति सामग्री को ऑनटिक फ़ंक्शन में लिखने की आवश्यकता है।
चरण 2: वैश्विक चर लिखें
vol_ratio_arr = [] # Long/Short positions pending order ratio array
mp = 0 # Virtual positions
vol_ratio_arr को एक वैश्विक चर के रूप में परिभाषित करने का कारण यह है कि मेरी रणनीति को टिक डेटा के एक टुकड़े के लंबित आदेशों के लंबे और छोटे पद के अनुपात को इकट्ठा करने की आवश्यकता है। यदि हम vol_ratio_arr चर को ऑनटिक फ़ंक्शन में डालते हैं, तो लूप के साथ चलाना स्पष्ट रूप से अनुचित है। हमें एक निश्चित शर्त पूरी होने पर लूप मोड में चर के मूल्य को बदलना होगा। सबसे उचित तरीका चर को लूप के बाहर रखना है।
स्थिति प्रबंधन बहुत आवश्यक है, क्योंकि यह व्यापार तर्क से संबंधित है। आम तौर पर, हम स्पॉट लेनदेन में खातों को प्राप्त करके मुद्रा जोड़े की गणना करते हैं। कोड को सरल बनाने के लिए, व्यापार तर्क को नियंत्रित करने के लिए एक वैश्विक आभासी स्थिति चर को सीधे परिभाषित किया जाता है।
चरण 3: वर्तमान गुणक रिक्त अनुपात की गणना करें
depth = exchange.GetDepth() # Get depth data
asks = depth['Asks'] # Get asks array
bids = depth['Bids'] # Get bids array
asks_vol = 0 # All pending orders at ask price
bids_vol = 0 # All pending orders at bid price
for index, ask in enumerate(asks): # Iterate through the ask price array
# Linear calculation of all pending orders at the ask price
asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids): # Iterate through the bid price array
# Linear calculation of all pending orders at the bid price
bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol # Calculate long/short position ratio
जैसा कि हम सभी जानते हैं, डिजिटल मुद्रा आमतौर पर डीप डेटा के 20 स्तर होते हैं, इसलिए हम लंबी और छोटी स्थिति के आदेशों की संख्या को जोड़कर लंबी और छोटी स्थिति के बीच अनुपात की गणना कर सकते हैं। जब यह मान 1 से अधिक होता है, तो इसका मतलब है कि तेजी वाले लोग मंदी वाले लोगों से अधिक होते हैं, यह दर्शाता है कि भविष्य में कम समय में कीमत बढ़ेगी; जब यह मूल्य 1 से कम होता है, तो इसका मतलब है कि मंदी वाले लोग तेजी वाले लोगों से अधिक होते हैं, यह दर्शाता है कि भविष्य में कम समय में कीमत गिर जाएगी।
हालांकि, एक बिंदु को अलग किया जाना चाहिए। लंबित आदेश उद्घाटन बाजार के करीब है, तेजी या बर्किश की इच्छा अधिक मजबूत होगी। उदाहरण के लिए, पहले स्तर का आदेश निश्चित रूप से 20 वें स्तर की तुलना में तेजी लाने के लिए अधिक इच्छुक है। इसलिए, जब हम लंबित आदेशों को इकट्ठा करते हैं, तो हमें 20 स्तरों के आदेशों को रैखिक तरीके से अलग-अलग भार देने की आवश्यकता होती है, जो अधिक उचित होगा।
चरण 4: समय अवधि में लंबी/छोटी स्थिति अनुपात की रैखिक गणना
global vol_ratio_arr, mp # Introduce global variables
vol_ratio_arr.insert(0, bidask_ratio) # Put the long/short position ratio into the global variable array
if len(vol_ratio_arr) > 20: # If the array exceeds the specified length
vol_ratio_arr.pop() # Delete the oldest elements
all_ratio = 0 # Temporary variable, ratio of all long and short position pending orders
all_num = 0 # Temporary variables, all linear multipliers
for index, vol_ratio in enumerate(vol_ratio_arr): # Variable global variable arrays
num = 20 - index # Linear multiplier
all_num = all_num + num # Linear multiplier accumulation
all_ratio = all_ratio + vol_ratio * num # Accumulation of all long and short position pending orders ratio
ratio = all_ratio / all_num # Linear long and short position pending order ratio
लंबी-लघु स्थिति अनुपात को लंबे संचयी लंबित आदेशों को कम संचयी लंबित आदेशों से विभाजित करके प्राप्त किया जा सकता है। हालांकि, यह केवल एक टिक डेटा है। यदि केवल एक टिक डेटा का उपयोग किया जाता है, तो यह खरीद और बिक्री लेनदेन का निर्णय लेने के लिए एक बुद्धिमान विकल्प नहीं हो सकता है, क्योंकि तेजी से बदलते बाजार में, एक टिक डेटा अविश्वसनीय है। इसलिए हमें टिक डेटा का एक निश्चित टुकड़ा इकट्ठा करने की आवश्यकता है, और अंत में रैखिक गणना के माध्यम से उचित मूल्य की गणना करें।
चरण 5: ऑर्डर दें
last_ask_price = asks[0]['Price'] # Latest buy one price for asks
last_bid_price = bids[0]['Price'] # Latest sell one price for bids
if mp == 0 and ratio > buy_threshold: # If no currency is held currently, and the ratio is greater than the specified value
exchange.Buy(last_ask_price, 0.01) # Buy
mp = 1 # Set the value of virtual position
if mp == 1 and ratio < sell_threshold: # If there is currency held currently, and the ratio is less than the specified value
exchange.Sell(last_bid_price, 0.01) # Sell
mp = 0 # Reset the value of virtual position
क्योंकि हमें ऑर्डर देते समय एक कीमत निर्दिष्ट करने की आवश्यकता होती है, इसलिए हम सीधे खरीदते समय नवीनतम बेचें एक मूल्य का उपयोग कर सकते हैं; जब आप बेचते हैं, तो आप सीधे नवीनतम खरीदें एक मूल्य का उपयोग कर सकते हैं। अंत में, ऑर्डर देने के बाद आभासी स्थिति का मूल्य रीसेट करें।
उपरोक्त डेटा प्लेबैक फ़ंक्शन के आधार पर विकसित रैखिक लंबित ऑर्डर प्रवाह रणनीति का कोड विश्लेषण है। यदि आप मात्रात्मक ट्रेडिंग के शुरुआती हैं, तो डेटा प्लेबैक फ़ंक्शन शून्य लागत पर ट्रेडिंग सीख सकता है और लेनदेन को समझने के समय को छोटा कर सकता है। एक वास्तविक बॉट या अनुकरण किए गए लेनदेन को प्रारंभिक परिणाम प्राप्त करने में आमतौर पर कई साल लगते हैं। डेटा प्लेबैक फ़ंक्शन को समान प्रभाव प्राप्त करने में कई सप्ताह लगते हैं। समय बर्बाद न करने की शर्त पर, आप न्यूनतम नुकसान के साथ ट्रेडिंग सीख सकते हैं। उन्नत व्यापारियों के लिए, गतिशील रीप्ले आपको अपनी पिछली समस्याओं का विश्लेषण करने, ट्रेडिंग रणनीतियों को सत्यापित करने और सुधारने में मदद कर सकता है, रणनीतियों में व्यापारियों के विश्वास में सुधार कर सकता है, और नई रणनीतिक प्रेरणा उत्पन्न करने में मदद कर सकता है।