Strategi Menangkap Tren

MA SMA
Tanggal Pembuatan: 2024-04-26 11:48:28 Akhirnya memodifikasi: 2024-04-26 11:48:28
menyalin: 5 Jumlah klik: 753
1
fokus pada
1617
Pengikut

Strategi Menangkap Tren

Ringkasan

Strategi menangkap tren adalah strategi yang menggunakan metode unik untuk mendeteksi tren yang terbentuk dan membuka posisi di arah tren. Dengan menghitung perbedaan antara harga tertinggi dan terendah dalam kisaran tertentu dengan jumlah panjang semua garis K dalam kisaran tersebut, ia mendapatkan persentase yang disebut “batas”. Semakin dekat dengan 100, semakin kuat tren.

Prinsip Strategi

  1. Hitung perbedaan antara harga tertinggi dan harga terendah dalam kisaran tertentu, dan jumlah dari semua panjang garis K dalam kisaran tersebut.
  2. Divisi nilai diferensial dengan jumlah panjang garis K, kemudian kalikan dengan 100 untuk mendapatkan nilai persentase, yang disebut “batas”.
  3. Ketika batas melebihi nilai yang ditetapkan dan bergerak ke atas rata-rata, membuka lebih banyak; ketika batas melebihi nilai yang ditetapkan dan bergerak ke bawah rata-rata, membuka kosong.
  4. Setelah membuka posisi, ketika harga mencapai stop loss, sebagian posisi dihapus, dan sisa posisi dipindahkan ke stop loss.
  5. Ketika rata-rata bergerak melintasi ke bawah, rata-rata lebih banyak; ketika rata-rata bergerak melintasi ke atas, rata-rata kosong.

Keunggulan Strategis

  1. Strategi ini menggunakan metode yang unik untuk mendeteksi pembentukan tren, menilai kekuatan tren dengan menghitung nilai batas, yang membantu membuka posisi pada awal tren.
  2. Strategi untuk mengendalikan risiko setelah membuka posisi dengan menghapus sebagian dari posisi dan memindahkan posisi sisa dari posisi stop loss.
  3. Strategi ini menggunakan moving averages yang naik dan turun untuk mengevaluasi akhir tren dan membantu untuk menyelesaikan posisi tepat waktu.

Risiko Strategis

  1. Strategi untuk membuka posisi di awal tren, jika tren tidak dapat berlanjut, mungkin akan menyebabkan kerugian.
  2. Strategi ini menggunakan stop loss dan stop loss yang tetap, yang dalam beberapa kasus mungkin tidak cukup fleksibel.
  3. Strategi ini hanya menggunakan moving average untuk menilai tren dan mungkin akan melewatkan beberapa peluang tren.

Arah optimasi strategi

  1. Anda dapat mempertimbangkan untuk menggunakan indikator lain untuk membantu menilai tren, seperti MACD, RSI, dan lain-lain, untuk meningkatkan akurasi posisi.
  2. Stop dan stop loss dapat disesuaikan secara dinamis sesuai dengan volatilitas pasar untuk mengendalikan risiko dengan lebih baik.
  3. Anda dapat mempertimbangkan untuk membuka posisi setelah tren dikonfirmasi untuk mengurangi risiko pada awal tren.

Meringkaskan

Strategi menangkap tren menggunakan metode yang unik untuk mendeteksi pembentukan tren, dan membuka posisi di arah tren. Strategi ini menilai kekuatan tren dengan menghitung nilai batas, dan memutuskan akhir tren dengan melewati rata-rata bergerak. Strategi ini mengendalikan risiko dengan meratakan sebagian posisi dan memindahkan stop loss setelah membuka posisi. Namun, strategi ini mungkin menghadapi risiko tertentu dengan membuka posisi di awal tren, menggunakan stop loss yang tetap mungkin tidak cukup fleksibel, dan mungkin kehilangan beberapa peluang dengan hanya menggunakan trend penilaian rata-rata bergerak. Strategi di masa depan dapat dipertimbangkan untuk mengoptimalkan strategi dengan memasukkan indikator lain, menyesuaikan stop loss, dan membuka posisi setelah konfirmasi tren.

Kode Sumber Strategi
/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 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/
// © faytterro

//@version=5
strategy("Trend Catcher Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input.int(10)
tp = input.float(2.5, step = 0.1)
sl = input.float(2.5, step = 0.1)
malen = input.int(5)
limit = input.int(50)
ma = ta.sma(close,malen)
sum = 0.0
for i = 0 to len-1
    sum := sum + high[i]-low[i]
frs = 100*(ta.highest(high,len)-ta.lowest(low,len))/sum
//hline(50)
//plot(frs, color = color.white)
l = ta.crossover(frs,limit) and ma>ma[1]
s = ta.crossover(frs,limit) and ma<ma[1]
cl = ma<ma[1]
cs = ma>ma[1]
qty_balance=input.int(50, maxval = 100)
if (l)
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("exit long", "My Long Entry Id", qty_percent = qty_balance, limit = close*(100+tp)/100, stop = close*(100-sl)/100)

if (s)
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("exit short", "My Short Entry Id", qty_percent = qty_balance, limit = close*(100-tp)/100, stop = close*(100+sl)/100)

if (cl)
    strategy.close("My Long Entry Id")
if (cs)
    strategy.close("My Short Entry Id")

l:= l and strategy.opentrades<1
s:= s and strategy.opentrades<1
transp = strategy.opentrades>0? 0 : 100
pma=plot(ma, color = ma<ma[1]? color.rgb(255, 82, 82, transp) : color.rgb(76, 175, 79, transp))
price = open/2+close/2
pprice = plot(price, display = display.none)
fill(pma,pprice, color = ma<ma[1]? color.rgb(255, 82, 82, transp+90) : color.rgb(76, 175, 79, transp+90))

spm=plot(ta.valuewhen(s,close,0), color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
lpm=plot(ta.valuewhen(l,close,0), color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.white : color.rgb(1,1,1,100), offset=1)

ltp=plot(ta.valuewhen(l,close,0)*(100+ta.valuewhen(l,tp,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
lsl=plot(ta.valuewhen(l,close,0)*(100-ta.valuewhen(l,sl,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.red : color.rgb(1,1,1,100), offset=1)

stp=plot(ta.valuewhen(s,close,0)*(100-ta.valuewhen(s,tp,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
ssl=plot(ta.valuewhen(s,close,0)*(100+ta.valuewhen(s,sl,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
fill(stp,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(ssl,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))
fill(ltp,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(lsl,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))