Strategi ini adalah strategi perdagangan komprehensif yang digunakan untuk Bitcoin dan mata wang kripto lain dalam jangka masa 15 minit. Ia menggabungkan beberapa indikator untuk menghasilkan isyarat beli dan jual, termasuk purata bergerak indeks tiga kali ganda, purata pergerakan sebenar, dan grafik garisan penyaring keseimbangan, dan mempunyai mekanisme pengurusan risiko seperti stop loss.
Strategi ini menggunakan pelbagai indikator:
TEMA: 3 TEMA yang menggunakan panjang dan sumber yang berbeza, dikira berdasarkan harga tinggi, rendah dan harga penutupan.
Rata-rata Ganjaran Pergerakan Sebenar (ATR): Menggunakan EMA yang lancar untuk mengira kadar pergerakan pasaran.
Penunjuk Super Trend: menentukan arah trend berdasarkan ATR dan kelipatan.
Purata bergerak sederhana ((SMA): SMA untuk TEMA jangka pendek dikira sebagai nilai rata.
Harga penutupan garisan keseimbangan: digunakan untuk trend pengesahan tambahan.
Apabila TEMA jangka pendek lebih tinggi daripada dua TEMA jangka panjang, indikator overtrend adalah bullish, TEMA jangka pendek lebih tinggi daripada SMA, dan harga penutupan garisan keseimbangan lebih tinggi daripada hari sebelumnya, menghasilkan isyarat beli.
Apabila TEMA jangka pendek adalah lebih rendah daripada dua TEMA jangka panjang, penunjuk overtrend turun, TEMA jangka pendek adalah lebih rendah daripada SMA, dan harga penutupan garisan keseimbangan adalah lebih rendah daripada hari sebelumnya, menghasilkan isyarat jual.
Hentian dan kerugian ditetapkan sebagai 1% dan 3% daripada harga kemasukan.
Gabungan beberapa indikator faktor seperti trend, kadar turun naik, bentuk, dan lain-lain dapat meningkatkan ketepatan penghakiman dan mengelakkan isyarat palsu.
Tetapan henti rugi yang munasabah dapat mengunci keuntungan dan juga dapat mengehadkan kerugian individu secara berkesan.
Parameter penunjuk boleh diselaraskan secara fleksibel, menyesuaikan diri dengan perubahan pasaran, mencari kombinasi terbaik.
Dengan penambahan faktor yuran, keputusan pengesahan akan lebih dekat dengan prestasi transaksi sebenar.
Terlalu banyak kombinasi indikator juga boleh menyebabkan kesalahan penghakiman, dan keberkesanan indikator perlu dinilai dengan teliti.
Operasi 15 minit lebih terdedah kepada kejadian yang tidak dijangka dan mempunyai risiko yang lebih besar untuk kejadian yang tidak dijangka.
Strategi ini masih perlu disahkan dalam tempoh yang lebih lama dan dalam pelbagai pasaran untuk memastikan kestabilan.
Kombinasi pelbagai parameter membawa banyak parameter, dan mengoptimumkan semua kombinasi parameter memerlukan masa yang lama.
Uji balas untuk menguji kesan peningkatan sebenar setiap indikator, mengelakkan penggunaan indikator berlebihan.
Ujian Parameter Optimisasi Hasil Di Lebih Banyak Pasaran, Memastikan Kestabilan Dan Ketergantungan.
Pengendalian risiko yang lebih lanjut boleh dilakukan dengan cara-cara seperti bergerak berhenti, berhenti berhenti dan sebagainya.
Kos slippoint dan lain-lain menjadikan pengukuran lebih realistik.
Strategi ini menggabungkan beberapa indikator dan mekanisme kawalan risiko yang direka untuk perdagangan kitaran 15 minit Bitcoin. Ruang untuk pengoptimuman masih besar dan memerlukan penilaian mendalam mengenai kesan indikator, ujian kestabilan pasaran yang luas, dan penambahan lebih banyak pertimbangan dalam talian untuk mencari kombinasi parameter terbaik dalam strategi berbilang faktor.
/*backtest
start: 2023-08-25 00:00:00
end: 2023-09-09 00:00:00
period: 10m
basePeriod: 1m
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/
// © deperp
//@version=5
strategy('3kilos', shorttitle='3kilos BTC 15m', overlay=true, initial_capital=100000, max_bars_back=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.07, pyramiding=0)
short = input.int(50, minval=1)
srcShort = input(high, title='TEMA short')
long = input.int(100, minval=1)
srcLong = input(low, title='TEMA long 2')
long2 = input.int(350, minval=1)
srcLong2 = input(close, title='TEMA long 3')
atrLength = input.int(550, title='ATR Length', minval=1)
mult = input.float(3, title="Multiplier", minval=0.5, step=1)
smaPeriod = input.int(100, title="SMA Period", minval=1)
takeProfitPercent = input.float(1, title="Take Profit (%)", minval=0.1) / 100
stopLossPercent = input.float(3, title="Stop Loss (%)", minval=0.1) / 100
tema(src, length) =>
ema1 = ta.ema(src, length)
ema2 = ta.ema(ema1, length)
ema3 = ta.ema(ema2, length)
3 * (ema1 - ema2) + ema3
tema1 = tema(srcShort, short)
plot(tema1, color=color.new(color.red, 0), linewidth=2)
tema2 = tema(srcLong, long)
plot(tema2, color=color.new(color.blue, 0), linewidth=2)
tema3 = tema(srcLong2, long2)
plot(tema3, color=color.new(color.green, 0), linewidth=2)
// Custom ATR calculation with EMA smoothing
atr_ema(src, length) =>
trueRange = math.max(math.max(high - low, math.abs(high - close[1])), math.abs(low - close[1]))
emaTrueRange = ta.ema(trueRange, length)
emaTrueRange
// Calculate ATR with EMA smoothing
atr = atr_ema(close, atrLength)
// Calculate Supertrend
var float up = na
var float dn = na
var bool uptrend = na
up := na(up[1]) ? hl2 - (mult * atr) : uptrend[1] ? math.max(hl2 - (mult * atr), up[1]) : hl2 - (mult * atr)
dn := na(dn[1]) ? hl2 + (mult * atr) : uptrend[1] ? hl2 + (mult * atr) : math.min(hl2 + (mult * atr), dn[1])
uptrend := na(uptrend[1]) ? true : close[1] > dn[1] ? true : close[1] < up[1] ? false : uptrend[1]
// Calculate SMA
sma = ta.sma(tema1, smaPeriod)
// Heikin-Ashi Close
haTicker = ticker.heikinashi(syminfo.tickerid)
haClose = request.security(haTicker, timeframe.period, close)
// Trend determination using Heikin-Ashi Close
longC = tema1 > tema2 and tema1 > tema3 and uptrend and tema1 > sma and haClose > haClose[1]
shortC = tema1 < tema2 and tema1 < tema3 and not uptrend and tema1 < sma and haClose < haClose[1]
alertlong = longC and not longC[1]
alertshort = shortC and not shortC[1]
useDateFilter = input.bool(true, title="Begin Backtest at Start Date",
group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2023"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
inTradeWindow = true
stopLossLevelLong = close - atr * mult
stopLossLevelShort = close + atr * mult
longTakeProfitLevel = close * (1 + takeProfitPercent)
longStopLossLevel = close * (1 - stopLossPercent)
shortTakeProfitLevel = close * (1 - takeProfitPercent)
shortStopLossLevel = close * (1 + stopLossPercent)
if inTradeWindow and longC
strategy.entry('Long', strategy.long, comment='Long')
strategy.exit("TP Long", "Long", limit=longTakeProfitLevel, stop=longStopLossLevel, comment="TP/SL Long")
if inTradeWindow and shortC
strategy.entry('Short', strategy.short, comment='Short')
strategy.exit("TP Short", "Short", limit=shortTakeProfitLevel, stop=shortStopLossLevel, comment="TP/SL Short")
// Alerts
alertcondition(longC, title='Long', message=' Buy Signal ')
alertcondition(shortC, title='Short', message=' Sell Signal ')