[blackcat] L1 MartinGale chiến lược đầu da

Tác giả:Zer3192Ngày: 2023-10-09 07:06:32
Tags:

Chiến lược MartinGale (MartinGale) là một chiến lược quản lý tiền tệ phổ biến trong giao dịch. Nó thường được sử dụng để tìm kiếm sự phục hồi của nhà giao dịch bằng cách tăng kích thước vị trí sau mỗi lần mất mát. Vì vậy, MartinGale không chỉ là một chiến lược cụ thể mà là một danh từ chung cho một loại chiến lược đóng góp, đóng góp.

Trong chiến lược Martin Gale, các nhà giao dịch sẽ tăng gấp đôi kích thước vị trí sau mỗi giao dịch thua lỗ. Mục đích của việc này là để hy vọng cuối cùng sẽ có một giao dịch có lợi để phục hồi lỗ trước đó và tạo ra lợi nhuận.

Ý tưởng đằng sau chiến lược của Martin Gale là sử dụng quy luật trung bình. Bằng cách tăng kích thước vị trí sau mỗi lỗ, chiến lược này giả định rằng cuối cùng sẽ có một giao dịch có lợi, không chỉ bù đắp cho lỗ trước mà còn tạo ra lợi nhuận. Điều này có thể đặc biệt hấp dẫn đối với các nhà giao dịch tìm cách nhanh chóng phục hồi khỏi lỗ.

Tuy nhiên, cần lưu ý rằng chiến lược MartinGale có rủi ro đáng kể. Chiến lược này có thể dẫn đến tổn thất lớn nếu các nhà giao dịch trải qua giai đoạn thua lỗ liên tục hoặc thiếu đủ vốn. Chiến lược này dựa trên giả định rằng giao dịch có lợi sẽ xảy ra trong một khoảng thời gian nhất định, điều này là nguy hiểm vì không đảm bảo sẽ có giao dịch có lợi trong một khoảng thời gian nhất định. Các nhà giao dịch xem xét triển khai chiến lược MartinGale nên đánh giá cẩn thận khả năng chịu rủi ro của mình và hiểu đầy đủ về những nhược điểm tiềm ẩn. Việc xây dựng một kế hoạch quản lý rủi ro đáng tin cậy để giảm thiểu tổn thất tiềm ẩn là rất quan trọng. Ngoài ra, các nhà giao dịch nên nhận thức rằng chiến lược này có thể không áp dụng cho tất cả các tình huống thị trường và có thể cần phải điều chỉnh theo biến động của thị trường.

Nói tóm lại, chiến lược MartinGale là một chiến lược quản lý tiền bạc liên quan đến việc tăng kích thước vị trí sau mỗi lần mất mát để cố gắng phục hồi từ giai đoạn mất mát. Mặc dù nó có thể cung cấp tiềm năng phục hồi nhanh chóng, nhưng cũng có những rủi ro lớn mà các nhà giao dịch nên xem xét cẩn thận trước khi thực hiện phương pháp giao dịch này.

Mặc dù không đồng ý với quan điểm giao dịch này, nhưng một số người đã nói riêng rằng họ cũng đã thảo luận về chủ đề này và đã viết một khuôn khổ 38 dòng đơn giản, làm cho dòng ngắn của Martin Gale.

Chiến lược nén mũ MartinGale là một chiến lược giao dịch tạo ra lợi nhuận thông qua giao dịch thường xuyên. Nó sử dụng đường chéo của đường trung bình di chuyển để tạo ra tín hiệu vào và ra. Chiến lược này được thực hiện bằng ngôn ngữ kịch bản Pine của TradingView.

Chiến lược này đầu tiên xác định các biến đầu vào, như mức dừng và dừng lỗ, và chế độ giao dịch ("nhiều đầu, không đầu hoặc hai chiều"). Sau đó, nó đặt ra một quy tắc chỉ cho phép nhập vào khi chế độ giao dịch được đặt là nhiều đầu đầu.

Logic chiến lược sử dụng các tín hiệu chéo và tín hiệu chéo của một đường trung bình di chuyển đơn giản (SMA); nó tính toán SMA ngắn hạn (SMA3) và SMA dài hạn (SMA8), và vẽ chúng trên biểu đồ. Các biến crossoverSignal và crossunderSignal được sử dụng để theo dõi sự xuất hiện của các sự kiện chéo và chéo, trong khi các biến crossoverState và crossunderState xác định trạng thái của các điều kiện chéo và chéo.

Chiến lược được thực hiện dựa trên kích thước cổ phiếu hiện tại. Nếu kích thước cổ phiếu là không (không có cổ phiếu), chiến lược sẽ kiểm tra các sự kiện chéo và chéo. Nếu một sự kiện chéo xảy ra và mô hình giao dịch cho phép nhiều đầu vào, thì sẽ có nhiều đầu vào. Giá vào, giá dừng, giá dừng và giá dừng được tính dựa trên giá đóng hiện tại và giá SMA8. Tương tự, nếu một sự kiện chéo xảy ra và mô hình giao dịch cho phép đầu vào, thì sẽ có một đầu vào và tính giá tương ứng. Nếu có nhiều cổ phiếu và giá đóng cửa hiện tại đạt giá dừng hoặc giá dừng lỗ, và một sự kiện chéo xảy ra, thì nhiều cổ phiếu sẽ được dỡ bỏ. Giá vào, giá dừng, giá dừng và giá dừng sẽ được đặt lại bằng không.

Tương tự như vậy, nếu có một nắm giữ trống và giá đóng cửa hiện tại đạt đến giá dừng hoặc giá dừng, và một sự kiện giao thoa xảy ra, thì nắm giữ trống sẽ được cân bằng và thay đổi biến giá.

Chiến lược này cũng sử dụng hàm Plotshape để vẽ các điểm vào và ra trên biểu đồ. Nó cho thấy một tam giác ở trên chỉ thị là mua vào, một tam giác ở dưới chỉ thị là mua vào, một tam giác ở dưới chỉ thị là bán vào và một tam giác ở trên chỉ thị là bán ra.

Nhìn chung, chiến lược cạo râu MartinGale nhằm mục đích nắm bắt lợi nhuận nhỏ bằng cách tận dụng các đường chéo của đường trung bình di chuyển ngắn hạn. Nó quản lý rủi ro bằng cách dừng giá và mức dừng lỗ và cho phép các mô hình giao dịch khác nhau để thích nghi với các điều kiện thị trường khác nhau.


//@version=5
 strategy('[blackcat] L1 MartinGale Scalping Strategy', overlay=true, pyramiding = 5)
 
 // Define input variables
// martingaleMultiplier = input(2, title="加倍倍数")
 takeProfit = input(1.03, title='Take Profit')
 stopLoss = input(0.95, title='Stop Loss')
 inputTradingMode = input.string(defval='Long', options=['Long', 'Short', 'BiDir'], title='Trading Mode')
 
 //The purpose of this rule is to forbid short entries, only long etries will be placed. The rule affects the following function: 'entry'.
strategy.risk.allow_entry_in(inputTradingMode == 'Long' ? strategy.direction.long : inputTradingMode == 'Short' ? strategy.direction.short : strategy.direction.all)

// Define strategy logic 
entryPrice = 0.0
stopPrice = 0.0
takeProfitPrice = 0.0
stopLossPrice = 0.0

// Define SMA crossover and crossunder signals
sma3 = ta.sma(close, 3)
sma8 = ta.sma(close, 8)
plot(sma3, color=color.yellow)
plot(sma8, color=color.fuchsia)
crossoverSignal = ta.crossover(sma3, sma8)
crossunderSignal = ta.crossunder(sma3, sma8)
crossoverState = sma3 > sma8
crossunderState = sma3 < sma8

if strategy.position_size == 0
    if crossoverState
       strategy.entry('Buy',strategy.long)
       entryPrice := close
       stopPrice := close - stopLoss * sma8[1]
       takeProfitPrice := close + takeProfit * sma8[1]
       stopLossPrice := stopPrice
       stopLossPrice
    if crossunderState
        strategy.entry('Sell', strategy.short)
        entryPrice := close
        stopPrice := close + stopLoss *  sma8[1]
        takeProfitPrice := close - takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

if strategy.position_size > 0
    if (close > takeProfitPrice or close < stopLossPrice) and crossunderState
        strategy.close('Buy')
        entryPrice := 0.0
        stopPrice := 0.0
        takeProfitPrice := 0.0
        stopLossPrice := 0.0
        stopLossPrice
    else
        strategy.entry('Buy', strategy.long)
        entryPrice := close
        stopPrice := close - stopLoss *  sma8[1]
        takeProfitPrice := close + takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

if strategy.position_size < 0
    if (close > takeProfitPrice or close < stopLossPrice) and crossoverState
        strategy.close('Sell')
        entryPrice := 0.0
        stopPrice := 0.0
        takeProfitPrice := 0.0
        stopLossPrice := 0.0
        stopLossPrice
    else
        strategy.entry('Sell', strategy.short)
        entryPrice := close
        stopPrice := close + stopLoss *  sma8[1]
        takeProfitPrice := close - takeProfit *  sma8[1]
        stopLossPrice := stopPrice
        stopLossPrice

// Plot entry and exit points
plotshape(strategy.position_size > 0 and crossoverSignal, 'Buy Entry', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)
plotshape(strategy.position_size > 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Buy Exit', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small)
plotshape(strategy.position_size < 0 and crossunderSignal, 'Sell Entry', shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.small)
plotshape(strategy.position_size < 0 and (close >= takeProfitPrice or close <= stopLossPrice), 'Sell Exit', shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.small)

Thêm nữa