30 dòng mã đưa bạn vào thế giới đầu tư định lượng.

Tác giả:Giấc mơ nhỏ, Tạo: 2016-04-06 10:17:26, Cập nhật: 2020-01-13 15:17:11

Một chiến lược trung tuyến tối đa đơn giản hóa 30 dòng tạo ra một hệ thống thu nhập theo chiều ngang

Đúng vậy! Bạn nghe đúng là 30 dòng mã! Chỉ có 30 dòng mã nhỏ mà tôi đã quen với việc đọc bài viết trước. Mã, để có một cái nhìn tổng thể!

Các tham số chiến lược như sau:

Các tham số Mô tả Loại Định giá mặc định
Thời gian nhanh Chu kỳ ra thị Định dạng số (number) 3
Thời gian chậm Chu kỳ bán lẻ chậm Định dạng số (number) 7
EnterPeriod Thời gian quan sát thị trường Định dạng số (number) 3
ExitFastPeriod Chu kỳ bán tháo nhanh Định dạng số (number) 3
ExitSlowPeriod Chu kỳ giảm giá Định dạng số (number) 7
Thời gian rời khỏi Thời gian quan sát Định dạng số (number) 1
Tỷ lệ vị trí Tỷ lệ vị trí Định dạng số (number) 0.8
Khoảng thời gian Chu kỳ thăm dò ((s) Định dạng số (number) 10

img

  • Nhập交易类库Bạn có thể viết một chiến lược dễ dàng, không cần phải lo lắng về việc mua hay bán.
  • Khi đọc mã và thấy một biến số chưa được tuyên bố, bạn sẽ được trả lời.
function main() {
    var STATE_IDLE  = -1;
    var state = STATE_IDLE;
    var opAmount = 0;
    var initAccount = $.GetAccount();
    Log(initAccount);
    while (true) {
        if (state === STATE_IDLE) {
            var n = $.Cross(FastPeriod, SlowPeriod);
            if (Math.abs(n) >= EnterPeriod) {
                opAmount = parseFloat((initAccount.Stocks * PositionRatio).toFixed(3));
                var obj = n > 0 ? $.Buy(opAmount) : $.Sell(opAmount);
                if (obj) {
                    opAmount = obj.amount;
                    state = n > 0 ? PD_LONG : PD_SHORT;
                    Log("开仓详情", obj, "交叉周期", n);
                }
            }
        } else {
            var n = $.Cross(ExitFastPeriod, ExitSlowPeriod);
            if (Math.abs(n) >= ExitPeriod && ((state === PD_LONG && n < 0) || (state === PD_SHORT && n > 0))) {
                var obj = state === PD_LONG ? $.Sell(opAmount) : $.Buy(opAmount);
                state = STATE_IDLE;
                var nowAccount = $.GetAccount();
                LogProfit(nowAccount.Balance - initAccount.Balance, '钱:', nowAccount.Balance, '币:', nowAccount.Stocks, '平仓详情:', obj, "交叉周期", n);
            }
        }
        Sleep(Interval*1000);
    }
}
  • Chiến lược này chỉ có một hàm chủ main (), không có các mô-đun khác.
  • Tôi đã chia sẻ bản chú thích mã của chiến lược này trên nhóm QQ, và những người mới bắt đầu học có thể xem bản chú thích để dễ dàng học.
  • Nếu bạn chưa tham gia vào nhóm QQ chính thức, hãy tham gia: 309368835 Các nhà phát minh định lượng trao đổi EA ((trước đây là BotVS)); chiến lược chỉ là vài dòng mã, rất đơn giản!
  • Để chăm sóc cho những học sinh không có nền tảng ngôn ngữ JavaScript, chúng tôi đã trình bày ngữ pháp đơn giản ở đây, để không có học sinh nào hiểu nhầm mã.

Tuyên bố biến

Từ khóavar+ tên biến, ví dụvar name = “小明”

Chuyển vòng

while(循环条件){
    // 将会重复执行的代码
}

Điều kiện chu kỳ là true, lặp đi lặp lại thực hiện mã trong {}. Điều kiện chu kỳ là false, thoát khỏi chu kỳ.

Điều kiện chi nhánh

if (判断条件){
    // 执行代码
} else {
    // 执行代码
}

Một cách đơn giản, bản dịch là nếu ((true) { thực hiện mã này} thì nó { thực hiện mã này}

Đặt giá trị

Một=Số là một giá trị, ví dụ.

name = “张三”;

Một trong những điều quan trọng nhất là đặt tên của bạn vào tên của bạn, nó dễ dàng bị nhầm lẫn với sự so sánh. Ví dụ như so sánh==Hai con số bằng nhau. Ví dụ“张三”==“李四”Vì vậy, chúng ta có thể thấy rõ rằng Zhang Tsu không phải là Li.“张三”==“李四”Những người đàn ông đang làm việc tại một công ty.

API liên quan

Trước khi trình bày chính sách, chúng tôi đã thảo luận về API và các hàm xuất mẫu được sử dụng trong chính sách, có tài liệu API chi tiết và hướng dẫn mã nguồn mẫu trên Inventor Quantification.

  • Chức năng $.GetAccount: Chức năng xuất mẫu để lấy thông tin tài khoản của sàn giao dịch
  • Chức năng Log: API để xuất thông tin vào nhật ký, hiển thị các giá trị, vv
  • Chức năng $.Cross: Chức năng xuất mẫu để phát hiện tình huống giao nhau của chỉ số đường thẳng
  • Chức năng $.Buy: Chức năng xuất mẫu, dùng để mua
  • Chức năng $.Sell: Chức năng xuất mẫu để bán các hoạt động
  • Chức năng LogProfit: API, dùng để xuất lợi nhuận, hàm có thể thêm thông tin khác từ tham số thứ hai
  • Chức năng Sleep: API, cho chương trình tạm dừng một chút, đơn vị tham số là millisecond.

Mã chiến lược cũng sử dụng các hàm thư viện của JavaScript, phương thức đối tượng.

  • Math.abs ((): Trả về giá trị tuyệt đối của các tham số
  • Chức năng toFixed (()) của đối tượng Number: theo tham số, giữ số nhỏ vào bốn và năm. Lưu ý, hàm trả về cho một chuỗi
  • parseFloat toàn cầu: trả về số điểm nổi của các tham số chuỗi.

Các thông tin liên quan đến JavaScript trên có thể được tìm thấy tại: JavaScript Number Objecthttp://www.w3school.com.cn/jsref/jsref_obj_number.aspHọc thêm

Hình chiếu quy trình, vẽ bằng tay, vẽ mà không cần công cụ, nghiệp dư.

img

Bước từng bước xây dựng chiến lược của chúng tôi

Tất cả các bước vào của các chương trình chiến lược đều làmain()Chế độ này được sử dụng để tạo ra các hàm, tức là các chính sách bắt đầu chạy từ hàm main.

img

img

img

img

img

Đĩa thực

Sau đó, bạn có thể thực hiện một chiến lược đơn giản là 30 dòng! Chiến lược Running! bắt đầu chạy, mua hoạt động.

img

Cảm ơn Inventor Quantify đã cung cấp mã đơn giản như vậy, có rất nhiều chiến lược nguồn mở để học và nâng cao với nhiều người giỏi về định lượng.

官方QQ群定期更新学习资源,为量化学习者铺平道路,登堂入室。

Hỗ trợ dạy bằng video

http://v.youku.com/v_show/id_XMTUyNDY1NjQ2NA==.html

Tài liệu tham khảo


Có liên quan

Thêm nữa

FMZ_JHChức năng $.GetAccount trong API đã được cập nhật thành exchange.GetAccount (()) chưa?

wojiushizhemedeshuaiqidemeinanziTôi hiểu mã nhưng không biết chiến lược này thực hiện được những gì.

:)Xin cảm ơn Little Dream, bài viết của bạn rất hay.

- Không.Bài hướng dẫn của chủ nhà rất hay, cảm ơn!

bincoinCảm ơn chủ nhà, tôi sẽ học tốt.

Trong khi đó, các nhà đầu tư khác cũng có thể tham gia vào các hoạt động này.Đơn giản là cô ấy đã chết từ lâu rồi.

Giấc mơ nhỏ$.GetAccount là hàm xuất của mẫu FMZ (thông mẫu là mã tái sử dụng, xem mô tả của mẫu trên tài liệu API). $.GetAccount là hàm xuất của mẫu: https://www.fmz.com/strategy/10989. Các chiến lược trên chỉ là một phần của mã, không có cài đặt tham số chiến lược, và các chiến lược hoàn chỉnh có thể được tìm kiếm trong quảng trường chiến lược.

wojiushizhemedeshuaiqidemeinanziVà tôi đã làm được điều đó.

Giấc mơ nhỏĐây là hai đường ngang, đường dây nhanh đi qua đường dây chậm. Thông thường là tín hiệu mua, có khả năng tăng cao hơn. Đường dây nhanh đi qua đường dây chậm thường là tín hiệu bán, có khả năng giảm cao hơn.

Giấc mơ nhỏXin cảm ơn vì đã hỗ trợ, chúng tôi sẽ làm thêm nhiều hơn nữa sau này.

Giấc mơ nhỏHãy tiếp tục tiếp tục! Cảm ơn sự hỗ trợ của bạn.