Tác giả:ChaoZhang, Ngày: 2024-01-23 11:18:57
Tags:

img

Tổng quan

Các thuật toán chuyển động trung bình đôi Golden Cross tạo ra tín hiệu giao dịch bằng cách tính toán chéo giữa các đường trung bình chuyển động nhanh và chậm. Đường nhanh sử dụng một đường trung bình chuyển động theo hàm số nhân 8 ngày và đường chậm sử dụng một đường trung bình chuyển động theo hàm số nhân của giá thấp nhất trong 8 ngày qua. Khi đường nhanh vượt qua trên đường chậm từ dưới, một tín hiệu mua được tạo ra. Khi đường nhanh vượt qua dưới đường chậm từ trên, một tín hiệu bán được tạo ra.

Chiến lược logic

Phân tích lợi thế

Ngoài ra, chiến lược bao gồm một cơ chế dừng lỗ. Khi giá tăng hơn 20%, dừng lỗ sẽ được đặt lên 1,2 lần giá nhập khẩu cho vị trí đó. Điều này khóa hầu hết lợi nhuận và tránh mất mát. Nó cũng đảm bảo lợi nhuận tốt cho chiến lược.

Phân tích rủi ro

Ngoài ra, việc thiết lập stop loss gấp 1,2 lần giá nhập cảnh có thể quá bảo thủ, không thể giữ được toàn bộ xu hướng. Nếu xu hướng tăng tiếp tục, một exit stop loss được kích hoạt có thể thoát sớm và mất thêm lợi nhuận. Các thông số khác nhau nên được thử nghiệm để tìm vị trí stop loss phù hợp hơn.

Hướng dẫn cải thiện

Kết luận


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title = "Estratégia de Cruzamento das Linhas")

// Configuração da Média Móvel
emaPeriod = 8

ema= ema(close, emaPeriod)
ema1= ema(close[1], emaPeriod)
lowestEMA = lowest(ema, 8)

// Calcula a diferença entre o preço e a média móvel
diff = close - ema
diff1 = close[1] - ema1
diffLow = ema - lowestEMA

//Condições
diffZero = diff < 0
diffUnder = diff < diffLow
diffUm = diff > 0
Low0 = diffLow == 0



gain = strategy.position_avg_price*(1+0.2)
// Sinais de entrada
buy_signal = diffUnder and crossover(diff, diff1) and diffZero

sell_signal = diffUm and diffUnder and crossunder(diff, diff1)

// Executa as operações de compra/venda
if buy_signal
    strategy.entry("Buy", strategy.long)
if sell_signal
    strategy.exit("Buy", limit = gain)

// Plota as linhas
plot(0, title="Linha Zero", color=color.gray)
plot(diff, title="Diferença", color=color.blue, linewidth=2)

plot(diffLow, title="Diferença", color=color.red, linewidth=2)

Thêm nữa