GetOption - lấy giá trị của tùy chọn trong cài đặt phân tích tự động
SYNTAX
GetOption(''trường')
TRẢ VỀ
SỐ
CHỨC NĂNG
Lấy giá trị của các tùy chọn khác nhau trong cài đặt phân tích tự động.
trường - là một chuỗi xác định tùy chọn để đọc. Có các tùy chọn sau đây:
- "NoDefaultColumns" - nếu được đặt thành True - khám phá không có cột Ticker và Date/Time mặc định
- "InitialEquity"
- "AllowSameBarExit"
- "ActivateStopsImmediately"
- "AllowPositionShrinking"
- "FuturesMode"
- "InterestRate"
- "ApplyTo" - trả về cài đặt "Áp dụng cho" trong phân tích 0 - tất cả các biểu đồ, 1 - biểu đồ hiện tại, 2 - bộ lọc
- "FilterIncludeIndex", "FilterIncludeFavorite", "FilterIncludeMarket", "FilterIncludeGroup", "FilterIncludeSector", "FilterIncludeIndustry", "FilterIncludeWatchlist" - trả về cài đặt bộ lọc "Bao gồm" -1 - có nghĩa là KHÔNG được chọn (không được bao gồm), >= 0 chỉ mục đã bao gồm
- "FilterExcludeIndex", "FilterExcludeFavorite", "FilterExcludeMarket", "FilterExcludeGroup", "FilterExcludeSector", "FilterExcludeIndustry", "FilterExcludeWatchlist" - trả về cài đặt bộ lọc "Loại trừ"
- -1 - có nghĩa là KHÔNG được chọn (không được loại trừ), >= 0 chỉ mục đã loại trừ "BuyDelay", "SellDelay", "ShortDelay", "CoverDelay" (mới trong phiên bản 5.90) - lấy giá trị trễ giao dịch
- "MaxOpenPositions" - số lượng tối đa vị trí mở cùng một lúc (giao dịch) trong kiểm tra đa cổ phiếu/tối ưu hóa
- "WorstRankHeld" - chỉ số xếp hạng tồi nhất của biểu đồ được giữ trong chế độ giao dịch tuần hoàn (xem EnableRotationalTrading để biết thêm chi tiết)
- "MinShares" - số lượng tối thiểu cổ phiếu yêu cầu để mở vị trí trong bộ kiểm tra/tối ưu hóa. Nếu bạn không có đủ tiền để mua số cổ phiếu đó, giao dịch SẼ KHÔNG được nhập
- "MinPosValue" - (4.70.3 và cao hơn) số tiền tối thiểu yêu cầu để mở vị trí trong bộ kiểm tra/tối ưu hóa. Nếu bạn không có đủ tiền giao dịch, SẼ KHÔNG được nhập
- "PriceBoundChecking" - nếu được đặt thành False - vô hiệu hóa việc kiểm tra và điều chỉnh các mảng buyprice/sellprice/coverprice/shortprice theo phạm vi Giá cao - Giá thấp hiện tại của biểu đồ.
CommissionMode -- 0 - sử dụng bảng hoa hồng của quản lý danh mục
- 1 - phần trăm giao dịch
- 2 - đô la mỗi giao dịch
- 3 - đô la mỗi cổ phiếu/hợp đồng
- CommissionAmount - số tiền hoa hồng theo các chế độ 1..3
- AccountMargin (trong các phiên bản cũ được gọi là 'MarginRequirement') - yêu cầu ký quỹ tài khoản (như trong cài đặt), 100 = không yêu cầu ký quỹ
- ReverseSignalForcesExit - tín hiệu vào ngược đòi hỏi thoát khỏi giao dịch hiện tại (mặc định = Đúng)
- UsePrevBarEquityForPosSizing - Ảnh hưởng đến cách thức quy mô vị trí dựa trên tỷ lệ phần trăm vốn chủ sở hữu hiện tại.
- False (giá trị mặc định) có nghĩa là: sử dụng vốn chủ sở hữu hiện tại (trong phiên giao dịch trong ngày) để thực hiện việc quy mô vị trí,
- True có nghĩa là: sử dụng vốn chủ sở hữu đóng phiên trước để thực hiện việc quy mô vị trí
- PortfolioReportMode - thiết lập chế độ báo cáo bộ kiểm tra lại:
- 0 - danh sách giao dịch
- 1 - nhật ký chi tiết
- 2 - tóm tắt
- 3 - không có đầu ra (chỉ tuỳ chỉnh)
- UseCustomBacktestProc - True/False - cho phép bật/tắt quy trình kiểm tra lại tùy chỉnh
- EveryBarNullCheck - cho phép bật kiểm tra Null trong các phép toán số học trên mỗi thanh trong mảng (mặc định là Tắt - tức là AmiBroker kiểm tra null xuất hiện ở đầu mảng và cuối mảng và khi phát hiện giá trị không phải null, nó giả sử không còn lỗ (null) trong giữa). Bật "EveryBarNullCheck" thành True cho phép mở rộng kiểm tra này cho từng thanh trên biểu đồ, đây là cách hoạt động của phiên bản 4.74.x và các phiên bản trước đó.
- Tuy nhiên, lưu ý rằng bật nó sẽ tạo ra hình phạt hiệu
- suất lớn (các phép toán số học được thực hiện chậm hơn gấp đôi khi tùy chọn này BẬT, vì vậy không sử dụng nó trừ khi bạn thực sự cần).
- HoldMinBars - Số lượng - nếu được đặt thành giá trị > 0 - nó vô hiệu hóa thoát khỏi số lượng thanh người dùng chỉ định ngay cả khi tạo ra tín hiệu/dừng trong giai đoạn đó
- EarlyExitBars - Số lượng - nếu được đặt thành giá trị > 0 - gây ra phí thoát sớm đặc biệt nếu giao dịch được thoát trong khoảng thời gian này
- EarlyExitFee - xác định giá trị phí thoát sớm (% phần trăm)
- HoldMinDays - Số lượng - nếu được đặt thành giá trị > 0 - nó vô hiệu hóa thoát khỏi số lượng NGÀY LỊCH (không phải thanh) người dùng chỉ định ngay cả khi tạo ra tín hiệu/dừng trong giai đoạn đó
- EarlyExitDays - Số lượng - nếu được đặt thành giá trị > 0 - gây ra phí thoát sớm đặc biệt nếu giao dịch được thoát trong khoảng thời gian được chỉ định theo ngày lịch (không phải thanh).
- DisableRuinStop - nếu được đặt thành TRUE, dừng tự động sẽ bị vô hiệu hóa
- Generate report - cho phép vô hiệu hóa/ép buộc tạo báo cáo kiểm tra lại. Giá trị cho phép: 0, 1 hoặc 2
- Mặc định, báo cáo kiểm tra lại chỉ được tạo cho kiểm tra lại danh mục và cho kiểm tra lại cá nhân nếu báo cáo cá nhân được bật trong cài đặt. Báo cáo bị vô hiệu hóa cho việc tối ưu hóa.
- Bây giờ với hàm SetOption(), bạn có thể vô hiệu hóa việc tạo báo cáo kiểm tra lại hoặc kích hoạt việc tạo báo cáo trong các bước tối ưu hóa cụ thể, tất cả từ cấp độ mã.
- SetOption("GenerateReport", 0 ); // vô hiệu hóa việc tạo báo cáo
- SetOption("GenerateReport", 1 ); // bắt buộc tạo báo cáo đầy đủ
- SetOption("GenerateReport", 2 ); // chỉ tạo báo cáo một dòng (trong tệp results.rlst) có thể xem như một dòng duy nhất trong Trình duyệt Báo cáo
- SeparateLongShortRank - True/False
Khi kích hoạt tính năng phân biệt xếp hạng mua/bán, bộ kiểm tra lại giữ hai danh sách tín hiệu "đứng đầu" riêng biệt, một cho tín hiệu mua và một cho tín hiệu bán. Điều này đảm bảo các ứng viên mua và bán được độc lập ngay cả khi điểm vị trí không đối xứng (ví dụ khi các ứng viên mua có điểm số dương rất cao trong khi các ứng viên bán chỉ có điểm số âm phân số). Điều đó khác biệt so với chế độ mặc định, trong đó chỉ giá trị tuyệt đối của điểm vị trí quan trọng, do đó một bên (mua/bán) có thể hoàn toàn thống trị xếp hạng nếu giá trị điểm không đối xứng. - Khi SeparateLongShortRank được kích hoạt, trong giai đoạn thứ hai của bộ kiểm tra lại, hai danh sách xếp hạng riêng biệt được xen kẽ để tạo thành danh sách tín hiệu cuối cùng bằng cách lấy ưu tiên hàng đầu mua, sau đó là ưu tiên hàng đầu bán, sau đó là ưu tiên hàng thứ 2 mua, sau đó là ưu tiên hàng thứ 2 bán, và tiếp tục như vậy (miễn là tín hiệu tồn tại trong cả danh sách mua và bán, nếu không còn tín hiệu nào loại đó, thì các tín hiệu còn lại từ danh sách mua hoặc bán sẽ được thêm vào).
Ví dụ: Tín hiệu mua (điểm số): ESRX=Mua(60.93), GILD=Bán(-47.56), CELG=Mua(57.68), MRVL=Bán(-10.75), ADBE=Mua(34.75), VRTX=Mua(15.55), SIRI=Mua(2.79).
Như bạn có thể thấy, tín hiệu bán được xen kẽ giữa các tín hiệu mua ngay cả khi giá trị tuyệt đối của chúng nhỏ hơn so với điểm số tương ứng của các tín hiệu mua. Cũng chỉ có 2 tín hiệu bán cho thanh cụ thể đó, vì vậy danh sách phần còn lại hiển thị các tín hiệu mua theo thứ tự của điểm vị trí. Mặc dù tính năng này có thể được sử dụng độc lập, nó được thiết kế để được sử dụng kết hợp với các tùy chọn MaxOpenLong và MaxOpenShort - MaxOpenLong - giới hạn số lượng vị thế MUA có thể mở cùng một lúc.
- MaxOpenShort - giới hạn số lượng vị thế BÁN có thể mở cùng một lúc.
- Giá trị ZERO (mặc định) có nghĩa là KHÔNG GIỚI HẠN. Nếu cả MaxOpenLong và MaxOpenShort được đặt thành không (hoặc không được định nghĩa), bộ kiểm tra lại hoạt động theo cách cũ - chỉ có giới hạn toàn cục hoạt động (MaxOpenPositions) bất kể loại giao dịch.
- Lưu ý rằng các giới hạn này độc lập với giới hạn toàn cục (MaxOpenPositions). Điều này có nghĩa là MaxOpenLong + MaxOpenShort có thể bằng hoặc không bằng MaxOpenPositions.
- Nếu MaxOpenLong + MaxOpenShort lớn hơn MaxOpenPositions, tổng số lượng vị thế cho phép sẽ không vượt quá MaxOpenPositions và các giới hạn riêng biệt về mua/bán cũng áp dụng. Ví dụ, nếu hệ thống của bạn MaxOpenLong được đặt thành 7 và MaxOpenShort được đặt thành 7 và MaxOpenPositions được đặt thành 10 và hệ thống của bạn tạo ra 20 tín hiệu: 9 mua (xếp hạng cao nhất) và 11 bán, nó sẽ mở 7 vị thế mua và 3 vị thế bán.
- Nếu MaxOpenLong + MaxOpenShort nhỏ hơn MaxOpenPositions (nhưng lớn hơn không), hệ thống sẽ không thể mở nhiều hơn (MaxOpenLong + MaxOpenShort).
- Vui lòng lưu ý rằng MaxOpenLong và MaxOpenShort chỉ giới hạn số lượng vị thế mở của loại tương ứng (mua/bán). Chúng KHÔNG ảnh hưởng đến cách xếp hạng được thực hiện. Nghĩa là mặc định, xếp hạng được thực hiện bằng cách sử dụng giá trị TUYỆT ĐỐI của điểm vị trí.
- Nếu điểm số vị trí của bạn KHÔNG đối xứng, điều này có thể có nghĩa là bạn không nhận được các tín hiệu hàng đầu mong muốn từ một bên. Do đó, để tận dụng hoàn toàn MaxOpenLong và MaxOpenShort trong các hệ thống mua/bán cân bằng quay vòng ("trung lập thị trường"), việc thực hiện xếp hạng RIÊNG BIỆT cho tín hiệu mua và tín hiệu bán là cần thiết.
- Để kích hoạt xếp hạng riêng cho mua/bán, sử dụng: SetOption("SeparateLongShortRank", True);
- RefreshWhenCompleted - khi đặt thành TRUE, nó sẽ thực hiện View->Refresh All sau khi hoạt động Tự động phân tích (quét/khám phá/kiểm tra lại/tối ưu hóa) hoàn thành.
- RequireDeclarations - khi đặt thành TRUE, engine AFL sẽ luôn yêu cầu khai báo biến (sử dụng local/global) trên cơ sở từng công thức
- ExtraColumnsLocation - cho phép người dùng thay đổi vị trí của các cột tùy chỉnh được thêm trong quá trình kiểm tra lại/tối ưu hóa.
Các cột "extra" có nghĩa là:- a) bất kỳ số liệu tùy chỉnh nào được thêm bằng cách sử dụng bộ kiểm tra lại tùy chỉnh
- b) bất kỳ tham số tối ưu hóa nào được xác định bằng cách sử dụng chức năng Optimize()
- Nếu cả số liệu tùy chỉnh và tham số tối ưu hóa đều có mặt, thì số liệu tùy chỉnh xuất hiện trước, sau đó là các tham số tối ưu hóa.
- Chức năng này được cung cấp để cho phép người dùng thay đổi vị trí mặc định "ở cuối" của các cột/tùy chọn tùy chỉnh.
- Ví dụ:
- SetOption("ExtraColumnsLocation", 1);
- sẽ làm cho số liệu tùy chỉnh và các tham số tùy chọn được thêm liên tiếp bắt đầu từ cột 1 (so với cột cuối mặc định)
- Lưu ý rằng thiết lập này thay đổi thứ tự "hiển thị" của các cột, không phải thứ tự trong bộ nhớ hoặc thứ tự xuất dữ liệu, vì vậy tệp dữ liệu xuất hoặc định dạng sao chép/dán không thay đổi.
- SettlementDelay - tùy chọn này mô tả số ngày (không phải thanh giao dịch) mà tiền thu từ việc bán cổ phiếu được thanh lý và sẵn sàng cho việc mở vị thế mới.
- SetOption("SettlementDelay", 3); // điều này sẽ làm cho tiền thu từ việc bán chỉ sẵn sàng để giao dịch vào ngày thứ 3 sau khi bán
- Để theo dõi chi tiết, báo cáo "Nhật ký chi tiết" hiện tại hiển thị số dư có sẵn và chưa thanh lý cho T+1, T+2 và T+3.
- Ví dụ: nếu hôm nay là thứ 2, nhật ký chi tiết sẽ cho bạn biết số dư có sẵn và chưa thanh lý vào thứ 4, thứ 5 và thứ 6.
- Bộ kiểm tra lại sau khi hoàn thành cũng báo cáo số dư có sẵn và chưa thanh lý vào ngày tùy chọn.
- StaticVarAutoSave - cho phép tự động lưu trữ định kỳ các biến tĩnh lưu trữ (ngoài việc lưu trữ khi thoát, luôn được thực hiện).
Khoảng thời gian được định nghĩa bằng giây.
Ví dụ:
SetOption("StaticVarAutoSave", 60); // tự động lưu biến tĩnh lưu trữ mỗi 60 giây (1 phút)
Quan trọng là hiểu rằng các biến tĩnh lưu trữ được lưu khi THOÁT tự động, mà không cần sự can thiệp của người dùng, vì vậy nó nên đủ cho hầu hết các trường hợp. Nếu vì một lý do nào đó bạn muốn tự động lưu khi AmiBroker đang chạy, bạn có thể sử dụng chức năng này. Lưu ý rằng việc ghi nhiều biến tĩnh vào tệp trên đĩa mất thời gian và chặn quyền truy cập vào tất cả các biến tĩnh, vì vậy bạn NÊN tránh chỉ định khoảng thời gian lưu trữ tự động quá nhỏ. Việc lưu trữ mỗi giây là ý tưởng tồi - nó sẽ gây quá tải. Lưu trữ mỗi 60 giây nên là tốt. Gọi chức năng với khoảng thời gian đặt thành 0 sẽ tắt tính năng tự động lưu trữ.
SetOption("StaticVarAutoSave", 0);
- MCEnable - điều khiển mô phỏng Monte Carlo: 0 - tắt, 1 - bật trong kiểm tra lại, 2 - bật trong kiểm tra lại và tối ưu hóa
- MCRuns - số lần chạy mô phỏng Monte Carlo (realizations) mặc định là 1000
- MCPosSizeMethod - phương pháp kích thước vị thế Monte Carlo: 0 - không thay đổi, 1 - kích thước cố định, 2 - số tiền cố định, 3 - phần trăm vốn
- MCPosSizeShares - số lượng cổ phiếu mỗi giao dịch trong mô phỏng MC
- MCPosSizeValue - giá trị đô la mỗi giao dịch trong mô phỏng MC
- MCPosSizePctEquity - phần trăm vốn hiện tại mỗi giao dịch trong mô phỏng MC
- MCChartEquityCurves - true/false (1/0) - cho phép biểu đồ vốn Monte Carlo
- MCStrawBroomLines - xác định số lượng đường vốn được vẽ trong biểu đồ cào cào Monte Carlo
VÍ DỤ
InitialEquity = GetOption("InitialEquity");