Sumber daya yang dimuat... Pemuatan...

Strategi Kombinasi 123 Reversal dan Pivot Point

Penulis:ChaoZhang, Tanggal: 2024-01-16 15:48:44
Tag:

img

Gambaran umum

Strategi ini menggabungkan strategi pola pembalikan 123 dan strategi titik pivot untuk mencapai tingkat kemenangan yang lebih tinggi. Strategi pola pembalikan 123 mengidentifikasi titik pembalikan tren, sementara strategi titik pivot menentukan tingkat dukungan dan resistensi utama. Dengan menggabungkan keduanya, ia dapat menangkap tren sambil mengidentifikasi harga masuk dan keluar tertentu.

Logika Strategi

123 Strategi pola pembalikan

Strategi ini mengidentifikasi titik pembalikan tren menggunakan indikator Stochastic Oscillator. Ini akan panjang ketika harga penutupan lebih tinggi dari penutupan sebelumnya selama 2 hari berturut-turut dan STO lambat 9 periode di bawah 50; Ini akan pendek ketika harga penutupan lebih rendah dari penutupan sebelumnya selama 2 hari berturut-turut dan STO cepat 9 periode di atas 50.

Strategi Titik Pivot

Strategi ini menghitung 3 level support dan 3 level resistance berdasarkan harga tinggi, rendah dan dekat hari sebelumnya. Titik Pivot = (tinggi + rendah + dekat) / 3 Dukungan 1 = 2Titik Pivot Tinggi Resistensi 1 = 2Titik Pivot Rendah Dukungan 2 = Titik Pivot (Resistance 1 Support 1) Resistensi 2 = Titik Pivot + (Resistensi 1 Dukungan 1) Dukungan 3 = Rendah 2*(tinggi Titik Pivot) Resistensi 3 = Tinggi + 2*(Pivot Point Rendah) Kemudian mengidentifikasi masuk dan keluar berdasarkan level support dan resistance.

Keuntungan

  1. Menggabungkan kekuatan dari dua jenis strategi yang berbeda untuk mencapai tingkat kemenangan yang lebih tinggi
  2. Pola 123 secara efektif mengidentifikasi pembalikan tren jangka pendek
  3. Titik pivot menggunakan tingkat S/R kunci untuk menyaring pemutusan palsu

Risiko dan Hedging

  1. STO ganda mungkin tertinggal dan melewatkan pembalikan jangka pendek
  2. Titik pivot mungkin tidak selalu bertahan, breakout bisa berlanjut
  3. Parameter dapat disesuaikan atau dikombinasikan dengan indikator lain untuk lindung nilai risiko

Arahan Optimasi

  1. Dampak uji dari set parameter yang berbeda
  2. Gabungkan dengan indikator/pola lain untuk meningkatkan kinerja
  3. Mengintegrasikan pembelajaran mesin untuk mengoptimalkan parameter secara dinamis

Ringkasan

Strategi ini dengan cerdik menggabungkan identifikasi tren dan tingkat harga kunci, memungkinkan untuk melihat pembalikan sambil menggunakan S / R untuk menyaring sinyal. Perbaikan lebih lanjut dapat dilakukan melalui penyesuaian parameter dan kombinasi dengan strategi lain.


/*backtest
start: 2023-12-16 00:00:00
end: 2024-01-15 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/04/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
// Pivot points simply took the high, low, and closing price from the previous period and 
// divided by 3 to find the pivot. From this pivot, traders would then base their 
// calculations for three support, and three resistance levels. The calculation for the most 
// basic flavor of pivot points, known as ‘floor-trader pivots’, along with their support and 
// resistance levels.
//
// 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


PP2(res,SellFrom,BuyFrom) =>
    pos = 0.0
    xHigh  = security(syminfo.tickerid,res, high)
    xLow   = security(syminfo.tickerid,res, low)
    xClose = security(syminfo.tickerid,res, close)
    vPP = (xHigh+xLow+xClose) / 3
    vS1 = 2*vPP - xHigh 
    vR1 = 2*vPP-xLow
    vS2 = vPP - (vR1 - vS1)
    vR2 = vPP + (vR1 - vS1)
    vS3 = xLow - 2 * (xHigh - vPP)
    vR3 = xHigh + 2 * (vPP - xLow) 
    S =  iff(BuyFrom == "S1", vS1, 
          iff(BuyFrom == "S2", vS2,
           iff(BuyFrom == "S3", vS3,0)))
    B =  iff(SellFrom == "R1", vR1, 
          iff(SellFrom == "R2", vR2,
           iff(SellFrom == "R3", vR3,0)))
    pos := iff(close > B, 1,
             iff(close < S, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Pivot Point V2)", 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, "---- Pivot Point V2 ----")
res = input(title="Resolution", type=input.resolution, defval="D")
SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3"])
BuyFrom = input(title="Buy from ", defval="S1", options=["S1", "S2", "S3"])
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPP2 = PP2(res,SellFrom,BuyFrom)
pos = iff(posReversal123 == 1 and posPP2 == 1 , 1,
	   iff(posReversal123 == -1 and posPP2 == -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