Algoritma Silang Emas Rata-rata Bergerak Berganda

Penulis:ChaoZhang, Tarikh: 2024-01-23 11:18:57
Tag:

img

Ringkasan

Logika Strategi

Analisis Kelebihan

Analisis Risiko

Selain itu, tetapan stop loss 1.2 kali harga kemasukan mungkin terlalu konservatif, tidak dapat bertahan melalui keseluruhan trend. Jika trend menaik berterusan, keluar stop loss yang dicetuskan boleh keluar lebih awal dan kehilangan keuntungan tambahan. Parameter yang berbeza harus diuji untuk mencari kedudukan stop loss yang lebih sesuai.

Arahan Peningkatan

Terdapat ruang untuk penambahbaikan lanjut untuk strategi ini. Pertama, parameter yang berbeza boleh diuji untuk mengoptimumkan parameter tempoh purata bergerak untuk kualiti isyarat terbaik. Kedua, penunjuk turun naik boleh dimasukkan untuk mengelakkan menghasilkan isyarat palsu semasa tempoh penyatuan harga. Ketiga, kaedah pembelajaran mesin boleh digunakan untuk mengoptimumkan kedudukan stop loss secara automatik. Keempat, maklumat dari aset yang berkaitan dapat digunakan untuk menubuhkan sistem perdagangan portfolio untuk meningkatkan kebolehpercayaan isyarat.

Kesimpulan


/*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)

Lebih lanjut