मल्टी-प्लेटफ़ॉर्म हेजिंग स्टेबिलाइजेशन आर्बिट्रेज रणनीति का सरलीकृत संस्करण (केवल अध्ययन उद्देश्य)

लेखक:अच्छाई, बनाया गयाः 2018-08-30 10:28:43, अद्यतन किया गयाः 2023-11-14 21:08:18

Simplified version of Multi-platform Hedging Stabilization Arbitrage strategy  (Study purpose only)

मल्टी-प्लेटफ़ॉर्म हेजिंग स्टेबिलाइजेशन आर्बिट्रेज का सरलीकृत संस्करण www.fmz.com इस रणनीति का मूल संस्करण, आप इस पर पा सकते हैंःhttps://www.fmz.com/bbs-topic/2279यह कोड के बारे में एक बहुत ही विशिष्ट टिप्पणी शामिल है।

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

यहाँ सरल संस्करण हैः

var preSumBalance = 0
var initSumBalance = 0
function UpdateAccount(isFirst){
    var msg = ""
    var sumStocks = 0
    var sumBalance = 0
    for(var i = 0; i < exchanges.length; i++){
        if(exchanges[i].needUpdate == true || isFirst == true){
            exchanges[i].account = _C(exchanges[i].GetAccount)
            exchanges[i].needUpdate = false
            if(isFirst == true){
                initSumBalance += (exchanges[i].account.Balance + exchanges[i].account.FrozenBalance)
                exchanges[i].SetPrecision(_CurrencyPrecision, _BaseCurrencyPrecision)
            }
        }
        sumStocks += (exchanges[i].account.Stocks + exchanges[i].account.FrozenStocks)
        sumBalance += (exchanges[i].account.Balance + exchanges[i].account.FrozenBalance)
        msg += exchanges[i].GetName() + "coin:" + exchanges[i].account.Stocks + "Frozen coin:" + exchanges[i].account.FrozenStocks + "money:" + exchanges[i].account.Balance + "Frozen money:" + exchanges[i].account.FrozenBalance + "\n"
    }
    LogStatus(_D(), "Total Coins:" + sumStocks, "Total Money:" + sumBalance, "\n", msg)
    if(preSumBalance != sumBalance){
        LogProfit(sumBalance - initSumBalance, preSumBalance = sumBalance)
    }
}
function main(){
    UpdateAccount(true)
    while(1){
        for(var i = 0; i < exchanges.length; i++){
            for(var j = 0; j < exchanges.length; j++){
                if(i == 0 && j == 0){
                    for(var m = 0; m < exchanges.length; m++){
                        exchanges[m].thread = exchanges[m].Go("GetTicker")
                    }
                    for(var n = 0; n < exchanges.length; n++){
                        exchanges[n].ticker = exchanges[n].thread.wait()
                    }
                }
                if(exchanges[i].GetName() != exchanges[j].GetName() && exchanges[i].ticker && exchanges[j].ticker && exchanges[i].ticker.Buy - exchanges[j].ticker.Sell > _HedgePrice){
                    if(exchanges[i].account.Stocks > _HedgeAmount && exchanges[j].account.Balance / ((exchanges[i].ticker.Buy + exchanges[j].ticker.Sell) / 2) > _HedgeAmount){
                        var sellId_I = exchanges[i].Sell((exchanges[i].ticker.Buy + exchanges[j].ticker.Sell) / 2, _HedgeAmount, exchanges[i].GetName())
                        var buyId_J = exchanges[j].Buy((exchanges[i].ticker.Buy + exchanges[j].ticker.Sell) / 2, _HedgeAmount, exchanges[i].GetName())
                        exchanges[i].needUpdate = exchanges[j].needUpdate = true
                    }
                }
            }
        }
        UpdateAccount(false)
        Sleep(300)      // test
    }
}

संबंधित सामग्री

अधिक जानकारी

QQ4830163ज़ान

आविष्कारक मात्रा - छोटे सपनेअच्छा!