Melacak Strategi Pasar Beruang


Tanggal Pembuatan: 2024-02-26 14:12:09 Akhirnya memodifikasi: 2024-02-26 14:12:09
menyalin: 1 Jumlah klik: 955
1
fokus pada
1617
Pengikut

Melacak Strategi Pasar Beruang

Ringkasan

Strategi ini memanfaatkan karakteristik euro yang terjebak dan dipaksa untuk melonggarkan posisi selama pembukaan pasar Eropa. Secara khusus, strategi ini akan memeriksa sinyal filter indikator RSI dan lain-lain setelah menemukan garis K 1 jam EUR / USD yang berputar-putar (bintang atau kuda yang menembak), dan setelah memenuhi persyaratan, akan melakukan penarikan, dengan posisi stop loss di atas titik tinggi dari putaran balik, dan target keuntungan berdasarkan tingkat pengembalian risiko yang dapat diterima.

Prinsip Strategi

Logika perdagangan inti yang melacak strategi bear market didasarkan pada asumsi berikut: Pada saat pembukaan pasar Eropa / London, pedagang dan algoritma yang melakukan lebih banyak euro akan mendorong harga EUR / USD ke atas. Tetapi jika harga tidak dapat terus naik atau ada tanda-tanda penurunan, mereka akan terjebak. Jadi, ketika harga mulai berbalik, mereka akan dipaksa untuk melonggarkan lebih banyak pesanan, sehingga memperburuk penurunan.

Strategi ini memanfaatkan teori pasar beruang untuk menangkap penurunan jangka pendek. Secara khusus, ia akan mencari sinyal reversal morphological di zona waktu Eropa (misalnya, 2am-7am) pada garis K 1 jam. Kriteria untuk menentukan sinyal reversal morphological di sini adalah: harga penutupan sebagian dari entitas morphological di bawah harga pembukaan, dan tidak lebih dari 0,5 kali harga penutupan.

Jika terjadi kebocoran seperti ini, maka orang yang melakukan lebih dari satu tindakan berisiko terjebak. Untuk memverifikasi sinyal lebih lanjut, strategi ini juga memeriksa kondisi penyaringan berikut:

  1. RSI lebih tinggi dari overbought (default 70);
  2. harga penutupan K-line sebelumnya lebih tinggi dari harga pembukaan ((sinyal multi-head end);
  3. Ketika titik tertinggi di garis K mencapai rekor tertinggi baru;

Setelah memenuhi semua kondisi penyaringan, strategi akan melakukan shorting pada saat reversal close, dengan stop loss yang ditetapkan di atas titik tinggi, dan target profit yang didasarkan pada tingkat pengembalian risiko yang dapat diterima (default risk return rate is 1 to 1).

Perlu dicatat bahwa strategi ini hanya aktif di zona waktu Eropa, dan jika harga keluar dari zona waktu Eropa, maka akan melakukan reset dan menunggu waktu perdagangan zona waktu berikutnya.

Analisis Keunggulan

Ini adalah strategi short-line shorting yang sederhana namun praktis.

  1. Menangkap pola perilaku jangka pendek yang dapat diulang, dengan tingkat kemenangan yang lebih tinggi;
  2. Logika strategi sederhana, mudah dipahami, dan dapat dioptimalkan untuk pelacakan.
  3. Perdagangan di malam hari, menghindari kebisingan pasar di siang hari;
  4. Ini adalah salah satu dari beberapa hal yang dapat Anda lakukan untuk mencegah terjadinya kerusakan.
  5. Dapat terhubung langsung ke MT4 / 5 perdagangan otomatis;

Secara keseluruhan, strategi melacak pasar beruang sebagai strategi short-term night-time arbitrage adalah pilihan yang baik untuk stabilitas dan kepraktisan.

Analisis risiko

Meskipun ada beberapa keuntungan dari strategi ini, ada risiko dalam perdagangan produk keuangan apa pun, yang meliputi:

  1. Pasar malam tidak memiliki likuiditas yang cukup dan tidak dapat menghentikan kerugian pada waktu yang tepat;
  2. Strategi yang terlalu sederhana untuk diatasi dengan algoritma;
  3. Aturan perilaku euro yang terjebak di beberapa mata uang mungkin tidak akan berhasil dalam beberapa kondisi pasar;
  4. Data historis yang cukup diperlukan untuk memverifikasi efektivitas strategi;
  5. Perbedaan antara data deteksi dan hard disk mungkin sangat besar.

Ada beberapa cara untuk menanggapi risiko tersebut:

  1. Mengatur stop loss untuk mencegah stop loss yang tidak efektif;
  2. Menggabungkan lebih banyak indikator dan kondisi penyaringan untuk membuat strategi lebih robust;
  3. Mengoptimalkan parameter strategi untuk menyesuaikan dengan lingkungan pasar yang lebih luas;
  4. Menggunakan siklus pengembalian yang lebih panjang;
  5. Beberapa kali verifikasi laboratorium, memastikan bahwa hasil pengukuran dapat diandalkan.

Arah optimasi

Mengingat kesederhanaan strategi ini dan potensi risiko yang dimilikinya, berikut adalah beberapa arah optimasi yang dapat dipertimbangkan di masa depan:

  1. Verifikasi multi-frame- Dapat memverifikasi kembali sinyal pembalikan pada kerangka waktu 5 menit atau 15 menit, meningkatkan stabilitas;
  2. Pembelajaran Mesin Filter- Memperkenalkan algoritma pembelajaran mesin untuk mengidentifikasi lebih banyak pola dan memfilter sinyal palsu;
  3. Dinamika Stop Loss- Mengatur titik-titik stop loss secara real-time sesuai dengan tingkat fluktuasi pasar untuk mencegah stop loss yang tidak efektif;
  4. Pengelolaan Dana Stabil yang Dioptimalkan- Mengoptimalkan strategi pengelolaan dana, agar pendapatan lebih stabil dengan menyesuaikan posisi.

Meringkaskan

Strategi bear market adalah strategi short-line shorting yang sederhana dan dapat dikendalikan. Strategi ini menghasilkan keuntungan yang stabil dengan menangkap penyesuaian jangka pendek yang disebabkan oleh fenomena lelang multi-head euro. Strategi ini mudah dipahami dan dioptimalkan, dan merupakan pilihan yang ideal untuk perdagangan lelang malam.

Kode Sumber Strategi
/*backtest
start: 2024-02-18 00:00:00
end: 2024-02-25 00:00:00
period: 3h
basePeriod: 15m
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/
// © ZenAndTheArtOfTrading / PineScriptMastery
// FTB Strategy (PineConnector Version)
// Last Updated: 21st July, 2021
// @version=4
strategy("[2021] FTB Strategy", shorttitle="FTB", overlay=true)

// Risk Settings
var g_risk      = "Risk Settings"
pips            = input(title="Stop Pips", type=input.float, defval=2.0, group=g_risk, tooltip="How many pips above high to put stop loss")
rr              = input(title="Risk:Reward", type=input.float, defval=1.0, group=g_risk, tooltip="This determines the risk:reward profile of the setup")
// Filters
var g_filter    = "Filter Settings"
timezone        = input(title="Timezone", type=input.session, defval="0200-0700", group=g_filter, tooltip="Which timezone to search for FTB signals in")
days            = input(title="Days To Trade", defval="13457", group=g_filter, tooltip="Which days to trade this strategy on (Monday & Friday disabled by default)")
useRsiFilter    = input(title="RSI OB/OS?", type=input.bool, defval=true, group=g_filter, tooltip="If true then the RSI must be considered overbought before a signal is valid")
useCloseFilter  = input(title="Previous Bar Must Be Bullish?", type=input.bool, defval=false, group=g_filter, tooltip="If true then the previous bar must have closed bullish")
useHighFilter   = input(title="High Filter", type=input.bool, defval=false, group=g_filter, tooltip="If true then the signal bar must be the highest bar over X bars")
highLookback    = input(title="High Lookback", type=input.integer, defval=10, group=g_filter, tooltip="This is for setting the High Filter lookback distance")
fib             = input(title="Candle Close %", defval=0.5, group=g_filter, tooltip="For identifying shooting star candles (0.5 = must close <= 50% mark of candle size)")
rsiLen          = input(title="RSI Length", type=input.integer, defval=3, group=g_filter, tooltip="RSI length")
rsiOB           = input(title="RSI OB", type=input.float, defval=70.0, group=g_filter, tooltip="RSI overbought threshold")
// PineConnector Settings
var g_pc        = "PineConnector Settings"
pc_id           = input(title="License ID", defval="YOUR_ID", type=input.string, group=g_pc, tooltip="This is your PineConnector license ID")
pc_risk         = input(title="Risk Per Trade", defval=1, step=0.5, type=input.float, group=g_pc, tooltip="This is how much to risk per trade (% of balance or lots)")
pc_prefix       = input(title="MetaTrader Prefix", defval="", type=input.string, group=g_pc, tooltip="This is your broker's MetaTrader symbol prefix")
pc_suffix       = input(title="MetaTrader Suffix", defval="", type=input.string, group=g_pc, tooltip="This is your broker's MetaTrader symbol suffix")
pc_spread       = input(title="Spread", defval=0.5, type=input.float, group=g_pc, tooltip="Enter your average spread for this pair (used for offsetting limit order)")
pc_limit        = input(title="Use Limit Order?", defval=true, type=input.bool, group=g_pc, tooltip="If true a limit order will be used, if false a market order will be used")

// Generate PineConnector alert string
var symbol = pc_prefix + syminfo.ticker + pc_suffix
var limit = pc_limit ? "limit" : ""
pc_entry_alert(direction, sl, tp) =>
    price = pc_limit ? "price=" + tostring(pc_spread) + "," : ""
    pc_id + "," + direction + limit + "," + symbol + "," + price + "sl=" + tostring(sl) + ",tp=" + tostring(tp) + ",risk=" + tostring(pc_risk)

// Get RSI filter
rsiValue = rsi(close, rsiLen)
rsiFilter = not useRsiFilter or rsiValue >= rsiOB

// Check high & close filter
highFilter = not useHighFilter or high == highest(high, highLookback)
closeFilter = not useCloseFilter or close[1] > open[1]

// InSession() determines if a price bar falls inside the specified session
inSession(sess) => na(time(timeframe.period, sess + ":" + days)) == false

// Calculate 50% mark of candle size
bearFib = (high - low) * fib + low

// Check filters
filters = inSession(timezone) and closeFilter and high > high[1] and rsiFilter and highFilter and open != close

// Detect valid shooting star pinbar pattern
var takenTradeAlready = false
star = true

// Calculate stops & targets
shortStopPrice = high + (syminfo.mintick * pips * 10)
shortStopDistance = shortStopPrice - close
shortTargetPrice = close - (shortStopDistance * rr)

// Save stops & targets for the current trade
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0

// If we detect a valid shooting star, save our stops & targets, enter short and generate alert
if star and barstate.isconfirmed
    tradeStopPrice := shortStopPrice
    tradeTargetPrice := shortTargetPrice
    takenTradeAlready := true
    alertString = pc_entry_alert("sell", tradeStopPrice, tradeTargetPrice)
    alert(alertString, alert.freq_once_per_bar_close)
    strategy.entry(id="Short", long=strategy.short, when=strategy.position_size == 0, comment=alertString)

// If we have exited the FTB session then reset our takenTradeAlready flag for the next session
if not inSession(timezone) and inSession(timezone)[1]
    takenTradeAlready := false
    
// If price has exceeded target then cancel limit order if it's still active
if pc_limit and low <= tradeTargetPrice and strategy.position_size == 0
    alert(pc_id + ",cancelshort," + symbol)
    tradeTargetPrice := na

// Draw stops & targets
plot(star ? tradeStopPrice : na, color=color.red, style=plot.style_linebr, title="SL")
plot(star ? shortTargetPrice : na, color=color.green, style=plot.style_linebr, title="TP")
// Draw short signals
plotshape(star ? 1 : na, style=shape.triangledown, color=color.red)
// Change background color to highlight detection zone
bgcolor(color=inSession(timezone) ? color.new(color.red,80) : na, title="Session")

// Exit trade whenever our stop or target is hit
strategy.exit(id="Short Exit", from_entry="Short", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size != 0)