Type/to search
3
Follow
1505
Followers
80 पंक्तियों के कोड में उच्च आवृत्ति रणनीति के साथ बिना सोचे-समझे बेचने वाले रोबोट का शोषण कैसे करें
HFT
Created 2023-12-24 21:37:45  Updated 2023-12-26 15:40:23
 7
 5969

img

अवसर अवलोकन

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

मूल स्पॉट उच्च आवृत्ति रणनीति को संशोधित करके, इस रोबोट को बनाने में केवल कुछ ही मिनट लगे, जो विशेष रूप से आइसबर्ग ऑर्डर की बिना सोचे-समझे बिक्री का फायदा उठाता है।

रणनीतिक सोच

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

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

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

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() } }
Comment
All comments (7)

    复刻出来了,测试中,感觉还是能赚的都

    10 months ago

    期货能用这个策略吗

    a year ago

    草神,跑的这个策略手续费是多少

    2 years ago

    这个是0手续费

    2 years ago

    小草老师请教一下,这个策略生效的情况下,是不是每个轮训开始,经常能看到撤销之前的两个订单失败的消息(也就是说明买卖单都生效了),才说明策略是有效的

    2 years ago

    撤销失败是成交了,赚钱了才能说明有效

    2 years ago

    哦哦谢谢,另外就是还想向您请教下参数的问题。像这种高频策略如何优化参数。例如我看您分享的2014年的策略,默认的轮训间隔达到了3500ms,如果是高频的话,轮训间隔是不是应该短一点比较好。但是太短的话成交也挺难的,如果太长的话,收市场波动的影响就很大了,如果持仓后没有能够在利润点卖出去,就可能亏损。这块我不是太明白。。

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