Stratégie de combinaison de 123 points d'inversion et de pivot

Auteur:ChaoZhang est là., Date: 2024-01-16 15:48:44 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie combine la stratégie de modèle d'inversion 123 et la stratégie de point pivot pour obtenir un taux de gain plus élevé. La stratégie de modèle d'inversion 123 identifie les points d'inversion de tendance, tandis que la stratégie de point pivot détermine les niveaux de support et de résistance clés. En combinant les deux, elle peut capturer les tendances tout en identifiant des prix d'entrée et de sortie spécifiques.

La logique de la stratégie

123 Stratégie d'inversion du modèle

Cette stratégie identifie les points d'inversion de tendance à l'aide de l'indicateur d'oscillateur stochastique. Il va long lorsque le prix de clôture est supérieur à celui de la clôture précédente pendant 2 jours consécutifs et que le STO lent de 9 périodes est inférieur à 50; il va court lorsque le prix de clôture est inférieur à celui de la clôture précédente pendant 2 jours consécutifs et que le STO rapide de 9 périodes est supérieur à 50.

Stratégie des points pivots

Cette stratégie calcule 3 niveaux de soutien et 3 niveaux de résistance en fonction des prix des journées précédentes: haut, bas et bas. Point pivot = (haut + bas + près) / 3 Soutien 1 = 2Point de pivotement haut Résistance 1 = 2Point de pivotement bas Le support 2 = point pivot (résistance 1 support 1) Résistance 2 = Point pivot + (Résistance 1 Soutien 1) Le support 3 = bas 2*(haut point pivot) Résistance 3 = Haute + 2*(Pivot Point Basse) Il identifie ensuite l'entrée et la sortie en fonction des niveaux de support et de résistance.

Les avantages

  1. Combine les atouts de deux types de stratégies pour obtenir un taux de gain plus élevé
  2. Le modèle 123 identifie efficacement les renversements de tendance à court terme
  3. Les points pivot utilisent les niveaux clés S/R pour filtrer les fausses pauses

Risques et couverture

  1. Le double STO peut être retardé et manquer des revers à court terme
  2. Les points pivots peuvent ne pas toujours tenir, les écarts peuvent continuer
  3. Les paramètres peuvent être ajustés ou combinés avec d'autres indicateurs pour couvrir les risques

Directions d'optimisation

  1. Effets d'essai de différents ensembles de paramètres
  2. Combiner avec d'autres indicateurs/modèles pour améliorer les performances
  3. Incorporer l'apprentissage automatique pour optimiser dynamiquement les paramètres

Résumé

Cette stratégie combine ingénieusement l'identification de tendance et les niveaux de prix clés, lui permettant de repérer les renversements tout en utilisant S / R pour filtrer les signaux.


/*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 )

Plus de