
Cette stratégie combine les deux sous-stratégies du double-facteur inverse et de la tendance du volume de prix amélioré pour obtenir un signal de négociation intégré. La stratégie du double-facteur inverse est basée sur l’idée de P183 dans le livre d’Ulf Jensen et génère un signal lorsque le cours de liquidation est inversé sur deux jours et que des conditions d’indicateur aléatoires sont établies.
La stratégie du double facteur inverse utilise le principe de l’inversion des cours de clôture sur deux jours et le jugement de la pluralité d’indicateurs aléatoires. Un signal de tête vide est produit si le prix de clôture du jour précédent était élevé et que le prix de clôture de la clôture a été inversé aujourd’hui et que l’indicateur aléatoire rapide est inférieur à l’indicateur aléatoire lent et que l’indicateur aléatoire rapide est supérieur à 50.
La formule de calcul est la suivante: PxVFactor = PriceFactor + Scale * CumPVT, où PriceFactor est le facteur de prix et CumPVT est l’indicateur d’énergie cumulée. Ensuite, calculez la moyenne mobile simple de longueur de jour de PxVFactor, comparée à la valeur actuelle de PxVFactor, pour déterminer la tendance et la force du marché.
La stratégie combinée prend en compte les signaux des deux sous-stratégies et produit un signal de plus-value correspondant lorsque le double facteur inverse et la tendance du volume de prix amélioré sont en hausse ou en baisse.
En résumé, la stratégie combinant un double facteur de retournement et une tendance à la quantité de prix améliorée, combinée à une analyse des deux dimensions du retournement et de la tendance, peut se vérifier mutuellement et améliorer la stabilité. Il est nécessaire d’ajouter un indicateur de tendance comme jugement auxiliaire dans une stratégie de retournement facile à manipuler.
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 23/02/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
MPVT(Level,Scale,Length) =>
pos = 0.0
xCumPVT = 0.0
xOHLC4 = ohlc4
xV = volume
rV = xV / 50000
xCumPVT := nz(xCumPVT[1]) + (rV * (xOHLC4 - xOHLC4[1]) / xOHLC4[1])
nRes = Level + Scale * xCumPVT
xMARes = sma(nRes, Length)
pos:= iff(nRes > xMARes, 1,
iff(nRes < xMARes, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Modified Price-Volume Trend", 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, "---- Price-Volume Trend ----")
LevelPVT = input(1)
Scale = input(1)
LengthPVT = input(23)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMPVT = MPVT(LevelPVT,Scale,LengthPVT)
pos = iff(posReversal123 == 1 and posMPVT == 1 , 1,
iff(posReversal123 == -1 and posMPVT == -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 )