
Model tiga faktor yang membantu menentukan pergerakan harga adalah strategi perdagangan short-line yang menggabungkan penilaian multi-faktor. Strategi ini secara komprehensif mempertimbangkan penilaian multi-faktor dari rasio volume transaksi, indikator RSI, indikator MACD, dan indikator garis sinyal untuk menilai perilaku pergerakan harga untuk menemukan peluang perdagangan short-line.
Logika inti dari strategi ini adalah:
Perhitungan indikator teknis seperti rata-rata bergerak cepat, rata-rata bergerak lambat, kurva MACD, garis sinyal;
Untuk menilai rasio volume trading, RSI, MACD, dan kondisi multi-faktor dari sinyal;
Pertimbangan multi-faktor yang komprehensif, yang mengkonfirmasi bahwa saat ini adalah fase harga yang bergejolak, dan ada peluang untuk membeli dan menjual;
Masukkan posisi LONG atau SHORT, dan atur stop loss.
Bila harga mencapai kondisi stop loss atau stop loss, maka posisi tersebut akan ditutup.
Strategi ini fleksibel menggunakan penilaian multi-faktor seperti rasio volume, RSI, MACD, dan indikator garis sinyal untuk menilai perilaku pergerakan harga untuk menangkap peluang perdagangan short-line. Pengadilan kombinasi multi-faktor dapat menghindari sinyal salah yang disebabkan oleh faktor tunggal dan meningkatkan akurasi sinyal.
Strategi ini memiliki keuntungan sebagai berikut:
Strategi ini juga memiliki risiko sebagai berikut:
Untuk mengatasi risiko di atas, Anda dapat mengoptimalkan:
Strategi ini dapat dioptimalkan dalam beberapa hal:
Mengoptimalkan berat multi-faktor, mencapai penyesuaian dinamis. Berdasarkan situasi yang berbeda, penilaian multi-faktor dapat disesuaikan dengan berat, meningkatkan adaptasi;
Bergabung dengan algoritma pembelajaran mesin, untuk mencapai optimasi multi-faktor beradaptasi sendiri. Menggunakan jaringan saraf, algoritma genetik dan lain-lain untuk melatih model multi-faktor, untuk mencapai optimasi parameter otonom;
Optimalkan strategi stop loss. Anda dapat menguji berbagai stop loss tracking dan stop loss mobile untuk menemukan strategi stop loss yang optimal.
Kombinasi dengan indikator teknologi canggih. Dapat menguji indikator lain seperti fluktuasi tingkat, getaran momentum, dan kombinasi faktor-faktor yang kaya.
Strategi pivot memanfaatkan fitur multi-faktor dari interval getaran harga, untuk mencapai strategi perdagangan garis pendek yang efisien. Strategi ini menggunakan penilaian multi-faktor seperti volume, RSI, MACD, dan garis sinyal untuk menentukan waktu jual beli yang optimal. Pemecahan multi-faktor meningkatkan akurasi sinyal, yang bermanfaat untuk mendapatkan keuntungan yang stabil.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("3 10.0 Oscillator Profile Flagging", shorttitle="3 10.0 Oscillator Profile Flagging", overlay=false)
signalBiasValue = input(title="Signal Bias", defval=0.26)
macdBiasValue = input(title="MACD Bias", defval=0.7)
shortLookBack = input( title="Short LookBack", defval=3)
longLookBack = input( title="Long LookBack", defval=6)
takeProfit = input( title="Take Profit", defval=2)
stopLoss = input( title="Stop Loss", defval=0.7)
fast_ma = ta.sma(close, 3)
slow_ma = ta.sma(close, 10)
macd = fast_ma - slow_ma
signal = ta.sma(macd, 16)
hline(0, "Zero Line", color = color.black)
buyVolume = volume*((close-low)/(high-low))
sellVolume = volume*((high-close)/(high-low))
buyVolSlope = buyVolume - buyVolume[1]
sellVolSlope = sellVolume - sellVolume[1]
signalSlope = ( signal - signal[1] )
macdSlope = ( macd - macd[1] )
plot(macd, color=color.blue, title="Total Volume")
plot(signal, color=color.orange, title="Total Volume")
plot(macdSlope, color=color.green, title="MACD Slope")
plot(signalSlope, color=color.red, title="Signal Slope")
intrabarRange = high - low
rsi = ta.rsi(close, 14)
rsiSlope = rsi - rsi[1]
plot(rsiSlope, color=color.black, title="RSI Slope")
getRSISlopeChange(lookBack) =>
j = 0
for i = 0 to lookBack
if ( rsi[i] - rsi[ i + 1 ] ) > -5
j += 1
j
getBuyerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if buyVolume[i] > sellVolume[i]
j += 1
j
getSellerVolBias(lookBack) =>
j = 0
for i = 1 to lookBack
if sellVolume[i] > buyVolume[i]
j += 1
j
getVolBias(lookBack) =>
float b = 0.0
float s = 0.0
for i = 1 to lookBack
b += buyVolume[i]
s += sellVolume[i]
b > s
getSignalBuyerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] > signalBiasValue
j += 1
j
getSignalSellerBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < ( 0.0 - signalBiasValue )
j += 1
j
getSignalNoBias(lookBack) =>
j = 0
for i = 1 to lookBack
if signal[i] < signalBiasValue and signal[i] > ( 0.0 - signalBiasValue )
j += 1
j
getPriceRising(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] > close[i + 1]
j += 1
j
getPriceFalling(lookBack) =>
j = 0
for i = 1 to lookBack
if close[i] < close[i + 1]
j += 1
j
getRangeNarrowing(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] < intrabarRange[i + 1]
j+= 1
j
getRangeBroadening(lookBack) =>
j = 0
for i = 1 to lookBack
if intrabarRange[i] > intrabarRange[i + 1]
j+= 1
j
bool isNegativeSignalReversal = signalSlope < 0.0 and signalSlope[1] > 0.0
bool isNegativeMacdReversal = macdSlope < 0.0 and macdSlope[1] > 0.0
bool isPositiveSignalReversal = signalSlope > 0.0 and signalSlope[1] < 0.0
bool isPositiveMacdReversal = macdSlope > 0.0 and macdSlope[1] < 0.0
bool hasBearInversion = signalSlope > 0.0 and macdSlope < 0.0
bool hasBullInversion = signalSlope < 0.0 and macdSlope > 0.0
bool hasSignalBias = math.abs(signal) >= signalBiasValue
bool hasNoSignalBias = signal < signalBiasValue and signal > ( 0.0 - signalBiasValue )
bool hasSignalBuyerBias = hasSignalBias and signal > 0.0
bool hasSignalSellerBias = hasSignalBias and signal < 0.0
bool hasPositiveMACDBias = macd > macdBiasValue
bool hasNegativeMACDBias = macd < ( 0.0 - macdBiasValue )
bool hasBullAntiPattern = ta.crossunder(macd, signal)
bool hasBearAntiPattern = ta.crossover(macd, signal)
bool hasSignificantBuyerVolBias = buyVolume > ( sellVolume * 1.5 )
bool hasSignificantSellerVolBias = sellVolume > ( buyVolume * 1.5 )
// 202.30 Profit 55.29% 5m
if ( ( getVolBias(longLookBack) == false ) and rsi <= 41 and math.abs(rsi - rsi[shortLookBack]) > 1 and hasNoSignalBias and rsiSlope > 1.5 and close > open)
strategy.entry("5C1", strategy.long, qty=1.0)
strategy.exit("TPS", "5C1", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)
// 171.70 Profit 50.22% 5m
if ( getVolBias(longLookBack) == true and rsi > 45 and rsi < 55 and macdSlope > 0 and signalSlope > 0)
strategy.entry("5C2", strategy.long, qty=1.0)
strategy.exit("TPS", "5C2", limit=strategy.position_avg_price + takeProfit, stop=strategy.position_avg_price - stopLoss)
// 309.50 Profit 30.8% 5m 2 tp .7 sl 289 trades
if ( macd > macdBiasValue and macdSlope > 0)
strategy.entry("5P1", strategy.short, qty=1.0)
strategy.exit("TPS", "5P1", limit=strategy.position_avg_price - takeProfit, stop=strategy.position_avg_price + stopLoss)