
Artikel ini memperkenalkan strategi perdagangan kuantitatif berdasarkan penurunan peratusan. Strategi ini menentukan masa untuk membeli dan menjual dengan menetapkan penurunan peratusan dan memilih kitaran masa yang sesuai.
Strategi ini berpusat pada menghasilkan isyarat dagangan berdasarkan peratusan perubahan harga. Pertama, pengguna perlu menetapkan penurunan peratusan yang menunjukkan seberapa besar perubahan harga berbanding harga penutupan sebelumnya. Selain itu, pengguna juga perlu memilih satu tempoh masa, seperti 1 minit, 1 jam, 1 hari, dan lain-lain, untuk mengira harga tertinggi, terendah dan harga penutupan dalam tempoh masa tersebut.
Artikel ini memperkenalkan satu strategi perdagangan kuantitatif berasaskan peratusan penurunan nilai, yang secara automatik menghasilkan isyarat beli dan jual dengan menetapkan peratusan penurunan nilai dan kitaran masa perubahan harga. Strategi ini mudah dikendalikan, fleksibel, dan luas, tetapi juga menghadapi risiko seperti turun naik pasaran, parameter dan overfit. Dengan cara seperti penambahan mekanisme hentian hentian, parameter penyesuaian dinamik dan gabungan dengan petunjuk teknikal lain, anda dapat mengoptimumkan lagi prestasi strategi ini, meningkatkan keberkesanannya dalam perdagangan sebenar.
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("GBS Percentage", overlay=true)
// Define input options for percentage settings and timeframe
percentage = input.float(1.04, title="Percentage Threshold", minval=0.01, step=0.01) / 100
timeframe = input.timeframe("D", title="Timeframe", options=["1", "3", "5", "15", "30", "60", "240", "D", "W", "M"])
// Calculate high, low, and close of the selected timeframe
high_timeframe = request.security(syminfo.tickerid, timeframe, high)
low_timeframe = request.security(syminfo.tickerid, timeframe, low)
close_timeframe = request.security(syminfo.tickerid, timeframe, close)
// Calculate the percentage threshold based on the previous close
threshold = close_timeframe[1] * percentage
// Define conditions for Buy and Sell
buyCondition = high_timeframe > (close_timeframe[1] + threshold)
sellCondition = low_timeframe < (close_timeframe[1] - threshold)
// Entry and exit rules
if (buyCondition)
strategy.entry("Buy", strategy.long)
if (sellCondition)
strategy.entry("Sell", strategy.short)
// Close the positions based on the conditions
if (sellCondition)
strategy.close("Buy")
if (buyCondition)
strategy.close("Sell")
// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Entry", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Entry", color=color.red, style=shape.triangledown, location=location.abovebar)
// Plot the equity curve of the strategy
plot(strategy.equity, title="Equity", color=color.blue, linewidth=2)