Type/to search
3
Follow
1505
Followers
Cách khai thác các robot bán hàng vô tri với chiến lược tần suất cao trong 80 dòng mã
HFT
Created 2023-12-24 21:37:45  Updated 2023-12-26 15:40:23
 7
 5969

img

Quan sát cơ hội

Gần đây, tôi vô tình phát hiện ra rằng thị trường của STORJ, một đồng tiền trên Binance, rất kỳ lạ. Khối lượng giao dịch rất lớn và tần suất giao dịch rất nhanh. Đường K một phút cụ thể như sau. Bạn có thể thấy rằng khối lượng giao dịch mỗi phút khá ổn định và có thể thấy một bóng dưới dài trên đường phút.
img
Bằng cách quan sát đường K-line 1 giây của Binance, chúng tôi đã tìm ra manh mối. Ai đó sẽ bán 10.000 đến 20.000 STORJ cứ sau 5-7 giây, bất kể giá cả, và trực tiếp đâm vào một lỗ nhỏ trên đường K-line. Nó sẽ phục hồi bên trong. Hoạt động này rõ ràng là do một con robot được Iceberg ủy quyền thực hiện. Hoạt động bán này kéo dài trong một thời gian rất dài và tổng số tiền ước tính lên tới hàng chục triệu đô la. Trong nhiều trường hợp, sự trượt giá gây ra lên tới 1/1000, điều đó có nghĩa là người thực hiện chiến lược này đã mất hàng chục nghìn đô la chỉ do sự trượt giá của giao dịch. Đô la. Tuy nhiên, các hoạt động cơ học và giao dịch chủ động như vậy tạo ra cơ hội rõ ràng cho việc tạo lập thị trường và đầu cơ.
img

Chỉ cần sửa đổi chiến lược tần số cao ban đầu, chỉ mất vài phút để tạo ra con robot này, chuyên khai thác việc bán các đơn hàng tảng băng trôi một cách vô thức.

Tư duy chiến lược

Vì thị trường sẽ có lệnh bán sau mỗi vài giây nên chúng ta chỉ cần tìm độ sâu 10.000 trong sổ lệnh mua và đặt lệnh trước. Theo cách này, khi tảng băng này được bán, có khả năng cao là robot tạo lập thị trường sẽ có thể nhận được nó. Vào thời điểm này, giao dịch rất sôi động và giá giảm ngay lập tức cũng kích hoạt một số lệnh mua. nguyên tắc tương tự áp dụng cho việc đặt lệnh bán và bán chúng theo đó. Lặp lại thao tác. Tần suất giao dịch rất cao, mặc dù tỷ lệ lợi nhuận mỗi lần không lớn nhưng tổng lợi nhuận vẫn rất đáng kể. Tất nhiên, tiền đề của mọi thứ là phải có một tài khoản có phí giao dịch thấp. Nếu phí giao dịch mua và bán là 0,1% thì không gian này không đủ để trả phí giao dịch.

Hiệu suất chiến lược

Hiệu suất chiến lược như sau. Lúc đầu, lợi nhuận không được in. Tôi đã thay đổi nó vào chiều nay và in lợi nhuận. Robot bán hàng điên rồ đã thay đổi số lượng thành khoảng 5.000 mỗi lần, vì vậy giai đoạn chênh lệch giá tốt nhất đã qua. Lúc đầu, bạn có thể kiếm được khoảng 100-200U một giờ. Điều quan trọng là nó không có rủi ro và chi phí thấp. Nhìn từ góc độ khác, thực ra có rất nhiều kỹ thuật cho lệnh tảng băng trôi. Nếu bạn biết cách viết chiến lược, bạn có thể viết một chiến lược trên FMZ chỉ trong mười hai phút. Quan sát độ sâu của lệnh mua để xác định quy mô lệnh và giá cả, và quan sát quy mô của lệnh mua đang hoạt động để điều chỉnh quy mô lệnh chờ. Và chiến lược ủy thác tảng băng trôi với các đặc điểm như chiếm lĩnh thị trường có thể dễ dàng tiết kiệm hàng chục nghìn đô la.

img

Mã nguồn chiến lược

Mã chiến lược rất đơn giản, chỉ có 80 dòng. Phù hợp với người mới bắt đầu. Một số thông số như độ chính xác đơn được mã hóa cứng trong chương trình. Bạn có thể tự sửa đổi chúng. Các thông số bắt buộc như trong hình bên dưới. Nên lưu chúng để sử dụng trong tương lai trong trường hợp cặp giao dịch trao đổi có một giao dịch điên rồ khác. Bạn có thể tính lãi cho họ bất cứ lúc nào.
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)