Strategi ini membantu peniaga untuk menangkap peluang perubahan harga jangka pendek dengan mengira kadar perubahan dalam jangka masa tertentu untuk menentukan masa pembelian dan penjualan.
Strategi ini adalah berdasarkan kepada beberapa petunjuk berikut:
Peraturan pembelian:
Peraturan jualan khusus:
Saiz pesanan ditetapkan berdasarkan peratusan daripada jumlah hak milik (default 96%), yang boleh memberikan kesan leverage.
Strategi ini mempunyai kelebihan utama:
Secara keseluruhannya, strategi ini menggunakan alat seperti kadar perubahan harga, indikator SMA, dan lain-lain untuk mencapai prestasi yang lebih baik dalam keadaan yang bergelombang.
Strategi ini juga mempunyai risiko:
Perubahan kadar dan parameter SMA yang tidak betul boleh menyebabkan isyarat perdagangan yang salah atau salah. Parameter perlu disesuaikan untuk pasaran yang berbeza.
Saiz pesanan melebihi konvensyen meningkatkan risiko. Adalah disyorkan untuk mengoptimumkan nisbah pesanan pada peringkat ujian.
Tracking Stop Loss Dalam keadaan gegaran, mungkin terlambat. Anda boleh mempertimbangkan untuk menyesuaikan Stop Loss.
Strategi Transactionsstab boleh berjalan mudah terdedah kepada lebihan. Ia harus digabungkan dengan penilaian trend dan pengurusan risiko hentikan kerugian.
Risiko kecocokan data. Strategi harus disahkan dengan pelbagai ujian di pasaran yang berbeza.
Bagi risiko ini, risiko boleh dikawal melalui pengoptimuman parameter, penyesuaian pesanan, pengoptimuman strategi hentikan kerugian, dan pengesahan lapangan.
Strategi ini juga boleh dioptimumkan dengan:
Menambah penilaian petunjuk teknikal lain, seperti kadar turun naik, jumlah transaksi, dan lain-lain, untuk meningkatkan ketepatan isyarat.
Mengoptimumkan jumlah transaksi, mengurangkan kesan transaksistab dengan mengurangkan kekerapan transaksi.
Bersama-sama dengan strategi penembusan, menetapkan isyarat perdagangan penembusan berhampiran tahap harga kritikal.
Tetapan parameter yang dioptimumkan secara automatik menggunakan kaedah pembelajaran mesin.
Kaedah ini diuji dalam pelbagai pasaran untuk jangka masa yang panjang untuk meningkatkan daya tahan dan adaptasi.
Mengambil kira ciri-ciri pelbagai jenis seperti saham, mata wang asing, dan lain-lain, dan menetapkan kombinasi parameter khusus.
Menerusi hasil disk, terus mengulangi isyarat strategi pengoptimuman dan kaedah kawalan risiko.
Strategi ini mencari peluang perdagangan dalam turun naik harga garis pendek dengan menilai kadar perubahan dan indikator SMA. Ia membantu menangkap trend cepat, tetapi juga perlu berhati-hati dengan kawalan risiko. Ketahanan dan kesesuaian strategi dapat ditingkatkan secara berterusan melalui pengoptimuman parameter, penyesuaian pesanan, penambahbaikan strategi stop loss, dan verifikasi saham.
/*backtest
start: 2022-09-21 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// @version=4
// Author: Sonny Parlin (highschool dropout)
// Best if run on 5m timeframe
strategy(shorttitle="ROC+Strategy", title="Rate of Change Strategy",
overlay=true, currency=currency.USD,
initial_capital=10000)
// Inputs and variables
ss = input(14, minval=10, maxval=50, title="SMA Fast (days)")
ff = input(100, minval=55, maxval=200, title="SMA Slow (days)")
ref = input(30, minval=20, maxval=50, title="SMA Reference (days)")
lowOffset = input(0.023, "ROC Low (%)", minval=0, step=0.01)
highOffset = input(0.047, "ROC High (%)", minval=0, step=0.01)
orderStake = input(0.96, "Order Stake (%)", minval=0, step=0.01)
lookback = input(12, "Lookback Candles", minval=1, step=1)
// SMA
smaFast = sma(close, ss)
smaSlow = sma(close, ff)
smaRef = sma(close, ref)
ROC = (max(close[lookback],close) - min(close[lookback],close)) / max(close[lookback],close)
// Set up SMA plot but don't show by default
plot(smaFast, "smaFast", color=#00ff00, display = 0)
plot(smaSlow, "smaSlow", color=#ff0000, display = 0)
plot(smaRef, "smaRef", color=#ffffff, display = 0)
// The buy stratey:
// Guard that the low is under our SMA Reference line
// Guard that the rate of change over the lookback period is greater than our
// ROC lowOffset %, default is 0.023. (low < smaRef) and (ROC > lowOffset)
// SMA fast is on the rise and SMA slow is falling and they are very likely
// to cross. (rising(smaFast,1)) and (falling(smaSlow, 1))
enterLong = (low < smaRef) and (ROC > lowOffset) and (rising(smaFast,1)) and (falling(smaSlow,1))
// The sell Strategy:
// Guard that close is higher than our SMA reference line and that the rate of
// change over the lookback period is greater than our highOffset %, default
// is 0.047. (close > smaRef) and (ROC > highOffset)
// Guard that close has risen by 3 candles in a row (rising(close,3))
// Guard that we currently have profit (strategy.openprofit > 0)
// Guard that SMA fast is higher than smaSlow (smaFast > smaSlow)
// If it keeps going up past our close position the trailing stoploss will kick in!
enterShort = (close > smaRef) and (ROC > highOffset) and (rising(close,3)) and (strategy.openprofit > 0) and (smaFast > smaSlow)
// Order size is based on total equity
// Example 1:
// startingEquity = 2000
// close = 47434.93
// orderStake = 0.45
// (2,000 × orderStake) / close = orderSize = 0.0189733599 = approx $900
// Example 2:
// startingEquity = 2000
// close = 1.272
// orderStake = 0.45
// (startingEquity × orderStake) / close = orderSize = 707.5471698113 = approx $900
orderSize = (strategy.equity * orderStake) / close
// Trailing Stoploss
// I'm using 2.62 as my default value, play with this for different results.
longTrailPerc = input(title="Trailing Stoploss (%)",
type=input.float, minval=0.0, step=0.1, defval=3.62) * 0.01
longStopPrice = 0.0
longStopPrice := if (strategy.position_size > 0)
stopValue = close * (1 - longTrailPerc)
max(stopValue, longStopPrice[1])
else
0
if (enterLong)
strategy.entry("Open Long Position", strategy.long, orderSize, when=strategy.position_size <= 0)
if (enterShort)
strategy.exit(id="Close Long Position", stop=longStopPrice)
//plot(strategy.equity)