80 लाइनों के कोड के साथ उच्च आवृत्ति रणनीतियों का उपयोग करके बेचने के लिए मस्तिष्क रहित रोबोट का शोषण कैसे करें

लेखक:घास, बनाया गयाः 2023-12-24 21:37:45, अद्यतन किया गयाः 2023-12-26 15:40:23

img

अवलोकन का अवसर

हाल ही में दो दिनों में बाजार को देखने के दौरान, यह जानकर आश्चर्य हुआ कि बिनान के पास एक बिन स्टोर्ज बाजार है। यह बहुत अजीब है, लेनदेन की मात्रा बहुत बड़ी है, और लेनदेन की आवृत्ति बहुत तेज है, एक मिनट के लिए विशिष्ट K लाइन का ग्राफ नीचे दिया गया है, आप देख सकते हैं कि प्रत्येक मिनट के लिए लेनदेन की मात्रा समान है, और मिनट लाइन पर आप लंबी नीची छाया रेखा देख सकते हैं।imgबिआन के 1 सेकंड के स्तर के के-लाइन के साथ देखने पर, यह पाया गया कि अंतराल में, किसी ने 5-7s के बीच बाजार में 20,000 से 20,000 एसटीओआरजे को बेच दिया, लागत की परवाह किए बिना, सीधे के-लाइन पर एक छोटा सा गड्ढा खोदा, और कीमत कम समय में बरामद हो गई। यह ऑपरेशन स्पष्ट रूप से हिमशैल द्वारा सौंपे गए रोबोट द्वारा किया गया था। यह बिक्री ऑपरेशन बहुत लंबा था, कुल अनुमानित दस लाख डॉलर के स्तर तक पहुंच गया था, और कई बार स्लिप 1 हजारवें तक पहुंच गया था, जिसका अर्थ है कि केवल लेनदेन का स्लिप, इस रणनीति के निष्पादक को सैकड़ों डॉलर का नुकसान हुआ था। इस प्रकार, लेकिन मैकेनिकल ऑपरेशन और सक्रिय लेनदेन के लिए एक स्पष्ट अवसर है।img

इस तरह के एक रोबोट ने कुछ ही मिनटों में इस बर्फ के पहाड़ को बेचने के लिए एक बेवकूफ व्यक्ति का शोषण करने के लिए काम किया।

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

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

रणनीतिक प्रदर्शन

रणनीति इस प्रकार है, शुरुआत में कोई मुनाफा नहीं था, आज दोपहर इसे बदल दिया गया था, मुनाफा बाहर रखा गया था, पागल बिक्री रोबोट ने हर बार की मात्रा को 5000 के आसपास बदल दिया था, इसलिए सबसे अच्छा लाभ का समय बीत गया था। शुरुआत में शायद प्रति घंटे 100-200U को मारने के लिए, कुंजी जोखिम रहित, कम लागत है। यहां से, दूसरी ओर, हिमशैल परमिट में वास्तव में बहुत सारी तकनीकें भी हैं, यदि रणनीति लिखी जाती है, तो एफएमजेड पर दस मिनट का समय लगाकर खरीद ऑर्डर लिख सकते हैं।

img

रणनीतिक स्रोत

रणनीति कोड बहुत सरल है, केवल 80 पंक्तियाँ हैं. शुरुआती लोगों के लिए, यहां कुछ पैरामीटर हैं जैसे कि सटीकता जैसे पैरामीटर प्रोग्राम में लिखे गए हैं, जिन्हें आप स्वयं बदल सकते हैं, आवश्यक पैरामीटर नीचे दिए गए चित्र के रूप में हैं, यह सलाह दी जाती है कि आप उन्हें किसी भी समय ब्याज वसूलने के लिए सुरक्षित रख सकते हैं, यदि एक्सचेंज व्यापारियों के लिए फिर से सांस लेता है।img

function CancelPendingOrders() {
    var orders = _C(exchange.GetOrders)
    for (var j = 0; j < orders.length; j++) {
        exchange.CancelOrder(orders[j].Id, orders[j])
    }
}

function onexit(){
    CancelPendingOrders()
}

function GetPrice(Type, Depth) {
    var sumAmount = 0
    var checkAmount = Type == "Buy" ? CheckBuyAmount : CheckSellAmount
    var deep = Type == "Buy" ? Depth.Bids : Depth.Asks
    for(var i = 0; i < Math.min(20, deep.length); i++) {
        if(Type == "Buy"  && deep[i].Price == lastBuyPrice && buyId){
            sumAmount += deep[i].Amount - amountBuy //这里要减去自己的挂单
        }else if(Type == "Sell"  && deep[i].Price == lastSellPrice && sellId){
            sumAmount += deep[i].Amount - amountSell
        }else{
            sumAmount += deep[i].Amount
        }
        if(sumAmount >= checkAmount){
            return deep[i].Price
        }
    }
    return deep[19].Price
}

function OnTick() {
    var depth = _C(exchange.GetDepth)
    var buyPrice = _N(Math.min(GetPrice("Buy", depth) + 0.0001, depth.Asks[0].Price-0.0001) , 4) //保证在盘口
    var sellPrice = _N(Math.max(GetPrice("Sell", depth) - 0.0001, depth.Bids[0].Price+0.0001), 4)
    LogStatus('buy_price:'+buyPrice, '  sell price: '+sellPrice)
    if ((sellPrice - buyPrice) < DiffPrice) {
        buyPrice = 0
    }
    if(sellPrice != lastSellPrice && sellId){
        exchange.CancelOrder(sellId);
        sellId = 0
        lastSellPrice = 0
    }
    if(buyPrice != lastBuyPrice && buyId){
        exchange.CancelOrder(buyId);
        buyId = 0
        lastBuyPrice = 0
    }   
    var acc = _C(exchange.GetAccount)
    if(account.Stocks+account.FrozenStocks != acc.Stocks+acc.FrozenStocks){
        LogProfit((acc.Stocks+acc.FrozenStocks)*depth.Bids[0].Price+acc.Balance+acc.FrozenBalance - 2000)
        Log('free '+acc.Stocks, ' lock: '+ acc.FrozenStocks, ' total: ' , (acc.Stocks+acc.FrozenStocks)*depth.Bids[0].Price+acc.Balance+acc.FrozenBalance)
    }
    account = acc
    amountBuy = _N(Math.min(account.Balance / buyPrice - 0.1, Amount), 0)
    amountSell = _N(account.Stocks, 0)
    if (sellPrice > 0 && amountSell > 40 && sellId == 0) {
        sellId = exchange.Sell(_N(sellPrice,4), amountSell)
        lastSellPrice = sellPrice
    }
    if (buyPrice>0 && amountBuy > 40 && buyId == 0) {
        buyId = exchange.Buy(_N(buyPrice,4), amountBuy)
        lastBuyPrice = buyPrice
    }
    Sleep(Interval)
}
var account = {Stocks:0, FrozenStocks:0, Balance:0, FrozenBalance:0}
var buyId = 0
var sellId = 0
var lastBuyPrice = 0
var lastSellPrice = 0
var amountSell = 0
var amountBuy = 0
function main() {
    CancelPendingOrders()
    while (true) {
        OnTick()
    }
}

अधिक

चेकपॉइंटहे भगवान, इस रणनीति को चलाने के लिए कितना खर्च होता है?

yc123hकृपया, इस रणनीति को लागू करने की स्थिति में, क्या यह हर दौर की शुरुआत में है, अक्सर दो आदेशों के विफल होने के संदेश को देखने के लिए (यानी, यह दर्शाता है कि सभी खरीद और बिक्री के आदेश प्रभावी हैं) ।

घासयह शून्य है।

yc123hधन्यवाद, मैं आपको पैरामीटर के बारे में भी पूछना चाहता हूं. इस तरह की उच्च आवृत्ति रणनीति पैरामीटर को कैसे अनुकूलित करती है. उदाहरण के लिए, मैंने आपके द्वारा साझा की गई 2014 की रणनीति को देखा, डिफ़ॉल्ट रूप से प्रशिक्षण अंतराल 3500ms तक पहुंच गया, यदि यह उच्च आवृत्ति है, तो प्रशिक्षण अंतराल थोड़ा छोटा होना चाहिए। लेकिन बहुत कम समय में लेनदेन करना भी मुश्किल है, यदि यह बहुत लंबा है, तो बाजार में उतार-चढ़ाव का बहुत प्रभाव पड़ता है, यदि होल्डिंग के बाद मुनाफे के बिंदु को बेचने में सक्षम नहीं है, तो नुकसान हो सकता है। यह टुकड़ा मुझे बहुत समझ में नहीं आता है।

घासएक बार जब आप इसे रद्द कर देते हैं, तो यह एक सौदा है, और यह काम करने के लिए पैसे कमाए जाते हैं।