Robot chiến lược tần số cao Bitcoin đơn giản năm 2014

Tác giả:Cỏ nhỏ, Ngày: 21-10-2014 22:58:44
Tags:Tần số cao

Mới đây.

Các chiến lược chia sẻ địa chỉ:https://www.fmz.com/strategy/1088Chiến lược này là chiến lược chính của tôi kể từ khi làm tiền ảo, sau đó đã được cải tiến và sửa đổi liên tục, phức tạp nhiều, nhưng ý tưởng chính không thay đổi. Phiên bản được chia sẻ này là phiên bản ban đầu không có lỗi rõ ràng, đơn giản nhất, rõ ràng nhất, không quản lý vị trí, mỗi giao dịch đều đầy, không có thẻ chết để khởi động lại, v.v. nhưng cũng đủ để giải thích vấn đề. Chiến lược này hoạt động từ tháng 8 năm 2014 cho đến đầu năm nay. Trong thời gian này hoạt động rất tốt, mất mát rất ít. Số tiền chạy từ 200 đô la ban đầu đến 80 bitcoin.Những người khác cũng có thể làm điều đó.TrongĐường đi tự động hóa giao dịch tiền ảoCác bài viết trong loạt bài.

Tại sao chia sẻ chiến lược này?

Một trong những điều quan trọng nhất là các giao dịch này có thể giúp bạn tìm hiểu về các chiến lược cao tần số, nhưng thay đổi các chiến lược có thể vẫn hữu ích. 2/ Tôi đã không chia sẻ gì trong một thời gian dài, bài viết này đã được viết rất lâu rồi. 3. Chia sẻ và học tập với mọi người.

Nguyên tắc chiến lược

Các chiến lược này rất đơn giản, có thể hiểu như là một chiến lược làm thị trường tần suất cao, bạn có thể nhìn thấy sau đó sẽ muốn đánh người khác, điều này có thể kiếm tiền, hầu như bất cứ ai cũng có thể viết nó. Tôi đã bắt đầu và không mong đợi nó có thể hiệu quả như vậy, có thể thấy trong tâm trí ý tưởng để vội vàng thực hành, nói không phải là bất ngờ. Như tất cả các chiến lược tần số cao, chiến lược này cũng dựa trên sổ lệnh, hình dưới đây là một phân phối đơn đặt hàng của một sàn giao dịch Bitcoin điển hình.imgBạn có thể thấy bên trái là thanh toán, hiển thị số lượng đơn hàng bị treo ở các mức giá khác nhau, bên phải là đơn hàng bán. Bạn có thể tưởng tượng nếu một người muốn mua Bitcoin, nếu không muốn chờ đợi đơn hàng, chỉ có thể chọn mua đơn, nếu đơn hàng của anh ta nhiều hơn, sẽ làm cho giao dịch bán đơn hàng nhiều giao dịch, gây ra cú sốc cho giá, nhưng cú sốc này thường kéo dài, và một số người không muốn ăn đơn hàng bán ra, giá có thể sẽ phục hồi trong một thời gian rất ngắn, và ngược lại hiểu ai đó sẽ bán đồng tiền tương tự. Ví dụ như trong biểu đồ, nếu mua 5 đồng xu trực tiếp, giá sẽ đạt 10.377, trong khi đó nếu người ta bán 5 đồng xu trực tiếp, giá sẽ đạt 10.348, khoảng trống này là khoảng cách lợi nhuận. Chiến lược sẽ đặt giá thấp hơn một chút 10.377, chẳng hạn như 10.376.99, đồng thời mua ở mức cao hơn một chút 10.348, chẳng hạn như 10.348.01, điều này rõ ràng sẽ làm tăng sự chênh lệch trong đó. Mặc dù không phải mọi khi đều hoàn hảo, nhưng khả năng kiếm tiền thực sự rất cao dưới tác động của xác suất. Để giải thích các hoạt động cụ thể với các tham số của chiến lược bây giờ, các tham số này tất nhiên không thể sử dụng, chỉ là một minh chứng. Nó sẽ tìm kiếm giá của đơn đăng ký mua tích lũy là 8 đồng, đây là 10377, giá bán tại thời điểm này là giá này trừ 0.01 (trừ bao nhiêu có thể là ngẫu nhiên), tương tự như tìm kiếm giá mua tích lũy là 8 đồng, đây là 10348, giá bán tại thời điểm này là 10348.01, tại thời điểm đó giá mua bán chênh lệch là 10376.99-10348.01 = 28.98, giá lớn hơn so với sự chênh lệch dự kiến của chiến lược 1.5, để nếu cả hai giá đăng ký được giao dịch, giá chênh lệch nhỏ hơn 1.5, cũng sẽ tìm một giá để giảm đơn đăng ký, chẳng hạn như giá giao dịch 10, cộng với lỗ hổng chờ đợi.

Thông tin thêm

  1. Không có tiền bạc hay đồng xu thì làm gì? Tình huống này rất phổ biến khi tôi có ít tiền hơn, hầu hết thời gian chỉ treo một bên, nhưng không phải là vấn đề lớn. Thực tế, bạn có thể tham gia vào logic cân bằng tiền tệ, nhưng trong quá trình cân bằng, chắc chắn sẽ có tổn thất, sau khi tất cả các giao dịch đều có khả năng, tôi chọn giữ một bên chờ giao dịch, tất nhiên, điều này cũng lãng phí cơ hội giao dịch của bên kia.
  2. Làm thế nào các vị trí được quản lý? Khi bắt đầu, mua bán hàng loạt, sau đó được chia thành các nhóm khác nhau theo các tham số khác nhau, không hoàn thành hoàn toàn cùng một lúc.
  3. Không dừng lại? Trong khi đó, một số người cho rằng chiến lược này hoàn toàn hợp lý, tôi nghĩ rằng không cần phải dừng lỗ (có thể thảo luận), và còn có một cái nhìn về xác suất, giao dịch là cơ hội, dừng lỗ là điều đáng tiếc.
  4. Làm thế nào để điều chỉnh chiến lược của chúng tôi? Các tham số ở thời điểm này là đối xứng, đó là đơn hàng tích lũy 8 đồng lên, thanh toán tích lũy 8 đồng xuống, không cân bằng chút nào, ví dụ như thay đổi lên 15 đơn hàng tích lũy bán đồng, làm cho cơ hội bán đồng khó khăn hơn, có nhiều khả năng sẽ trở lại với giá thấp hơn, do đó sẽ đánh đồng, và ngược lại kiếm tiền. Thực tế chiến lược trước đó là hiệu quả như vậy, đồng tiền và tiền được tăng.

Giải thích mã

Có thể xem toàn bộ mã trên trang web của tôi tại www.fmz.com, nơi chỉ giải thích các chức năng logic cốt lõi. Đầu tiên là truy cập vào chức năng giá mua bán GetPrice (), cần truy cập vào thông tin độ sâu của lệnh, lưu ý rằng chiều dài thông tin độ sâu của lệnh khác nhau trên các nền tảng khác nhau, và trường hợp thậm chí sau khi truy cập tất cả các lệnh vẫn không có số lượng cần thiết (điều này sẽ dẫn đến tình huống sau khi nhiều danh sách trên mạng 0.01).

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
}

Mỗi vòng lặp chính là onTick (), trong đó thời gian vòng lặp là 3.5s, mỗi vòng lặp sẽ hủy bỏ đơn vị ban đầu và xếp lại, càng đơn giản thì càng ít gặp lỗi.

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);
}

đuôi

Toàn bộ quá trình cũng có hơn 40 dòng, trông rất đơn giản, nhưng lúc đó cũng mất tôi hơn một tuần, điều này vẫn là trường hợp trên nền tảng botvs. Ưu điểm lớn nhất là bắt đầu sớm, vào năm 2014, thị trường chủ yếu là di chuyển, lưới và cửa ăn trộm không có nhiều tần suất cao, khiến chiến lược như cá được nước, sau đó cạnh tranh không thể tránh khỏi ngày càng khốc liệt, tiền của tôi cũng ngày càng nhiều, thách thức phải đối mặt nhiều hơn, phải thay đổi lớn hơn mỗi khoảng thời gian để đối phó, nhưng nói chung vẫn ổn. Tuy nhiên, một chiến lược định lượng không đòi hỏi tần số cao có rất nhiều không gian.


/*
就是我刚开始编写机器人的源代码,几乎没有改动,参数也是原来的参数。这个版本的程序有许多
需要改进的地方,但即使如此,它也当时表现除了惊人的盈利能力,在我本金不多时,不加杠杆平
均每天盈利在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();
    }
}

Có liên quan

Thêm nữa

guohwaĐây là một chiến lược ngay lập tức, phải không? Bây giờ một số sàn giao dịch dường như đã miễn phí một phần tiền tệ, bạn có thể làm được điều đó không?

a624587332Có phải giao dịch BTC tại chỗ của Binance sẽ được miễn phí không?

abcdsfasdfhzwTôi thấy trong chương trình đó, sau khi mua không bán mã, sau khi bán không mua.

thời gianBạn có thể hỏi tại sao nó không được sử dụng bây giờ?

đậuĐặt dấu hiệu, mong đợi phiên bản cải tiến.

quinergXin cảm ơn bạn rất nhiều vì đã chia sẻ và rất có ích. Chúng tôi mong muốn có nhiều cuộc trao đổi sâu sắc hơn như thế. Cảm ơn!

LogaHãy làm việc.