Sistem perdagangan Ichimoku Keltner terintegrasi berdasarkan strategi rata-rata bergerak


Tanggal Pembuatan: 2023-12-20 13:40:08 Akhirnya memodifikasi: 2023-12-20 13:40:08
menyalin: 0 Jumlah klik: 745
1
fokus pada
1621
Pengikut

Sistem perdagangan Ichimoku Keltner terintegrasi berdasarkan strategi rata-rata bergerak

Ringkasan

Strategi ini mengintegrasikan strategi garis rata, diagram awan Ichimoku, dan indikator teknis Keltner channel, yang memungkinkan pelacakan tren dan perdagangan terobosan yang berlaku untuk perdagangan algoritma frekuensi tinggi.

Prinsip Strategi

  1. Menggunakan saluran Keltner untuk menentukan apakah harga saham melebihi saluran naik dan turun sebagai sinyal untuk membangun posisi
  2. Ichimoku cloud map digunakan untuk menentukan arah tren, bekerja sama dengan Keltner channel
  3. Strategi garis rata mengirimkan sinyal posisi kosong

Analisis Keunggulan

  1. Integrasi berbagai indikator teknis, penilaian komprehensif, dan peningkatan keakuratan keputusan
  2. Keltner Channel menilai ada overbought dan oversold, menghindari posisi yang mengejar kenaikan dan penurunan
  3. Ichimoku Cloud Diagram: Mengetahui Tren Besar dan Menghindari Perdagangan Berlawanan
  4. Strategi rata-rata untuk memfilter getaran dan mencegah oversensitivitas

Analisis risiko

  1. Integrasi multi-indikator, pengaturan parameter yang lebih rumit, perlu pengujian yang cermat
  2. Garis konversi cloud dan garis acuan tidak selalu merupakan sinyal perdagangan yang dapat diandalkan
  3. Saluran Keltner memerlukan penyesuaian parameter untuk menyesuaikan dengan karakteristik saham yang berbeda

Arah optimasi

  1. Evaluasi kinerja server, mengurangi rata-rata siklus, meningkatkan frekuensi transaksi
  2. Uji sensitivitas berbagai saham terhadap parameter, set parameter adaptasi
  3. Meningkatkan strategi stop loss dan mengurangi kerugian tunggal

Meringkaskan

Strategi ini mengintegrasikan beberapa indikator teknis dari grafik awan Ichimoku, saluran Keltner, dan strategi linier, untuk memungkinkan pelacakan tren dan perdagangan terobosan dengan efisiensi tinggi. Pertimbangan strategi ini lebih komprehensif dan akurat dibandingkan dengan indikator tunggal, dan menghindari beberapa sinyal palsu.

Kode Sumber Strategi
/*backtest
start: 2023-11-19 00:00:00
end: 2023-12-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// Author: Persio Flexa
// Description: Ichimoku Clouds with Keltner Channel, perfect for margin trading 
strategy("Ichimoku Keltner Strategy", overlay=true) 

// -- Keltner ------------------------------------------------------------------
source = close

useTrueRange = input(true)
length = input(18, minval=1) 
mult = input(1.8)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

plot(ma, title="BASE", color=orange,transp=85)
plot(upper, title="UPPER", color=red)
plot(lower, title="LOWER", color=green)

//crossUpper = crossover(source, upper)
//crossLower = crossunder(source, lower)
crossUpper = source > upper
crossLower = source  < lower

bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])

sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

// ---------------------------------------------------------------------


// -- Ichimoku

ATRlength = input(200, minval=1)
ATRMult = input(2.272, minval=1)

ATR = rma(tr(true), ATRlength)

len = input(26, minval=1, title="EMA Length")
src = input(close, title="Source")
out = ema(src, len)

emaup = out+(ATR*ATRMult)
emadw = out-(ATR*ATRMult)

conversionPeriods = input(15, minval=1),
basePeriods = input(35, minval=1)
laggingSpan2Periods = input(52, minval=1),
displacement = input(26, minval=1)

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

p1 = plot(leadLine1, offset = displacement, color=green,transp=85, title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red,transp=85, title="Lead 2")
fill(p1, p2,silver) 

longCond    = crossover(conversionLine, baseLine)
shortCond   = crossunder(conversionLine, baseLine)
// -------------------------------------------------------------------------

if (crossUpper and (conversionLine > baseLine))
    strategy.entry("long", strategy.long, stop=bprice, comment="LONG")

if (crossLower and (conversionLine < baseLine))
    strategy.entry("short", strategy.short, stop=sprice, comment="SHORT")
    
strategy.close("long", when = (shortCond and source < lower))
strategy.close("short", when = (longCond and source > upper))