Penjejak Lembu


Tarikh penciptaan: 2024-01-31 11:01:45 Akhirnya diubah suai: 2024-01-31 11:01:45
Salin: 1 Bilangan klik: 361
1
fokus pada
1218
Pengikut

Penjejak Lembu

Gambaran keseluruhan

Sistem pengesanan pasaran lembu adalah sistem perdagangan mekanikal berdasarkan trend. Ia menggunakan indikator trend pada grafik 4 jam untuk menapis isyarat perdagangan, dan masuk berdasarkan indikator pada grafik 15 minit. Petunjuk utama termasuk RSI, penunjuk rawak dan MACD.

Prinsip

Logik teras sistem ini adalah menggabungkan penunjuk dari pelbagai bingkai masa untuk mengenal pasti arah trend dan masa masuk. Khususnya, RSI, penunjuk rawak dan EMA pada grafik 4 jam harus memenuhi syarat untuk menentukan arah trend keseluruhan. Ini dapat menyaring kebisingan yang paling berkesan.

Kelebihan

  1. Kombinasi pelbagai bingkai masa yang berkesan untuk menyaring isyarat palsu dan mengenal pasti trend utama
  2. 15 minit detil untuk mendapatkan masa kemasukan yang lebih tepat
  3. Portfolio penunjuk menggunakan penunjuk teknologi arus perdana seperti RSI, penunjuk rawak, MACD, mudah difahami, juga mudah dioptimumkan
  4. Menggunakan kaedah pengurusan risiko yang ketat seperti mStop, Stop Loss, dan Tracking Stop Loss untuk mengawal risiko perdagangan tunggal

Risiko

  1. Risiko Overtrading. Sistem ini sensitif terhadap jangka masa yang singkat dan mungkin menghasilkan banyak isyarat perdagangan yang menyebabkan overtrading
  2. Risiko penembusan palsu. Penghakiman indikator jangka pendek mungkin berlaku kesalahan penghakiman, menghasilkan isyarat penembusan palsu
  3. Risiko kegagalan penunjuk. Penunjuk teknikal mempunyai batasan tertentu dan mungkin gagal dalam keadaan yang melampau

Oleh itu, sistem ini boleh dioptimumkan dalam beberapa aspek:

  1. Menyesuaikan parameter penunjuk agar lebih sesuai dengan keadaan pasaran yang berbeza
  2. Meningkatkan syarat penapisan untuk mengurangkan kekerapan transaksi dan mencegah perdagangan berlebihan
  3. Mengoptimumkan strategi hentian dan hentian yang lebih sesuai dengan pergerakan pasaran
  4. Uji kombinasi indikator yang berbeza untuk mencari penyelesaian terbaik

ringkaskan

Sistem pengesanan pasaran lembu secara keseluruhan adalah sistem perdagangan mekanikal yang sangat praktikal untuk mengesan trend. Ia menggunakan gabungan indikator dari pelbagai bingkai masa untuk mengenal pasti trend pasaran dan masa masuk utama. Dengan pengaturan parameter yang munasabah dan pengujian pengoptimuman berterusan, sistem ini dapat menyesuaikan diri dengan kebanyakan keadaan pasaran dan mencapai keuntungan yang stabil.

Kod sumber strategi
/*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)