Sistem Pengesanan Pasaran Bull

Penulis:ChaoZhang, Tarikh: 2024-01-31 11:01:45
Tag:

img

Ringkasan

Sistem Pengesanan Pasar Bull adalah sistem perdagangan mekanikal berdasarkan pengesanan trend. Ia menggunakan penunjuk trend pada carta 4 jam untuk menapis isyarat perdagangan, sementara keputusan kemasukan dibuat berdasarkan penunjuk dari carta 15 minit. Penunjuk utama termasuk RSI, Stochastics, dan MACD. Kelebihan sistem ini adalah bahawa gabungan beberapa bingkai masa dapat menapis isyarat palsu dengan berkesan, sementara penunjuk bingkai masa yang lebih pendek dapat menentukan masa kemasukan yang lebih tepat.

Prinsip-prinsip

Logik teras sistem ini adalah untuk menggabungkan penunjuk dari jangka masa yang berbeza untuk mengenal pasti arah trend dan masa kemasukan. Khususnya, RSI, Stochastics, dan EMA pada carta 4 jam perlu diselaraskan untuk menentukan arah trend keseluruhan. Ini dapat menapis kebanyakan bunyi bising dengan berkesan. Pada masa yang sama, RSI, Stochastics, MACD dan EMA pada carta 15 minit juga perlu bersetuju dengan bias menaik atau menurun untuk menentukan jangka masa kemasukan yang tepat. Ini membolehkan kita mencari titik kemasukan dan keluar yang baik. Hanya apabila penghakiman pada kedua-dua jangka masa 4 jam dan 15 minit memenuhi kriteria, sistem akan menghasilkan isyarat perdagangan.

Kelebihan

  1. Gabungan pelbagai jangka masa dapat menyaring isyarat palsu dengan berkesan dan mengenal pasti trend utama
  2. Penunjuk terperinci 15 minit boleh menangkap masa kemasukan yang agak tepat
  3. Gabungan penunjuk termasuk RSI, Stochastics, MACD dan penunjuk teknikal utama yang lain mudah difahami dan dioptimumkan
  4. Kaedah pengurusan risiko yang ketat digunakan seperti mengambil keuntungan, hentikan kerugian, hentikan kerugian, dan lain-lain untuk mengawal risiko perdagangan individu dengan berkesan

Risiko

  1. Risiko overtrading. sistem ini agak sensitif kepada jangka masa pendek, yang boleh menghasilkan banyak isyarat perdagangan, yang membawa kepada overtrading
  2. Risiko pecah palsu. Penghakiman penunjuk jangka pendek mungkin salah, mengakibatkan isyarat pecah palsu
  3. Risiko kegagalan penunjuk: Penunjuk teknikal sendiri mempunyai batasan tertentu dan boleh gagal dalam keadaan pasaran yang melampau

Oleh itu, sistem boleh dioptimumkan dari aspek berikut:

  1. Penyesuaian parameter penunjuk untuk menjadikannya lebih sesuai untuk persekitaran pasaran yang berbeza
  2. Meningkatkan keadaan penapis untuk mengurangkan kekerapan dagangan dan mengelakkan perdagangan berlebihan
  3. Mengoptimumkan strategi berhenti keuntungan dan berhenti kerugian untuk menyesuaikan dengan lebih baik julat turun naik pasaran
  4. Uji gabungan penunjuk yang berbeza untuk mencari penyelesaian optimum

Ringkasan

Secara keseluruhan, Sistem Pengesanan Pasar Bull adalah trend yang sangat praktikal mengikuti sistem perdagangan mekanikal. Ia menggunakan gabungan penunjuk jangka masa berbilang untuk mengenal pasti trend pasaran dan masa kemasukan utama. Dengan tetapan parameter yang munasabah dan ujian pengoptimuman berterusan, sistem ini dapat menyesuaikan diri dengan kebanyakan persekitaran pasaran dan mencapai keuntungan yang stabil. Walau bagaimanapun, kita juga perlu menyedari beberapa risiko berpotensi, dan mengambil langkah proaktif untuk mencegah dan mengurangkan risiko ini.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Cowabunga System from babypips.com", overlay=true)
// 4 Hour Stochastics
length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD")
k4 = sma(stoch(close, high, low, length4), smoothK4)
d4 = sma(k4, smoothD4)

//15 min Stoch
length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD")
k = sma(stoch(close, high, low, length), smoothK)
d= sma(k, smoothD)

//4 hour RSI
src1 = close, len1 = input(240, minval=1, title="4H RSI Length")
up1 = rma(max(change(src1), 0), len1)
down1 = rma(-min(change(src1), 0), len1)
rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

//15 min RSI
src = close, len = input(9, minval=1, title="15M RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//MACD Settings
source = close
fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow")
signalLength=input(9,minval=1, title="MACD Signal")
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 400, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")

longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
longCondition2 = rsi4 <= 80
longCondition3 = k4 >= d4 and k4 <= 80
longCondition4 = ema(close, 80) >= ema(close, 162)
allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4

longCondition5 = rsi15 <= 80
longCondition6 = k >= d and k <= 80 and fastMA >= slowMA
longCondition7 = ema(close, 5) >= ema(close, 10)
allLongLongs = longCondition5 and longCondition6 and longCondition7

if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
shortCondition2 = rsi4 >= 20
shortCondition3 = k4 <= d4 and k4 >= 20
shortCondition4 = ema(close, 80) <= ema(close, 162)
allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4

shortCondition5 = rsi15 >= 20
shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA
shortCondition7 = ema(close, 5) <= ema(close, 10)
allShortShorts = shortCondition5 and shortCondition6 and shortCondition7

if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

Lebih lanjut