Ikuti Strategi Beruang

Penulis:ChaoZhang, Tarikh: 2024-02-26 14:12:09
Tag:

img

Ringkasan

Strategi Follow The Bear (FTB) adalah strategi dagangan forex yang direka untuk menangkap corak berulang dalam tindakan harga EUR/USD semasa pasaran Eropah terbuka. Strategi ini bertujuan untuk mengambil kesempatan daripada lembu euro yang terperangkap yang terpaksa melepaskan kedudukan panjang mereka apabila harga mula mundur. Khususnya, ia menonton untuk bintang menembak atau lilin pembalikan palu pada carta 1 jam EUR/USD. Setelah dikesan dan disahkan dengan penapis tambahan seperti RSI yang terlalu banyak, ia akan memasuki kedudukan pendek dengan agresif dengan berhenti ketat di atas lilin pembalikan dan sasaran keuntungan berdasarkan nisbah risiko / ganjaran yang munasabah.

Logika Strategi

Premis teras strategi FTB adalah berdasarkan andaian bahawa bulls euro dan algoritma yang mendorong harga EUR/USD naik akan terperangkap apabila trend menaik berhenti atau berbalik sejurus selepas pasaran Eropah/London dibuka.

Strategi ini bertujuan untuk memanfaatkan teori penurunan ini dengan melihat corak lilin pembalikan semasa zon waktu Eropah (contohnya 2am-7am).

Apabila lilin seperti itu terbentuk, ia menandakan perdagangan yang terperangkap menghadapi pembubaran.

  1. RSI di atas tahap overbought 70
  2. Lilin sebelumnya ditutup
  3. Lilin semasa membuat tinggi baru-baru ini

Apabila lulus semua penapis, strategi memasuki kedudukan pendek pada penutupan lilin dengan stop loss yang diletakkan di atas paras tertinggi dan sasaran keuntungan yang dikira berdasarkan nisbah risiko / ganjaran 1: 1 (boleh dikonfigurasi).

Satu butiran penting adalah strategi hanya berdagang semasa sesi Eropah. di luar itu, ia menetapkan semula dan menunggu tempoh perdagangan seterusnya.

Analisis Kelebihan

Sebagai strategi pembalikan purata jangka pendek yang mudah, pendekatan FTB mempunyai beberapa kekuatan utama:

  1. Mengambil corak tingkah laku yang boleh diperdagangkan dengan kadar kemenangan yang baik
  2. Logik mudah difahami dan dioptimumkan
  3. Mengelakkan bunyi pada siang hari dengan berdagang pada waktu malam
  4. Peraturan pengurusan risiko yang jelas
  5. Sambungan lancar untuk perdagangan automatik

Secara keseluruhan, sebagai strategi scalping malam frekuensi rendah, kestabilan dan kebolehpercayaan FTB agak menarik.

Analisis Risiko

Walaupun strategi ini mempunyai kelebihan, seperti dengan mana-mana sistem perdagangan, terdapat risiko termasuk:

  1. Spread dan jurang yang lebih luas dalam semalam
  2. Kesederhanaan boleh membawa kepada optimasi berlebihan
  3. Kegagalan ketepatan corak di beberapa pasaran
  4. Kebolehpercayaan data sejarah yang terhad
  5. Batasan ujian belakang

Beberapa cara untuk menangani risiko:

  1. Sesuaikan penyangga stop loss
  2. Tambah penapis dan menggabungkan strategi
  3. Mengoptimumkan untuk ketahanan dalam keadaan pasaran
  4. Gunakan tempoh backtest yang lebih lama
  5. Ujian jangka panjang yang meluas sebelum perdagangan langsung

Laluan pengoptimuman

Memandangkan sifat asas strategi dan risiko yang terlibat, beberapa bidang yang perlu dipertimbangkan untuk meningkatkan:

  1. Jangka masa berbilang mengesahkan isyarat pada 5m atau 15m untuk ketahanan
  2. Pembelajaran mesin model kereta api untuk skrin isyarat
  3. Perhentian dinamik menyesuaikan hentian berdasarkan turun naik
  4. Penghapusan risiko mengoptimumkan saiz kedudukan untuk pertumbuhan yang lebih mantap

Kesimpulan

Strategi Follow the Bear menyediakan pendekatan mudah untuk short selling jangka pendek dengan memanfaatkan retracements yang didorong oleh bulls euro yang terperangkap. Mudah untuk memahami dan meningkatkan, FTB sesuai dengan scalping semalam yang sistematik.


/*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)

Lebih lanjut