2014 में सरल बिटकॉइन उच्च आवृत्ति रणनीति रोबोट

लेखक:घास, दिनांकः 2014-10-21 22:58:44
टैगःउच्च आवृत्ति

रणनीति का परिचय

इस पोस्ट में, हम आपको कुछ महत्वपूर्ण टिप्स बताएंगे।https://www.fmz.com/strategy/1088यह रणनीति मेरी मुख्य रणनीति है क्योंकि मैंने वर्चुअल मुद्रा बनाई है, इसके बाद लगातार सुधार और संशोधन के बाद, बहुत अधिक जटिल है, लेकिन मुख्य विचार नहीं बदला है, साझा किया गया यह संस्करण बिना किसी स्पष्ट बग के मूल संस्करण है, सबसे सरल स्पष्ट है, कोई स्थिति प्रबंधन नहीं है, हर लेनदेन में पूर्ण स्थिति है, कोई कार्ड मरने के बाद फिर से शुरू नहीं होता है, आदि, लेकिन यह भी समस्या को स्पष्ट करने के लिए पर्याप्त है। यह रणनीति अगस्त 2014 से चल रही थी और इस साल की शुरुआत तक एक्सचेंजों द्वारा शुल्क लिया गया था। इस दौरान यह अच्छी तरह से चल रहा था और इसमें बहुत कम नुकसान हुआ था। धनराशि 200 यूरो से 80 बिटकॉइन तक चली गई थी।छोटी घास का सिना ब्लॉगमेंआभासी मुद्राओं के लिए स्वचालित लेनदेन का मार्गइस लेख की एक श्रृंखला है।

क्यों साझा करें यह रणनीति?

1. एक्सचेंजों ने अपनी सेवा शुल्क लेने के बाद लगभग सभी उच्च आवृत्ति रणनीतियों को मार डाला, मेरा कोई अपवाद नहीं है। 2. लंबे समय से कुछ साझा नहीं किया है, यह लेख लंबे समय से लिखना चाहता था। 3. सभी के साथ साझा करें और सीखें।

रणनीति के सिद्धांत

इस रणनीति का सिद्धांत बेहद सरल है, इसे उच्च आवृत्ति के बाजार रणनीति के रूप में समझा जा सकता है, आप इसे देख सकते हैं और फिर किसी को मारना चाहते हैं, यह पैसा कमा सकता है, तब लगभग कोई भी लिख सकता था। मैंने शुरू में भी इसकी उम्मीद नहीं की थी कि यह इतना प्रभावी होगा, यह देखने के लिए कि मन में विचार है कि जल्दी से अभ्यास करने के लिए, यह कहना जरूरी नहीं है कि कोई आश्चर्य नहीं है। बिटकॉइन रोबोट के शुरुआती 2014 में, पैसे कमाने की रणनीति लिखना बहुत आसान है। सभी उच्च आवृत्ति रणनीतियों की तरह, यह भी ऑर्डर बुक पर आधारित है, नीचे दिए गए चित्र में एक विशिष्ट बिटकॉइन एक्सचेंज के ऑर्डर वितरण को दिखाया गया है।imgआप देख सकते हैं कि बाईं ओर भुगतान है, जो विभिन्न कीमतों पर लंबित आदेशों की संख्या दिखाता है, दाईं ओर बिक्री आदेश है। आप कल्पना कर सकते हैं कि यदि कोई व्यक्ति बिटकॉइन खरीदना चाहता है, तो यदि वह प्रतीक्षा नहीं करना चाहता है, तो वह केवल भुगतान करना चुन सकता है, यदि उसके पास बहुत अधिक टुकड़े हैं, तो यह बहुत सारे लेनदेन को बेच देगा, जिससे कीमत में झटका लगेगा, लेकिन यह झटका आम तौर पर जारी रहता है, और कोई भी नहीं चाहता है। उदाहरण के लिए, यदि कोई व्यक्ति 5 सिक्कों को सीधे खरीदता है, तो मूल्य 10377 तक पहुंच जाता है, जबकि यदि कोई व्यक्ति 5 सिक्कों को सीधे बेचता है, तो मूल्य 10348 तक पहुंच जाता है। यह स्थान लाभ स्थान है। रणनीति 10377 से थोड़ा कम मूल्य पर सूचीबद्ध होगी, जैसे 10376.99, और 10348.01 से थोड़ा अधिक मूल्य पर खरीदी जाएगी, जो स्पष्ट रूप से अंतर को कम करेगी यदि यह अभी हुआ है। यद्यपि यह हर बार इतना सही नहीं होगा, लेकिन संभावनाओं के प्रभाव के तहत, पैसे कमाने की संभावना वास्तव में आश्चर्यजनक रूप से अधिक है। अब रणनीति के पैरामीटर के साथ विशिष्ट संचालन की व्याख्या करें, यह पैरामीटर निश्चित रूप से उपयोग नहीं किया जा सकता है, केवल एक उदाहरण के रूप में। यह ऊपर की ओर 8 सिक्कों के लिए एक संचयी लिफ्ट की कीमत की तलाश करेगा, यहाँ 10377 है, तो इस समय की बिक्री की कीमत इस कीमत को घटाकर 0.01 है (कई घटाने के लिए यादृच्छिक हो सकता है), समान रूप से नीचे की ओर 8 सिक्कों के लिए एक संचयी लिफ्ट की तलाश करने के लिए, यहाँ 10348 है, तो इस समय की बिक्री की कीमत 10348.01 है, इस समय की खरीद की कीमत का अंतर 10376.99-10348.01 = 28.98 है, जो कि रणनीति द्वारा अनुमानित मूल्य अंतर से बड़ा है, 1.5 है, इसलिए यदि दोनों कीमतें लिफ्ट की जाती हैं, तो कीमत 1.5 से कम है, तो एक मूल्य की तलाश की जाएगी, जैसे कि डिस्क मूल्य 10, और प्रतीक्षा की कमी है।

आगे की जानकारी

  1. अगर आपके पास पैसा या सिक्का नहीं है तो आप क्या करेंगे? मेरे पास कम पैसा होने पर यह बहुत आम है, ज्यादातर समय एक तरफ से ही पर्ची लटकती है, लेकिन यह कोई बड़ी समस्या नहीं है। वास्तव में, मुद्रा संतुलन के तर्क में शामिल किया जा सकता है, लेकिन संतुलन की प्रक्रिया में नुकसान होना अनिवार्य है, क्योंकि हर बार लेनदेन संभावनाओं के लिए है। मैं लेनदेन के लिए प्रतीक्षा करने के लिए एकतरफा रहना चुनता हूं, और निश्चित रूप से दूसरे पक्ष के लिए लेनदेन का अवसर बर्बाद करता हूं।
  2. यह कैसे प्रबंधित किया जाता है? शुरुआत में, यह पूरी तरह से खरीदा और बेचा जाता है, फिर विभिन्न पैरामीटर के आधार पर विभिन्न समूहों में विभाजित होता है, एक बार में पूरी तरह से लेनदेन नहीं करता है।
  3. क्या कोई रोक नहीं है? रणनीति में पूरी तरह से खरीद-फरोख्त का तर्क है, मुझे लगता है कि स्टॉप-लॉस की आवश्यकता नहीं है (यह चर्चा की जा सकती है), और संभावनाओं का लालच है, सौदा एक मौका है, और स्टॉप-लॉस दुर्भाग्यपूर्ण है।
  4. क्या आप जानते हैं कि सिक्का कैसे बनाया जाता है? इस समय पैरामीटर सममित है, यानी ऊपर 8 सिक्कों के संचयी बिक्री आदेश, नीचे 8 सिक्कों के संचयी भुगतान, थोड़ा असंतुलित है, जैसे ऊपर 15 सिक्कों के संचयी बिक्री आदेश को बदलना, सिक्कों को बेचने का मौका मुश्किल बनाता है, और एक बड़ी संभावना है कि एक कम कीमत पर वापस आ जाएगा, जिससे सिक्का बनाया जाएगा, बदले में पैसा कमाया जाएगा। वास्तव में, पहले की रणनीति काम करती है, सिक्का और पैसा बढ़ता है।

कोड व्याख्या

पूरा कोड मेरे द्वारा www.fmz.com पर साझा किया गया है, जहां केवल कोर लॉजिक फ़ंक्शन का वर्णन किया गया है। बिना किसी बदलाव के, botvs के साथ-साथ एनालॉग डिस्क पूरी तरह से काम करता है, जो कि 3 साल पहले की रणनीति है और प्लेटफॉर्म अभी भी समर्थन करता है। सबसे पहले, खरीद-बेच मूल्य फ़ंक्शन GetPrice प्राप्त करना है, जिसे ऑर्डर गहराई की जानकारी प्राप्त करने की आवश्यकता है, ध्यान दें कि विभिन्न प्लेटफार्मों पर ऑर्डर गहराई की जानकारी की लंबाई अलग है, और यह भी कि सभी ऑर्डरों के माध्यम से जाने के बाद भी आवश्यक मात्रा नहीं है।

function GetPrice(Type) {
   //_C()是平台的容错函数
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //计算买价,获取累计深度达到预设的价格
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //参数floatamountbuy是预设的累计深度
           if (amountBids>floatamountbuy){
               //稍微加0.01,使得订单排在前面
              return depth.Bids[i].Price+0.01;}
        }
    }
    //同理计算卖价
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug
    return depth.Asks[0].Price
}

प्रत्येक लूप के लिए मुख्य फ़ंक्शन onTick ((), यहाँ निर्धारित लूप समय 3.5s है, प्रत्येक लूप मूल एकल को रद्द कर देता है और पुनः सूचीबद्ध करता है, जितना आसान होगा, उतना ही कम बग होगा।

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice是预设差价,买卖价差如果小于预设差价,就会挂一个相对更深的价格
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销
    CancelPendingOrders() 
    //获取账户信息,确定目前账户存在多少钱和多少币
    var account=_C(exchange.GetAccount);
    //可买的比特币量,_N()是平台的精度函数
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //休眠,进入下一轮循环
    Sleep(sleeptime);
}

पूंछ

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


/*
就是我刚开始编写机器人的源代码,几乎没有改动,参数也是原来的参数。这个版本的程序有许多
需要改进的地方,但即使如此,它也当时表现除了惊人的盈利能力,在我本金不多时,不加杠杆平
均每天盈利在5%左右。当然无论从哪一方面,它都不适应今天的市场。
我同时也发了一篇文章在社区,大家可以看看。
by 小草
*/

//稍微改了一下,用了平台的容错函数_C(),和精度函数_N().
//取消全部订单
function CancelPendingOrders() {
    var orders = _C(exchange.GetOrders);
    for (var j = 0; j < orders.length; j++) {
          exchange.CancelOrder(orders[j].Id, orders[j]);}
}

//计算将要下单的价格
function GetPrice(Type,depth) {
    var amountBids=0;
    var amountAsks=0;
    //计算买价,获取累计深度达到预设的价格
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //floatamountbuy就是预设的累计买单深度
           if (amountBids>floatamountbuy){
               //稍微加0.01,使得订单排在前面
              return depth.Bids[i].Price+0.01;}
        }
    }
    //同理计算卖价
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //遍历了全部深度仍未满足需求,就返回一个价格,以免出现bug
    return depth.Asks[0].Price
}
 
function onTick() {
    var depth=_C(exchange.GetDepth);
    var buyPrice = GetPrice("Buy",depth);
    var sellPrice= GetPrice("Sell",depth);
    //买卖价差如果小于预设值diffprice,就会挂一个相对更深的价格
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //把原有的单子全部撤销,实际上经常出现新的价格和已挂单价格相同的情况,此时不需要撤销
    CancelPendingOrders() 
    //获取账户信息,确定目前账户存在多少钱和多少币
    var account=_C(exchange.GetAccount);
    //可买的比特币量
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //可卖的比特币量,注意到没有仓位的限制,有多少就买卖多少,因为我当时的钱很少
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //休眠,进入下一轮循环
    Sleep(sleeptime);
}
    
function main() {
    while (true) {
        onTick();
    }
}

संबंधित

अधिक

गुओहवाक्या यह नकदी रणनीति नहीं है? अब कुछ एक्सचेंजों में ऐसा लगता है कि कुछ सिक्के मुफ्त हैं, क्या यह काम कर सकता है?

a624587332बिआन के बीटीसी के साथ नकदी लेनदेन के लिए कोई शुल्क नहीं है या फिर यह संभव है?

abcdsfasdfhzwएकतरफा लेन-देन? मैं देख रहा हूँ कि प्रोग्राम में कोड नहीं बेचा जाता है जब आप खरीदते हैं, और बिक्री के बाद आप नहीं खरीदते हैं।

समय-समयऔर अब यह काम नहीं कर रहा है? क्या कोई रणनीति है जो अभी काम आती है?

बिजासुओएक चिह्न बनाओ, और एक बेहतर संस्करण की प्रतीक्षा करो।

क्विनेरगबहुत-बहुत धन्यवाद और बहुत-बहुत उपयोगी। हम इस तरह के कई और गहन विचारों के आदान-प्रदान की उम्मीद करते हैं। बहुत बहुत धन्यवाद!

लोगाइसे ठीक करो।