Artikel ini terutamanya memperkenalkan strategi perdagangan saham piramid yang direka berdasarkan penunjuk Indeks Kekuatan Relatif (RSI). Strategi ini menggunakan penunjuk RSI untuk menentukan kawasan saham yang terlalu banyak dibeli dan terlalu banyak dijual dan melaksanakan keuntungan melalui prinsip piramid.
Strategi ini menggabungkan penunjuk RSI dengan strategi piramid. Semasa menilai status overbought dan oversold, ia boleh memperoleh lebih banyak pulangan melalui pembelian tambahan. Walaupun ketepatan penilaian RSI perlu ditingkatkan, melalui pengoptimuman parameter yang munasabah dan kombinasi dengan penunjuk lain, ia boleh membentuk strategi perdagangan yang berkesan. Strategi ini mempunyai beberapa keseragaman dan merupakan kaedah perdagangan kuantitatif yang agak mudah dan mudah.
/*backtest start: 2023-12-30 00:00:00 end: 2024-01-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © RafaelZioni strategy(title='Simple RSI strategy', overlay=false) SWperiod = 1 look = 0 OverBought = input(80, minval=50) OverSold = input(25, maxval=50) bandmx = hline(100) bandmn = hline(0) band1 = hline(OverBought) band0 = hline(OverSold) //band50 = hline(50, color=black, linewidth=1) fill(band1, band0, color=color.purple, transp=98) src = close len = input(5, minval=1, title="RSI Length") up = rma(max(change(src), 0), len) down = rma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down) p = 100 //scale hh = highest(high, p) ll = lowest(low, p) scale = hh - ll //dynamic OHLC dyno = (open - ll) / scale * 100 dynl = (low - ll) / scale * 100 dynh = (high - ll) / scale * 100 dync = (close - ll) / scale * 100 //candle color color_1 = close > open ? 1 : 0 //drawcandle hline(78.6) hline(61.8) hline(50) hline(38.2) hline(23.6) plotcandle(dyno, dynh, dynl, dync, title="Candle", color=color_1 == 1 ? color.green : color.red) plot(10, color=color.green) plot(55, color=color.black) plot(80, color=color.black) plot(90, color=color.red) long = rsi <= OverSold ? 5 : na //Strategy golong = rsi <= OverSold ? 5 : na longsignal = golong //based on https://www.tradingview.com/script/7NNJ0sXB-Pyramiding-Entries-On-Early-Trends-by-Coinrule/ //set take profit ProfitTarget_Percent = input(3) Profit_Ticks = close * (ProfitTarget_Percent / 100) / syminfo.mintick //set take profit LossTarget_Percent = input(10) Loss_Ticks = close * (LossTarget_Percent / 100) / syminfo.mintick //Order Placing strategy.entry("Entry 1", strategy.long, when=strategy.opentrades == 0 and longsignal) strategy.entry("Entry 2", strategy.long, when=strategy.opentrades == 1 and longsignal) strategy.entry("Entry 3", strategy.long, when=strategy.opentrades == 2 and longsignal) strategy.entry("Entry 4", strategy.long, when=strategy.opentrades == 3 and longsignal) strategy.entry("Entry 5", strategy.long, when=strategy.opentrades == 4 and longsignal) strategy.entry("Entry 6", strategy.long, when=strategy.opentrades == 5 and longsignal) strategy.entry("Entry 7", strategy.long, when=strategy.opentrades == 6 and longsignal) if strategy.position_size > 0 strategy.exit(id="Exit 1", from_entry="Entry 1", profit=Profit_Ticks, loss=Loss_Ticks) strategy.exit(id="Exit 2", from_entry="Entry 2", profit=Profit_Ticks, loss=Loss_Ticks) strategy.exit(id="Exit 3", from_entry="Entry 3", profit=Profit_Ticks, loss=Loss_Ticks) strategy.exit(id="Exit 4", from_entry="Entry 4", profit=Profit_Ticks, loss=Loss_Ticks) strategy.exit(id="Exit 5", from_entry="Entry 5", profit=Profit_Ticks, loss=Loss_Ticks) strategy.exit(id="Exit 6", from_entry="Entry 6", profit=Profit_Ticks, loss=Loss_Ticks) strategy.exit(id="Exit 7", from_entry="Entry 7", profit=Profit_Ticks, loss=Loss_Ticks)