
Strategi mengejar pasaran beruang adalah strategi perdagangan forex yang direka untuk menangkap pola tingkah laku khas EUR / USD semasa pembukaan pasaran Eropah. Strategi ini memanfaatkan ciri-ciri mata wang euro yang terjebak sehingga dipaksa untuk melonggarkan kedudukan semasa pembukaan pasaran Eropah, untuk membuat kedudukan kosong. Secara khusus, strategi ini akan memeriksa isyarat penapis indikator RSI dan lain-lain setelah menemui garis K 1 jam EUR / USD yang jatuh dan berbalik (bintang atau kepingan yang menembak), dan apabila ia disahkan memenuhi syarat, ia akan melakukan penarikan keputusan, dan kedudukan stop loss akan ditetapkan di atas titik tinggi yang berbalik, dan keuntungan sasaran akan ditetapkan berdasarkan kadar pulangan risiko yang boleh diterima.
Logik dagangan teras untuk menjejaki strategi bear market adalah berdasarkan kepada hipotesis berikut: Pada masa pasaran Eropah / London, peniaga dan algoritma yang melakukan lebih banyak euro akan mendorong harga EUR / USD. Tetapi jika harga tidak dapat terus meningkat atau menunjukkan tanda-tanda penurunan, peniaga-peniaga ini akan terjebak. Oleh itu, apabila harga mula membetulkan, mereka akan dipaksa untuk melonggarkan lebih banyak pesanan, yang akan meningkatkan penurunan.
Strategi ini menggunakan teori pasaran beruang ini untuk menangkap penurunan jangka pendek. Khususnya, ia akan mencari isyarat tiub reversal pada garis K 1 jam di zon waktu Eropah (contohnya 2am-7am). Kriteria penilaian isyarat tiub reversal di sini adalah: harga penutupan bahagian tiub entiti lebih rendah daripada harga pembukaan, dan harga penutupan tidak melebihi 0.5 kali ganda daripada jangkauan pergerakan tiub keseluruhan (iaitu, harga penutupan berhampiran dengan titik tiub rendah).
Apabila terdapat kekosongan bentuk terbalik seperti ini, ia menunjukkan bahawa orang yang melakukan lebih banyak orang menghadapi risiko penjarahan. Untuk mengesahkan isyarat lebih lanjut, strategi ini juga akan memeriksa syarat penapisan berikut:
Selepas memenuhi semua syarat penapisan, strategi akan kosong pada penutupan penarikan terbalik, dengan stop loss ditetapkan di atas titik tertinggi, dan keuntungan sasaran berdasarkan kadar pulangan risiko yang boleh diterima (default risk return rate is 1 to 1).
Perlu diingat bahawa strategi ini hanya aktif di zon waktu Eropah, dan jika harga keluar dari zon waktu Eropah, ia akan diset semula dan menunggu masa perdagangan zon waktu berikutnya.
Ini adalah strategi short-line shorting yang mudah tetapi praktikal.
Secara keseluruhannya, strategi untuk menjejaki pasaran beruang sebagai strategi short-term night arbitrage adalah pilihan yang baik untuk kestabilan dan kebolehgunaannya.
Walaupun ada kelebihan dalam strategi ini, perdagangan mana-mana produk kewangan mempunyai risiko, dan risiko utama termasuk:
Ini adalah beberapa langkah yang boleh diambil untuk menangani risiko tersebut:
Mengambil kira kesederhanaan strategi ini dan risiko yang berpotensi, berikut adalah beberapa arah pengoptimuman yang boleh dipertimbangkan untuk masa depan:
Strategi mengejar pasaran beruang adalah strategi short-line shorting yang mudah dan boleh dikawal risiko perdagangan. Ia mencapai keuntungan yang stabil dengan menangkap penyesuaian jangka pendek yang dibawa oleh fenomena penarikan berganda euro.
/*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)