Chiến lược được chia sẻ tại:https://www.fmz.com/strategy/1088Chiến lược là chiến lược chính của tôi kể từ khi tôi bắt đầu với tiền kỹ thuật số. Sau khi cải tiến và sửa đổi liên tục, nó trở nên phức tạp hơn, nhưng ý tưởng chính không thay đổi. Phiên bản được chia sẻ là phiên bản gốc không có lỗi rõ ràng. Nó đơn giản nhất và rõ ràng nhất. Không có quản lý vị trí. Mỗi giao dịch đều đầy đủ, và không có khởi động lại, nhưng nó đủ để giải thích vấn đề.
Chiến lược này chạy từ tháng 8 năm 2014 đến đầu năm nay, khi các khoản phí trao đổi. Trong thời gian này, hoạt động khá tốt, và thời gian mất mát là rất ít. vốn đã tăng từ 200 nhân dân tệ đến 80 Bitcoin. Quá trình cụ thể có thể được nhìn thấy trongCách giao dịch tự động tiền ảoloạt các bài viết trongXiaocao
Biểu đồ sau đây cho thấy đường cong của tổng tài sản chuyển đổi thành tiền tệ:
Nguyên tắc của chiến lược này rất đơn giản. Nó có thể được hiểu như một chiến lược tạo thị trường tần số cao. Bạn có thể muốn đánh người ta sau khi đọc nó, nó có thể kiếm tiền không?! Vào thời điểm đó, hầu hết mọi người đều có thể viết nó. Tôi không mong đợi nó có hiệu quả như vậy lúc đầu. Có thể thấy rằng chúng ta nên chú ý đến thực hành ngay khi chúng ta có ý tưởng trong tâm trí. Năm 2014, khi robot Bitcoin lần đầu tiên xuất hiện, việc viết các chiến lược kiếm tiền quá dễ dàng. Giố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.
Chúng ta có thể thấy lệnh mua ở bên trái, cho thấy số lượng lệnh ở các mức giá khác nhau, và ở bên phải là lệnh bán. Có thể tưởng tượng rằng nếu ai đó muốn mua Bitcoin, nếu họ không muốn chờ lệnh và chờ đợi, họ có thể chọn chỉ nhận lệnh. Nếu họ có một số lượng lớn lệnh, nó sẽ gây ra một số lượng lớn giao dịch để bán lệnh và danh sách, điều này sẽ ảnh hưởng đến giá. Tuy nhiên, tác động này sẽ không tiếp tục. Một số người muốn nhận lệnh và bán, và giá có thể sẽ phục hồi trong một thời gian rất ngắn. Ngược lại, nó tương tự như hiểu rằng ai đó muốn bán tiền xu. Ví dụ, nếu bạn muốn mua 5 đồng xu trực tiếp, giá sẽ đạt 10377. Tại thời điểm này, nếu ai đó muốn bán 5 đồng xu trực tiếp, giá sẽ đạt 10348. Sự khác biệt giá là lợi nhuận. Chiến lược sẽ chờ một lệnh ở mức giá thấp hơn một chút so với 10377, chẳng hạn như 10376.99, và mua ở mức giá cao hơn một chút so với 10348, chẳng hạn như 10348.01. Giải thích các hoạt động cụ thể với các tham số của chiến lược hiện tại. tham số này tất nhiên không có sẵn, chỉ để minh họa. Nó sẽ tìm kiếm một giá với một số tiền tích lũy của 8 đồng xu, ở đây là 10377, sau đó giá bán tại thời điểm này là giá trừ 0,01 (lượng có thể ngẫu nhiên). Tương tự, nó sẽ tìm xuống một số tiền tích lũy của 8 đồng xu, ở đây là 10348, sau đó giá bán tại thời điểm này là 10348.01, và sự khác biệt giữa giá mua và bán tại thời điểm này là 10376.99-10348.01 = 28.98, lớn hơn so với sự khác biệt giá đặt trước là 1,5, vì vậy nó sẽ tìm một lệnh chờ giao dịch với hai giá này, nếu sự khác biệt giá nhỏ hơn 1,5, nó cũng sẽ tìm thấy một giá để tìm kiếm một lệnh, chẳng hạn như giá mở thêm hoặc trừ 10, và tiếp tục chờ đợi (đáng để theo dõi độ sâu của việc chờ đợi). Ngoài ra, lưu ý rằng chiến lược này chỉ liên quan đến các lệnh chờ sâu hiện tại và không quan tâm đến thị trường lịch sử và giao dịch lịch sử của riêng nó. Chiến lược cũng không có khái niệm mất mát duy nhất. Trên thực tế, tỷ lệ thắng của một giao dịch duy nhất rất cao.
Mã hoàn chỉnh có thể được nhìn thấy trong chia sẻ chiến lược của tôi tạiwww.fmz.com. Ở đây, chỉ có các chức năng logic cốt lõi được giải thích. Không có bất kỳ thay đổi nào, bot mô phỏng đi kèm với botvs thực sự hoạt động hoàn hảo. Đây là một chiến lược hơn ba năm trước, và nền tảng vẫn hỗ trợ nó bây giờ. Nó rất cảm động. Trước hết, để có được chức năng giá thầu-yêu cầu GetPrice ((), bạn cần có được thông tin chiều sâu lệnh. Lưu ý rằng chiều dài thông tin chiều sâu lệnh của các nền tảng khác nhau là khác nhau, và ngay cả khi tất cả các đơn đặt hàng được đi qua, vẫn không có số lượng yêu cầu ( tình huống này sẽ được gây ra bởi nhiều đơn đặt hàng lưới 0.01 ở giai đoạn sau).
function GetPrice(Type) {
//_C() is the fault-tolerant function of the platform
var depth=_C(exchange.GetDepth);
var amountBids=0;
var amountAsks=0;
//Calculate the buy price and get the cumulative depth to a preset price
if(Type=="Buy"){
for(var i=0;i<20;i++){
amountBids+=depth.Bids[i].Amount;
//The parameter floatamountbuy is the preset accumulated depth
if (amountBids>floatamountbuy){
//Add 0.01 to make the order in the front
return depth.Bids[i].Price+0.01;}
}
}
//Calculate the selling price similarly
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;}
}
}
//After traversing the full depth but still not meeting the demand, a price is returned to avoid bugs
return depth.Asks[0].Price
}
Phương pháp chính của mỗi vòng lặp là onTick(). Thời gian vòng lặp được thiết lập ở đây là 3,5 giây. Mỗi vòng lặp sẽ hủy lệnh ban đầu và chờ lại lệnh. Càng đơn giản, càng ít gặp lỗi.
function onTick() {
var buyPrice = GetPrice("Buy");
var sellPrice= GetPrice("Sell");
//diffprice is the preset spread, if the bid/ask spread is less than the preset spread, it will pend a relatively deeper price.
if ((sellPrice - buyPrice) <= diffprice){
buyPrice-=10;
sellPrice+=10;}
//Cancel all the original orders. In fact, the new price is often the same as the price of the order. At this time, it is not necessary to cancel.
CancelPendingOrders()
//Get account information to determine how much money and how many currencies are currently in the account.
var account=_C(exchange.GetAccount);
//The amount of Bitcoins that can be bought, _N() is the precision function of the platform.
var amountBuy = _N((account.Balance / buyPrice-0.1),2);
//The amount of Bitcoin that can be sold, note that there is no position limit, buy and sell as much as you can, as I had very little money at the time.
var amountSell = _N((account.Stocks),2);
if (amountSell > 0.02) {
exchange.Sell(sellPrice,amountSell);}
if (amountBuy > 0.02) {
exchange.Buy(buyPrice, amountBuy);}
//Sleep and enter the next loop
Sleep(sleeptime);
}
Chương trình chỉ có hơn 40 dòng, có vẻ rất đơn giản, nhưng nó cũng mất tôi hơn một tuần vào thời điểm đó, đó là trên nền tảng botvs. Ưu điểm lớn nhất là nó bắt đầu sớm. Năm 2014, thị trường bị chi phối bởi các viên gạch di chuyển, và chiến lược tần số cao của lưới và thu giữ hàng tồn kho không quá nhiều, khiến chiến lược giống như một con cá trong nước. Sau đó, cạnh tranh ngày càng trở nên khốc liệt, và tôi có nhiều tiền hơn và phải đối mặt với nhiều thách thức. Tôi phải thay đổi lớn mỗi lần để đối phó với nó, nhưng nói chung nó trơn tru. Trong điều kiện nền tảng giao dịch không tính phí, nó là một thiên đường cho giao dịch lập trình. Bởi vì các nhà đầu tư bán lẻ có xu hướng hoạt động nếu không có phí, nó cung cấp cơ hội cho phí tần số cao và phí điều chỉnh. Tất cả điều này về cơ bản kết thúc với phí hai chiều thường xuyên 0,1-0,2%. Nó không chỉ là vấn đề của việc bị tính phí, mà còn là vấn đề của hoạt động tổng thể của thị trường. Tuy nhiên, vẫn còn rất nhiều chỗ cho các chiến lược định lượng tần suất cao.