Ichimoku Candlestick Breakout Strategi


Tarikh penciptaan: 2023-12-21 10:44:37 Akhirnya diubah suai: 2023-12-21 10:44:37
Salin: 2 Bilangan klik: 721
1
fokus pada
1621
Pengikut

Ichimoku Candlestick Breakout Strategi

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada indikator yang sangat terkenal dalam analisis teknikal pasaran, iaitu indikator Ichimoku Kinko Hyo, yang menggunakan bentuk grafik awan dan hubungan harga dengan awan untuk menentukan arah trend untuk mencari peluang perdagangan.

Prinsip Strategi

Strategi ini menggunakan beberapa komponen indikator Ichimoku Kinko Hyo, termasuk garis peralihan ((Tenkan-Sen), garis rujukan ((Kijun-Sen), garis depan ((Senkou Span A), garis terdepan ((Senkou Span B) dan garis belakang ((Chikou Span)). Beberapa garis ini berkumpul untuk membentuk apa yang dipanggil Awan Ichimoku. Apabila harga menembusi lapisan awan, ia menghasilkan isyarat beli dan jual.

Khususnya, strategi untuk menentukan sama ada harga menembusi awan adalah berdasarkan pada dua garis Senkou Span A dan Senkou Span B. Kawasan di antara kedua-dua garis ini membentuk awan. Isyarat beli dihasilkan apabila harga penutupan menembusi awan di atas; isyarat jual dihasilkan apabila harga penutupan menembusi awan di bawah.

Di samping itu, strategi juga menetapkan harga hentian dan hentian. Menggunakan siminfo.pointvalue dan maklumat kedudukan strategi untuk mengira jumlah titik kerugian, kemudian ditukar kepada harga sebenar.

Analisis kelebihan

Strategi ini mempunyai beberapa kelebihan:

  1. Menggunakan indikator Ichimoku untuk menentukan arah trend, ia boleh menyaring bunyi pasaran dengan berkesan dan mengenal pasti trend garis tengah dan panjang.
  2. Membuat isyarat menerobos awan untuk mengelakkan kerosakan akibat penembusan palsu
  3. Gabungan dengan tetapan stop loss dan stop loss, anda boleh mengehadkan kerugian tunggal dan mengunci keuntungan
  4. Parameter boleh disesuaikan untuk menguji kesan parameter yang berbeza terhadap prestasi strategi
  5. Awan visual dan komponen Ichimoku yang lain membentuk isyarat perdagangan grafik yang intuitif

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Garis tengah dan panjang memegang kedudukan, mungkin akan mengalami kerugian yang lebih besar
  2. Sinyal penembusan mungkin terlewat dan terlepas tempat masuk terbaik
  3. Penembusan palsu boleh menyebabkan isyarat yang salah dan kerugian
  4. Tempoh memegang terlalu lama dan kos derivatif yang tinggi
  5. Harga Stop Loss dan Stop Stop yang ditetapkan mungkin akan ditembusi

Kaedah pencegahan:

  1. Memperolehi jangka masa pemegang saham yang lebih pendek untuk mengurangkan risiko kerugian
  2. Kesan isyarat penembusan dalam kombinasi dengan petunjuk lain
  3. Meningkatkan keberkesanan penghalang kerosakan dan mengelakkan kebocoran
  4. Optimumkan tempoh pegangan dan mengurangkan kos

Arah pengoptimuman

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Uji kombinasi parameter yang berbeza untuk mencari parameter optimum
  2. Penapisan isyarat dalam kombinasi dengan petunjuk lain untuk mengelakkan penembusan palsu
  3. Dinamika penyesuaian paras hentian hentian, trails stop loss
  4. Syarat keluar yang boleh disesuaikan: Isyarat pembalikan awan yang pecah, pemicu harga yang kembali
  5. Menambah mekanisme pengurusan kedudukan

ringkaskan

Strategi Ichimoku Sunrise Breakthrough secara keseluruhannya adalah strategi penembusan yang tipikal menggunakan indikator Ichimoku Kinko Hyo untuk menentukan arah trend garis panjang. Ia mempunyai kelebihan seperti parameter yang boleh disesuaikan, bentuk intuitif, isyarat visual, dan juga terdapat beberapa risiko penembusan palsu, risiko memegang kedudukan dan sebagainya.

Kod sumber strategi
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © moneyofthegame
// Basado en estrategias con el indicador ICHIMOKU KINKO HIYO
// El tiempo es oro colega :)

//@version=5
strategy('Ichimoku Cloud Estrategia Ruptura Nubes SWING TRADER  (By Insert Cheese)', shorttitle='Ichimoku Cloud Estrategia Ruptura Nubes SWING TRADER  (By Insert Cheese)',

         overlay=true,
         initial_capital=500,
         process_orders_on_close=true,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.05,
         currency=currency.NONE)
         




// Inputs: Ichimoku parametros
ts_bars =   input.int(9,  minval=1, title='Tenkan-Sen ',          group='Parámetros Ichimoku')
ks_bars =   input.int(26, minval=1, title='Kijun-Sen ',           group='Parámetros Ichimoku')
ssb_bars =  input.int(52, minval=1, title='Senkou-Span B ',       group='Parámetros Ichimoku')
cs_offset = input.int(26, minval=1, title='Chikou-Span',          group='Parámetros Ichimoku')
ss_offset = input.int(26, minval=1, title='Senkou-Span A',        group='Parámetros Ichimoku')

middle(len) => // LONGITITUD Ichimoku (SenkouB)
    math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Componentes
tenkan = middle (ts_bars)
kijun   = middle (ks_bars)
senkouA = math.avg(tenkan, kijun)
senkouB = middle (ssb_bars)


// Plot Ichimoku Kinko Hyo
plot(tenkan,                                     color=color.rgb(171, 128, 0),                              title="Tenkan-Sen",    display = display.none)
plot(kijun,                                      color=color.rgb(39, 0, 112),                               title="Kijun-Sen",     display = display.none)
plot(close, offset=-cs_offset+1,                 color=color.rgb(224, 200, 251),                            title="Chikou-Span",   display = display.none)
sa=plot(senkouA, offset=ss_offset-1,             color=color.rgb(68, 128, 0),                               title="Senkou-Span A", display = display.none)
sb=plot(senkouB, offset=ss_offset-1,             color=color.rgb(131, 0, 120),                              title="Senkou-Span B", display = display.none)
fill(sa, sb, color = senkouA > senkouB ?         color.rgb(0, 211, 11, 82) : color.rgb(75, 0, 126, 82),   title="Cloud color")

// Calculating 
ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1])  //parte alta de la nube
ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1])   //parte baja de la nube
ss_medium = ss_low + (ss_high - ss_low) / 2                         //parte intermedia


// Input para seleccionar largos o cortos
long_entry_enable =  input.bool(true, title='Entradas Largo',   group='Backtest Operativa', inline='SP20')
short_entry_enable = input.bool(true, title='Entradas Corto',   group='Backtest Operativa', inline='SP20')

// Input backtest rango de fechas 
fromMonth =  input.int  (defval=1,     title='Desde Mes',  minval=1,     maxval=12,      group='Backtest rango de fechas')
fromYear  =  input.int  (defval=2000,  title='Desde Año',  minval=1970,                  group='Backtest rango de fechas')
fromDay   =  input.int  (defval=1,     title='Desde Día',  minval=1,     maxval=31,      group='Backtest rango de fechas')
thruDay   =  input.int  (defval=1,     title='Hasta Día',  minval=1,     maxval=31,      group='Backtest rango de fechas')
thruMonth =  input.int  (defval=1,     title='Hasta Mes',  minval=1,     maxval=12,      group='Backtest rango de fechas')
thruYear  =  input.int  (defval=2099,  title='Hasta Año',  minval=1970,                  group='Backtest rango de fechas')

inDataRange = time >= timestamp(syminfo.timezone, fromYear, fromMonth, fromDay, 0, 0) and time < timestamp(syminfo.timezone, thruYear, thruMonth, thruDay, 0, 0)


//Estrategia

// Señales de entrada y salida

price_above_kumo = close  > ss_high // precio cierra arriba de la nube
price_below_kumo = close  < ss_low // precio cierra abajo de la nube
price_cross_above_kumo = ta.crossover  (close  , ss_high )   //precio cruza la nube parte alta
price_cross_below_kumo = ta.crossunder (close  , ss_low )     // precio cruza la nube parte baja

bullish = (price_above_kumo and price_cross_above_kumo)
bearish = (price_below_kumo and price_cross_below_kumo)

comprado = strategy.position_size > 0
vendido = strategy.position_size  < 0

sl_long =  price_above_kumo
sl_short = price_below_kumo


if ( not comprado and bullish and inDataRange and long_entry_enable)
//realizar compra
    strategy.entry("Buy", strategy.long)

//realizar salida long
if (comprado and bearish and inDataRange and long_entry_enable)
    strategy.close ("Buy", comment = "cerrado")

if ( not vendido and bearish and inDataRange and short_entry_enable)
//realizar venta
    strategy.entry("Sell", strategy.short)
    
//realizar salida long
if (vendido  and bullish and inDataRange and short_entry_enable)
    strategy.close ("Buy", comment = "cerrado")

// Función Calcular TP y SL

// Inputs para SL y TP


tpenable = input.bool(true, title =  "SL y TP metodo")



moneyToSLPoints(money)  =>
    strategy.position_size !=0 and tpenable ?  (money / syminfo.pointvalue / math.abs (strategy.position_size)) / syminfo.mintick : na

p = moneyToSLPoints(input.float(  100.0, minval=0.1, step=10.0, title = "Take Profit $$"))
l = moneyToSLPoints(input.float(  100.0, minval=0.1, step=10.0, title = "Stop Loss $$"))
strategy.exit("Close", profit = p, loss = l)



// debug plots for visualize SL & TP levels
pointsToPrice(pp) =>
    na(pp) ? na : strategy.position_avg_price + pp * math.sign(strategy.position_size) * syminfo.mintick
    
pp = plot(pointsToPrice(p),color = color.rgb(76, 175, 79, 96), style = plot.style_linebr )
lp = plot(pointsToPrice(-l),color = color.rgb(76, 175, 79, 96), style = plot.style_linebr )
avg = plot( strategy.position_avg_price, color = color.rgb(76, 175, 79, 96), style = plot.style_linebr )
fill(pp, avg, color = color.rgb(76, 175, 79, 96))
fill(avg, lp, color = color.rgb(255, 82, 82, 97))