Type/to search
8
Follow
1364
Followers
एकल मंच संतुलन रणनीति का पायथन संस्करण
Discussions
Created 2020-02-05 10:02:03  Updated 2023-10-12 21:20:47
 1
 2965

img

एकल मंच संतुलन रणनीति का पायथन संस्करण

जावास्क्रिप्ट संस्करण

रणनीति पता: https://www.fmz.com/strategy/345

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

रणनीति विवरण

निर्देशों के जावास्क्रिप्ट संस्करण से उद्धरण:

इसके लिए एक पोजीशन खोलने की आवश्यकता होती है। उदाहरण के लिए, यदि खाते में 5,000 युआन और 1 सिक्का है, यदि सिक्के का मूल्य 5,000 के खाते के शेष से अधिक है और मूल्य अंतर सीमा से अधिक है, उदाहरण के लिए, सिक्के का मूल्य अब 6,000 है युआन, तो बेचें (6,000-5,000)/6,000. /2 सिक्के, इसका मतलब है कि सिक्के की कीमत बढ़ गई है, पैसे वापस एक्सचेंज करें, अगर सिक्के का मूल्य गिरता है, उदाहरण के लिए, 4000 युआन तक, तो खरीदें (5000-4000)/4000/2 सिक्के, जब सिक्का गिरता है तो कुछ वापस खरीद लेते हैं, अगर यह फिर से ऊपर जाता है, तो मैं इसे फिर से बेच दूंगा, बिल्कुल एक संतुलन की तरह, दोनों तरफ अलग-अलग हेज के साथ, इसलिए मैंने इसे एक संतुलित रणनीति का नाम दिया।

रणनीति सिद्धांत बहुत सरल है, और कोड का जावास्क्रिप्ट संस्करण लंबा नहीं है, केवल 70 पंक्तियों से अधिक है। अधिक संक्षिप्त वाक्यविन्यास के साथ पायथन भाषा रणनीति में प्रत्यारोपित, कोड छोटा है और शुरुआती लोगों के लिए सीखने के लिए बहुत उपयुक्त है। इन्वेंटर क्वांटिटेटिव ट्रेडिंग प्लेटफ़ॉर्म पर डेवलपर्स द्वारा बहुत सारे कोड साझा किए गए हैं, और भाषा समर्थन करती हैJavaScript/C++/Pythonआदि, इसलिए एक और विकास भाषा में महारत हासिल करना न केवल सीखने, अनुसंधान और विकास रणनीतियों के लिए सहायक है, बल्कि आपको प्लेटफ़ॉर्म के विभिन्न API इंटरफेस से अधिक परिचित होने की भी अनुमति देता है।

रणनीति कोड

'''backtest start: 2019-12-01 00:00:00 end: 2020-02-01 11:00:00 period: 1m exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}] ''' InitAccount = None def CancelPendingOrders(): ret = False while True: orders = _C(exchange.GetOrders) if len(orders) == 0 : return ret for j in range(len(orders)): exchange.CancelOrder(orders[j].Id) ret = True if j < len(orders) - 1: Sleep(Interval) return ret def onTick(): acc = _C(exchange.GetAccount) ticker = _C(exchange.GetTicker) spread = ticker.Sell - ticker.Buy diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2 ratio = diffAsset / acc.Balance LogStatus("ratio:", ratio, _D()) if abs(ratio) < threshold: return False if ratio > 0 : buyPrice = _N(ticker.Sell + spread, ZPrecision) buyAmount = _N(diffAsset / buyPrice, XPrecision) if buyAmount < MinStock: return False exchange.Buy(buyPrice, buyAmount, diffAsset, ratio) else : sellPrice = _N(ticker.Buy - spread, ZPrecision) sellAmount = _N(-diffAsset / sellPrice, XPrecision) if sellAmount < MinStock: return False exchange.Sell(sellPrice, sellAmount, diffAsset, ratio) return True def main(): global InitAccount, LoopInterval InitAccount = _C(exchange.GetAccount) LoopInterval = max(LoopInterval, 1) while True: if onTick(): Sleep(1000) CancelPendingOrders() Log(_C(exchange.GetAccount)) Sleep(LoopInterval * 1000)

कोड की शुरुआत होती है

'''backtest start: 2019-12-01 00:00:00 end: 2020-02-01 11:00:00 period: 1m exchanges: [{"eid":"OKEX","currency":"BTC_USDT","stocks":1}] '''

यह बैकटेस्ट कॉन्फ़िगरेशन है, जिसका अर्थ है कि बैकटेस्ट कॉन्फ़िगरेशन (सेटिंग्स) को कोड के रूप में सहेजा जाता है, और बैकटेस्ट स्वचालित रूप से इस सेटिंग के अनुसार कॉन्फ़िगर किया जाता है। इस भाग को हटाया जा सकता है। यदि इसे हटा दिया जाता है, तो आपको बैकटेस्टिंग के दौरान बैकटेस्ट पृष्ठ पर बैकटेस्ट कॉन्फ़िगरेशन जानकारी मैन्युअल रूप से सेट करनी होगी।
संदर्भ: https://www.fmz.com/bbs-topic/859

इस रणनीति के पैरामीटर जावास्क्रिप्ट संस्करण के समान ही हैं। रणनीति कोड को भी वाक्य दर वाक्य प्रत्यारोपित किया गया है, और कार्यक्रम संरचना में कोई बदलाव नहीं किया गया है। आप अलग-अलग तरीकों से लिखी गई रणनीतियों के बीच अंतर देखने के लिए वाक्य दर वाक्य उनकी तुलना कर सकते हैं। भाषाएँ.

बैकटेस्टिंग

पैरामीटर कॉन्फ़िगरेशन
img

आंकड़े
img

img

रणनीति पता: https://www.fmz.com/strategy/183374

यह रणनीति केवल संदर्भ, बैकटेस्टिंग और परीक्षण के लिए है। यदि आप रुचि रखते हैं, तो आप इसे अनुकूलित और अपग्रेड कर सकते हैं।

Related Recommendations
Comment
All comments (1)

    好牛啊

    4 years ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)