[TOC] मैंने 2020 में एक लेख लिखा था जिसमें उच्च आवृत्ति रणनीतियों के बारे में बताया गया था।https://www.fmz.com/digest-topic/6228...............................................................................................................................................................................................................................................................
रिटर्न कमीशन खाता, उदाहरण के लिए, बिनायन, वर्तमान में निर्माता रिटर्न कमीशन 5 में से एक सौ हजार है, यदि दैनिक लेनदेन की मात्रा 100 मिलियन यू है, तो रिटर्न कमीशन 5000 यू है। बेशक टेकर भी वीआईपी दर पर आधारित है, इसलिए यदि रणनीति को खाने की आवश्यकता नहीं है, तो वीआईपी स्तर उच्च आवृत्ति रणनीति पर बहुत अधिक प्रभाव नहीं डालता है। सामान्य रूप से एक्सचेंजों के विभिन्न स्तरों में अलग-अलग रिटर्न कमीशन दरें भी हैं, जिन्हें उच्च लेनदेन की मात्रा बनाए रखने की आवश्यकता होती है। बहुत पहले कुछ मुद्रा बाजारों में उतार-चढ़ाव बड़ा था, रिटर्न कमीशन भी लाभदायक था, और इन-वॉल्यूम में वृद्धि के साथ, रिटर्न कमीशन लाभ का एक बड़ा अनुपात है, और यहां तक कि पूरी तरह से रिटर्न कमीशन पर भरोसा करते हैं, उच्च आवृत्ति व्यापारी शीर्ष शुल्क का पीछा करते हैं।
गति; उच्च आवृत्ति नीति को उच्च आवृत्ति कहा जाता है क्योंकि यह बहुत तेज़ है; एक्सचेंज कोलो सर्वर में शामिल होने के लिए न्यूनतम विलंबता और सबसे स्थिर कनेक्शन प्राप्त करने के लिए भी इनपुट की शर्तों में से एक है; नीति का आंतरिक समय भी कम से कम होना चाहिए।
उचित बाजारों को उच्च आवृत्ति व्यापार को मात्रात्मक व्यापार का मोती कहा जाता है, मुझे विश्वास है कि बहुत से प्रक्रियात्मक व्यापारियों ने कोशिश की है, लेकिन ज्यादातर लोगों को रोकना चाहिए क्योंकि वे पैसा नहीं कमाते हैं और सुधार की दिशा नहीं पाते हैं, मुख्य कारण गलत व्यापार बाजारों को ढूंढना है। रणनीति के प्रारंभिक चरण में व्यापार करने के लिए अपेक्षाकृत आसान बाजारों को ढूंढना चाहिए, ताकि लाभदायक और सुधारात्मक प्रतिक्रियाएं भी हों, जो रणनीति की प्रगति के लिए फायदेमंद हों। यदि सबसे अधिक प्रतिस्पर्धी बाजारों में शुरू होता है, जहां कई संभावित प्रतिद्वंद्वियों के साथ प्रतिस्पर्धा होती है, तो प्रयास करना जल्दी से हार जाता है। मैं नए स्थायी अनुबंध व्यापार जोड़े की सलाह देता हूं, जब प्रतियोगियों की संख्या बहुत कम होती है, विशेष रूप से अपेक्षाकृत बड़े व्यापार, जब पैसा बनाना सबसे आसान होता है। BTC और ETH के व्यापार का सबसे बड़ा हिस्सा सबसे सक्रिय होता है, लेकिन सबसे कठिन भी है।
प्रतिस्पर्धा का सामना करना पड़ता है; किसी भी व्यापार का बाजार गतिशील रूप से बदलता रहता है, कोई भी व्यापार रणनीति एक बार में कभी नहीं चल सकती है, उच्च आवृत्ति व्यापार अधिक स्पष्ट है, इस बाजार में प्रवेश करने के लिए सीधे सबसे बुद्धिमान, सबसे मेहनती व्यापारियों के समूह के साथ प्रतिस्पर्धा करना। शून्य और खेल वाले बाजार में, आप जो कुछ भी कमाते हैं, वह दूसरों की तुलना में कम होता है। प्रवेश करने के लिए देर से, कठिनाई अधिक होती है, बाजार में पहले से ही लगातार सुधार करना पड़ता है, किसी भी समय समाप्त हो सकता है। तीन या चार साल पहले सबसे अच्छा अवसर होना चाहिए था, हाल ही में डिजिटल मुद्रा बाजार की समग्र सक्रियता में गिरावट आई है, अब नए लोगों से उच्च आवृत्ति व्यापार करना बहुत मुश्किल हो गया है।
उच्च आवृत्ति रणनीतियाँ
मेरी रणनीति ट्रेंड और मार्केटर्स का एक संयोजन है, पहले ट्रेंड का पता लगाएं, फिर ऑर्डर करें, लेनदेन के तुरंत बाद ऑर्डर करें और बेचें, बिना स्टॉक के, नीचे संयोजन रणनीति कोड के बारे में बताया गया है।
नीचे दिया गया कोड बिनाइन परफेक्ट कॉन्ट्रैक्ट पर आधारित आर्किटेक्चर है, जो मुख्य रूप से वेबसॉकेट की गहराई में ऑर्डर प्रवाह ट्रेडों के बाजार और स्थिति की जानकारी को सब्सक्राइब करता है। चूंकि बाजार और खाता जानकारी अलग-अलग सब्सक्राइब की जाती है, इसलिए नवीनतम जानकारी प्राप्त करने के लिए लगातार read ((-1) का उपयोग करने की आवश्यकता होती है, यहां EventLoop ((1000) का उपयोग किया जाता है, जिससे सीधे मृत चक्र से बचा जा सकता है, जिससे सिस्टम भार कम हो जाता है। EventLoop ((1000) को wss या साथ ही कार्य वापस भेजने के लिए अवरुद्ध किया जाता है, जब 1000ms से अधिक समय लगता है।
var datastream = null
var tickerstream = null
var update_listenKey_time = 0
function ConncetWss(){
if (Date.now() - update_listenKey_time < 50*60*1000) {
return
}
if(datastream || tickerstream){
datastream.close()
tickerstream.close()
}
//需要APIKEY
let req = HttpQuery(Base+'/fapi/v1/listenKey', {method: 'POST',data: ''}, null, 'X-MBX-APIKEY:' + APIKEY)
let listenKey = JSON.parse(req).listenKey
datastream = Dial("wss://fstream.binance.com/ws/" + listenKey + '|reconnect=true', 60)
//Symbols是设定的交易对
let trade_symbols_string = Symbols.toLowerCase().split(',')
let wss_url = "wss://fstream.binance.com/stream?streams="+trade_symbols_string.join(Quote.toLowerCase()+"@aggTrade/")+Quote.toLowerCase()+"@aggTrade/"+trade_symbols_string.join(Quote.toLowerCase()+"@depth20@100ms/")+Quote.toLowerCase()+"@depth20@100ms"
tickerstream = Dial(wss_url+"|reconnect=true", 60)
update_listenKey_time = Date.now()
}
function ReadWss(){
let data = datastream.read(-1)
let ticker = tickerstream.read(-1)
while(data){
data = JSON.parse(data)
if (data.e == 'ACCOUNT_UPDATE') {
updateWsPosition(data)
}
if (data.e == 'ORDER_TRADE_UPDATE'){
updateWsOrder(data)
}
data = datastream.read(-1)
}
while(ticker){
ticker = JSON.parse(ticker).data
if(ticker.e == 'aggTrade'){
updateWsTrades(ticker)
}
if(ticker.e == 'depthUpdate'){
updateWsDepth(ticker)
}
ticker = tickerstream.read(-1)
}
makerOrder()
}
function main() {
while(true){
ConncetWss()
ReadWss()
worker()
updateStatus()
EventLoop(1000)
}
}
जैसा कि पहले कहा गया है, मेरी उच्च आवृत्ति रणनीति को पहले प्रवृत्ति को समझने और फिर खरीदारी करने की आवश्यकता होती है। लघु अवधि की प्रवृत्ति का निर्धारण मुख्य रूप से लेनदेन के अनुसार लेनदेन के डेटा पर आधारित है, यानी सदस्यता में एजीटीआरडी, जिसमें लेनदेन की दिशा, मूल्य, मात्रा, लेनदेन का समय आदि शामिल हैं। खरीदारी का मुख्य संदर्भ गहराई और लेनदेन की मात्रा है। नीचे दिए गए विवरण में ध्यान देने योग्य संकेतकों का वर्णन किया गया है, अधिकांश संकेतकों को खरीदारी के दो समूहों में विभाजित किया गया है, और सभी एक निश्चित समय खिड़की में गतिशील हैं।
//bull代表短期看涨,bear短期看跌
let bull = last_sell_price > avg_sell_price && last_buy_price > avg_buy_price &&
avg_buy_amount / avg_buy_time > avg_sell_amount / avg_sell_time;
let bear = last_sell_price < avg_sell_price && last_buy_price < avg_buy_price &&
avg_buy_amount / avg_buy_time < avg_sell_amount / avg_sell_time;
यदि नवीनतम बिक्री मूल्य बिक्री ऑर्डर के औसत मूल्य से अधिक है, नवीनतम खरीद मूल्य खरीद के औसत मूल्य से अधिक है, और निश्चित अंतराल खरीद मूल्य बिक्री ऑर्डर के मूल्य से अधिक है, तो यह निर्णय लेने के लिए कि क्या यह कम समय में अच्छा है या बुरा है।
function updatePrice(depth, bid_amount, ask_amount) {
let buy_price = 0
let sell_price = 0
let acc_bid_amount = 0
let acc_ask_amount = 0
for (let i = 0; i < Math.min(depth.asks.length, depth.bids.length); i++) {
acc_bid_amount += parseFloat(depth.bids[i][1])
acc_ask_amount += parseFloat(depth.asks[i][1])
if (acc_bid_amount > bid_amount && buy_price == 0) {
buy_price = parseFloat(depth.bids[i][0]) + tick_size
}
if (acc_ask_amount > ask_amount && sell_price == 0) {
sell_price = parseFloat(depth.asks[i][0]) - tick_size
}
if (buy_price > 0 && sell_price > 0) {
break
}
}
return [buy_price, sell_price]
}
यहां भी पुराने विचार को लेते हुए, आवश्यक मात्रा तक पुनरावृत्ति की गहराई, यहां यह माना जाता है कि 1s के भीतर 10 पैसे का भुगतान किया जा सकता है, नए लिंकिंग की स्थिति को ध्यान में नहीं रखते हुए, बिक्री की कीमत 10 पैसे का भुगतान करने के लिए सेट की जाती है।
let buy_amount = Ratio * avg_sell_amount / avg_sell_time
let sell_amount = Ratio * avg_buy_amount / avg_buy_time
Ratio एक निश्चित अनुपात का प्रतिनिधित्व करता है, जो कि खरीद मात्रा को हाल ही में बेचे गए आदेशों के एक निश्चित अनुपात का प्रतिनिधित्व करता है। यह रणनीति वर्तमान खरीद और बिक्री गतिविधि के आधार पर आदेश आकार को समायोजित करने के लिए अनुकूल है।
if(bull && (sell_price-buy_price) > N * avg_diff) {
trade('buy', buy_price, buy_amount)
}else if(position.amount < 0){
trade('buy', buy_price, -position.amount)
}
if(bear && (sell_price-buy_price) > N * avg_diff) {
trade('sell', sell_price, sell_amount)
}else if(position.amount > 0){
trade('sell', sell_price, position.amount)
}
जिसमें avg_diff औसत खाता बही का अंतर है, केवल उस समय भुगतान किया जाता है जब मौजूदा खरीद-बिक्री का अंतर एक निश्चित गुणक से अधिक होता है, और जब आप देख रहे होते हैं, तो यदि आप खाली खाते रखते हैं, तो यह भी समतल हो जाता है, लंबे समय तक चालान से बचने के लिए। नीचे का आदेश केवल-निर्माता के आदेशों को डाउनलोड कर सकता है, यह सुनिश्चित करने के लिए कि ऑर्डर लेनदेन हो। और बिनान के साथ अनुकूलित ऑर्डर आईडी का उपयोग कर सकता है, ताकि ऑर्डर वापस आने का इंतजार न करना पड़े।
var tasks = []
var jobs = []
function worker(){
let new_jobs = []
for(let i=0; i<tasks.length; i++){
let task = tasks[i]
jobs.push(exchange.Go.apply(this, task.param))
}
_.each(jobs, function(t){
let ret = t.wait(-1)
if(ret === undefined){
new_jobs.push(t)//未返回的任务下次继续等待
}
})
jobs = new_jobs
tasks = []
}
/*
需要的任务参数写在param里
tasks.push({'type':'order','param': ["IO", "api", "POST","/fapi/v1/order",
"symbol="+symbol+Quote+"&side="+side+"&type=LIMIT&timeInForce=GTX&quantity="+
amount+"&price="+price+"&newClientOrderId=" + UUID() +"×tamp="+Date.now()]})
*/
mztcoinआप पूछ सकते हैं, घास भगवान, बेचने का तर्क क्या है? आप लेनदेन के तुरंत बाद बेचने के लिए सूचीबद्ध हैं, भंडारण भंडारण नहीं रखते हैं, इसका मतलब है कि आप एक ही for चक्र में सूचीबद्ध हैं, क्या कीमत है, क्या लेनदेन नहीं किया गया है?
mztcoinघास के देवता
डेंगूघास के देवता
77924998Grasshopper किस AWS सर्वर का उपयोग करता है?
चुकिटीज़बरदस्ती
ब्वक्सियाकGrasshopper ने एक उच्च आवृत्ति पाठ्यक्रम का भुगतान किया
मेरा दिल अभी भी हैक्या कॉपी करने के लिए यह रणनीति काम करती है?
लेखक ट्रेडमैनCall草神, अधिक से अधिक शिक्षण की उम्मीद है, उच्च आवृत्ति व्यापार में प्रवेश के लिए सीखना
~ हवा में लहरों में लहरें ~क्रूर
fmzeroघास के देवता!
ओक मात्राक्रूर
घासयह बहुत मुश्किल है, और इसका कोई मतलब नहीं है।