Chiến lược điểm nhập ngẫu nhiên

Tác giả:ChaoZhang, Ngày: 2023-09-12 14:06:18
Tags:

Chiến lược giao dịch tại điểm nhập cảnh ngẫu nhiên

Chiến lược giao dịch Random Entry Point sử dụng số nguyên được tạo ngẫu nhiên để xác định mục nhập cho các giao dịch dài và ngắn.

Các nguyên tắc của chiến lược này là:

  1. Đặt một số nguyên ngẫu nhiên, ví dụ 6.

  2. Mỗi khi một nến mới hình thành, lấy khối lượng hiện tại modulo số nguyên ngẫu nhiên để có được một số ngẫu nhiên giữa 0-5.

  3. Chia 0-5 thành hai nửa, 0-2 cho giao dịch dài, 3-5 cho giao dịch ngắn.

  4. Nếu số ngẫu nhiên nằm trong khoảng 0-2 và không có vị trí hiện tại, đi dài. Nếu nó nằm giữa 3-5 và không có vị trí, đi ngắn.

  5. Thiết lập dừng lỗ và lấy lợi nhuận sau khi tham gia giao dịch, ví dụ: -5% SL, 15% TP. Chờ cho SL / TP kích hoạt.

  6. Lấy vị trí sau khi SL/TP bị tấn công, và chờ tín hiệu ngẫu nhiên tiếp theo.

  7. Lặp lại các bước 1-6 để tiếp tục lấy các vị trí dài / ngắn ngẫu nhiên.

  8. Luật số lớn đảm bảo lợi nhuận về lâu dài, SL kiểm soát rủi ro.

Lợi thế của chiến lược này là sự đơn giản trong thực hiện, không cần dự đoán hướng thị trường, lợi nhuận dài hạn bằng cách theo các tín hiệu ngẫu nhiên. Tuy nhiên, sự ngẫu nhiên cũng giới thiệu một số rủi ro, tổn thất tiềm năng lớn trong ngắn hạn đòi hỏi đủ vốn. Các thông số như SL / TP cũng ảnh hưởng đáng kể đến hiệu suất và cần kiểm tra kỹ lưỡng để tối ưu hóa.

Tóm lại, chiến lược Random Entry Point dựa trên luật số lớn cho lợi nhuận, sử dụng SL / TP để kiểm soát rủi ro, phù hợp với các nhà đầu tư có đủ vốn để sử dụng lâu dài.


/*backtest
start: 2022-09-11 00:00:00
end: 2023-04-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// strategy(title="Random entry points",overlay=true, default_qty_type=strategy.cash, default_qty_value=500, currency="USD", initial_capital = 1000, commission_type=strategy.commission.percent, commission_value=0.07)

i = input(defval = 6, title = 'Random integer', type = input.integer)
stop_loss = input(defval = -5, title = 'Stop loss', type = input.integer)
take_profit = input(defval = 15, title = 'Take profit', type = input.integer)

random = volume % i
trade_area = float(i) / 2

var profit = 0.0
var start_price = 0.0
var in_deal = false

if not in_deal
    profit := 0.0 

if random < trade_area and not in_deal
    in_deal := true
    start_price := close
    strategy.entry("long", true)
   
if in_deal
    profit := (close / start_price -1) * 100
   
if profit < stop_loss or profit > take_profit
    strategy.close("long")
    in_deal := false

Thêm nữa