Strategi pelacakan pembalikan multi-faktor

Penulis:ChaoZhang, Tanggal: 2023-09-15 14:31:15
Tag:

Tinjauan Strategi

Strategi pelacakan pembalikan multi-faktor menghasilkan sinyal perdagangan dengan menggabungkan pola pembalikan harga dan indikator overbought-oversold.

Logika Strategi

Strategi ini terdiri dari dua modul:

  1. 123 Modul Pola Reversi
  • Pergi pendek saat melihat tinggi baru 2 hari tetapi mundur pada hari ke-3, menunjukkan potensi tinggi jangka pendek.

  • Pergi panjang saat melihat titik terendah baru 2 hari tetapi bangkit pada hari ke-3, menunjukkan potensi terendah jangka pendek.

  1. Reverse Engineering RSI Module
  • Mengidentifikasi titik pembalikan dengan menyesuaikan secara dinamis RSI garis overbought dan oversold.

  • Pergi pendek ketika RSI di atas garis overbought yang disesuaikan, pergi panjang ketika RSI di bawah garis oversold yang disesuaikan.

Sinyal perdagangan hanya dihasilkan ketika kedua modul sejajar.

Keuntungan terbesarnya adalah menggabungkan beberapa faktor untuk menentukan struktur tinggi dan rendah, menyaring beberapa sinyal palsu dari faktor individu, dan meningkatkan tingkat kemenangan perdagangan yang sebenarnya.

Keuntungan dari Strategi

  • Sintesis multi-faktor untuk identifikasi tinggi/rendah yang komprehensif

  • Menggabungkan pola pembalikan dan indikator overbought/oversold

  • Menyaring pembalikan palsu, meningkatkan akurasi

  • Parameter backtest yang dapat dioptimalkan yang dapat disesuaikan dengan pasar yang berbeda

  • Mudah diterapkan untuk replikasi cepat

Peringatan Risiko

  • Sinyal pembalikan mungkin tertunda, perlu pembaruan parameter

  • Mencegah overtrading untuk menghindari lebih banyak komisi

  • Dasar-dasar saham individu masih perlu dipertimbangkan

  • Strategi pembalikan yang lebih cocok untuk indeks dan saham panas

Kesimpulan

Strategi pelacakan pembalikan multi-faktor sangat menggabungkan kekuatan alat kuantum dan pengalaman analisis manual dengan mempertimbangkan beberapa perspektif untuk sinyal perdagangan. Dibandingkan dengan strategi indikator tunggal, strategi ini secara signifikan meningkatkan stabilitas perdagangan dan tingkat kemenangan yang sebenarnya. Strategi ini layak diverifikasi dan dioptimalkan di backtest pertama, kemudian secara bertahap diimplementasikan dalam perdagangan langsung, dengan nilai praktis yang sangat jelas.


/*backtest
start: 2023-08-15 00:00:00
end: 2023-09-14 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 15/06/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The related article is copyrighted material from
// Stocks & Commodities.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


RE_RSI(Value,WildPer) =>
    pos = 0.0
    AUC = 0.0
    ADC = 0.0
    ExpPer = 2 * WildPer - 1
    K = 2 / (ExpPer + 1)
    AUC := iff(close > close[1], K * (close - close[1]) + (1 - K) * nz(AUC[1], 1), (1-K) * nz(AUC[1], 1))
    ADC := iff(close > close[1], (1-K) * nz(ADC[1], 1), K * (close[1] - close) + (1 - K) * nz(ADC[1], 1))
    nVal = (WildPer - 1) * (ADC * Value / (100 - Value) - AUC)
    nRes = iff(nVal >= 0, close + nVal, close + nVal * (100 - Value) / Value)
    pos:= iff(nRes > close, -1,
    	   iff(nRes < close, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Reverse Engineering RSI, by Giorgos Siligardos", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Reverse Engineering RSI ----")
Value = input(50, minval=1)
WildPer = input(14,minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRE_RSI = RE_RSI(Value,WildPer)
pos = iff(posReversal123 == 1 and posRE_RSI == 1 , 1,
	   iff(posReversal123 == -1 and posRE_RSI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Lebih banyak