पायथन प्लेटफ़ॉर्म संतुलन रणनीति

लेखक:छोटे सपने, बनाया गयाः 2020-02-05 10:02:03, अद्यतनः 2023-10-12 21:20:47

img

पायथन प्लेटफ़ॉर्म संतुलन रणनीति

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

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

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

रणनीतिक विवरण

जावास्क्रिप्ट संस्करण से उद्धरणः

यह एक भंडारण की आवश्यकता है, उदाहरण के लिए, एक खाते में 5000 डॉलर हैं, और एक सिक्का, अगर सिक्का का मूल्य खाते में शेष राशि से अधिक है 5000 और मूल्य का अंतर है, तो यह $ 6000 है, तो इसे बेच दें, उदाहरण के लिए, 6000-5000 / 6000 / 2 सिक्का, यह बताता है कि सिक्का बढ़ गया है, इसे वापस ले लो, अगर सिक्का गिर गया है, उदाहरण के लिए, $ 4000 / 4000 / 4 / 2 सिक्का, इसे खरीदें, अगर सिक्का गिर गया है, तो कुछ और खरीदें, अगर यह गिर गया है, तो इसे फिर से बेचें, जैसे कि एक समतल, दोनों तरफ अलग-अलग प्रतिभूति है, इसलिए मैं इसे संतुलन रणनीति कहता हूं।

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

रणनीति कोड

'''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

यह रणनीति केवल संदर्भ सीखने, पुनः परीक्षण और उन्नयन को अनुकूलित करने में रुचि रखने वाले लोगों के लिए है।


संबंधित

अधिक

स्वर्ग से धनअच्छी गाय