Strategi rujukan untuk aliran menaik pelarian


Tarikh penciptaan: 2024-02-21 10:58:01 Akhirnya diubah suai: 2024-02-21 10:58:01
Salin: 0 Bilangan klik: 610
1
fokus pada
1617
Pengikut

Strategi rujukan untuk aliran menaik pelarian

Gambaran keseluruhan

Strategi ini adalah strategi memegang garis panjang yang berdasarkan purata bergerak sederhana untuk menentukan arah trend, dengan garisan sokongan rintangan membentuk isyarat pecah. Dengan mengira harga Pivot High dan Pivot Low, garisan rintangan dan garisan sokongan dipetik, apabila harga memecahkan garisan rintangan, lakukan lebih banyak, dan apabila garisan sokongan pecah. Strategi ini sesuai untuk saham yang jelas dalam trend, yang dapat memberikan pulangan risiko yang lebih baik.

Prinsip Strategi

  1. Menggunakan purata bergerak sederhana 20 hari sebagai garis panduan untuk menilai trend
  2. Mengira tinggi dan rendah Pivot berdasarkan parameter input pengguna
  3. Merangka garis rintangan dan sokongan berdasarkan titik tinggi dan titik rendah
  4. Apabila harga penutupan berada di atas garis rintangan, masuk lebih banyak
  5. Apabila sokongan melintasi garisan rintangan di bawah garisan sokongan, berpecah.

Strategi ini menggunakan purata bergerak mudah untuk menentukan arah trend keseluruhan, dan kemudian menggunakan titik-titik penting untuk membentuk isyarat perdagangan, termasuk dalam strategi tipikal. Dengan titik-titik penting dan keputusan trend, anda boleh menyaring penembusan palsu dengan berkesan.

Analisis kelebihan

  1. Peluang strategi yang mencukupi, sesuai untuk saham yang bergolak tinggi, mudah untuk menangkap trend
  2. Pengendalian risiko: risiko lebih tinggi daripada keuntungan
  3. Menggunakan isyarat penembusan untuk mengelakkan risiko penembusan palsu
  4. Parameter yang boleh disesuaikan, beradaptasi

Analisis risiko

  1. Bergantung kepada optimasi parameter, parameter yang salah akan meningkatkan kebarangkalian penembusan palsu
  2. Sinyal penembusan terlewat, mungkin kehilangan beberapa peluang
  3. Kemungkinan Kerosakan Semasa Guncangan
  4. Pengubahsuaian garisan sokongan yang tidak tepat pada masanya boleh menyebabkan kerugian

Risiko boleh dikurangkan melalui parameter pengoptimuman cakera keras, digabungkan dengan strategi hentian dan hentian kerugian.

Arah pengoptimuman

  1. Mengoptimumkan parameter kitaran purata bergerak
  2. Optimumkan parameter garis rintangan sokongan
  3. Menambah strategi penangguhan kerugian
  4. Menambah mekanisme pengesahan penembusan
  5. Indikator penapis isyarat yang digabungkan dengan jumlah transaksi

ringkaskan

Strategi ini secara keseluruhan adalah strategi jenis terobosan yang tipikal, bergantung pada pengoptimuman parameter dan kecairan, yang sesuai untuk peniaga yang mengikuti trend. Sebagai kerangka rujukan, modul boleh diperluas mengikut keperluan sebenar, untuk mengurangkan risiko dan meningkatkan kestabilan melalui mekanisme seperti stop loss, penapisan isyarat.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © CheatCode1

//@version=5
strategy("Quantitative Trend Strategy- Uptrend long", 'Steady Uptrend Strategy', overlay=true, initial_capital = 1500, default_qty_value = 100, commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type = strategy.percent_of_equity)


length = input.int(20, minval=1)
src = input(close, title="Source")
basis = ta.sma(src, length)
offset = input.int(0, "Offset", minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)

inp1 = input.int(46, 'LookbackLeft')
inp2 = input.int(32, 'LookbackRight')

l1 = ta.pivothigh(close, inp1, inp2)
S1 = ta.pivotlow(close, inp1, inp2)

// plot(l1, 'Pivothigh', color.red, 1)
// // plot(S1, 'Pivot Low', color.red)

l1V = ta.valuewhen(l1, close, 0)
S1V = ta.valuewhen(S1, close, 0)

Plotl1 = not na(l1) ? l1V : na
PlotS1 = not na(S1) ? S1V : na

plot(Plotl1, 'Resistance', color.green, 1, plot.style_stepline, true)
plot(PlotS1, 'Support', color.red, 1, plot.style_stepline, true)

Priceforlong = close > l1V ? true : na
Priceforshort = close < S1V ? true : na

plotshape(Priceforlong ? high : na, 'p', shape.arrowup, location.abovebar, color.green, size = size.small)
plotshape(Priceforshort ? low : na, 's', shape.arrowdown, location.belowbar, color.red, size = size.small)

vol = volume
volma = ta.sma(vol, 20)

Plotl1C = ta.valuewhen(na(Plotl1), l1V, 0)
PlotS1C = ta.valuewhen(na(PlotS1), S1V, 0)
//Strategy Execution
volc = volume > volma 

Lc1 = Priceforlong 

Sc1 = Priceforshort

sL = Plotl1 < PlotS1 ? close : na
sS = PlotS1 > Plotl1 ? close : na


if Lc1 
    strategy.entry('Long', strategy.long)
// if Sc1 and C2
//     strategy.entry('Short', strategy.short)

if Priceforshort
    strategy.cancel('Long')
if Priceforlong   
    strategy.cancel('Short')


// Stp1 = ta.crossover(k, d)
// Ltp1 = ta.crossunder(k, d)
// Ltp = d > 70  ? Ltp1 : na
// Stp = d < 30  ? Stp1 : na


if strategy.openprofit >= 0 and sL
    strategy.close('Long')
if strategy.openprofit >= 0 and sS
    strategy.close('Short')
takeP = input.float(2, title='Take Profit') / 100
stopL = input.float(1.75, title='Stop Loss') / 100


// // Pre Directionality

Stop_L = strategy.position_avg_price * (1 - stopL)

Stop_S = strategy.position_avg_price * (1 + stopL)

Take_S= strategy.position_avg_price * (1 - takeP)

Take_L = strategy.position_avg_price * (1 + takeP)
     
// sL = Plotl1 < PlotS1 ? close : na
// sS = PlotS1 < Plotl1 ? close : na
     
// //Post Excecution
if strategy.position_size > 0 and not (Lc1)
    strategy.exit("Close Long", stop = Stop_L, limit = Take_L)

if strategy.position_size < 0 and not (Sc1)
    strategy.exit("Close Short", stop = Stop_S, limit = Take_S)