Cette stratégie est une combinaison de deux stratégies de trading quantitatif, visant à produire des signaux de trading plus précis et plus fiables. La première stratégie est basée sur le revirement des prix, la seconde sur l’analyse du volume de transactions. La combinaison des signaux peut améliorer efficacement la probabilité de profit.
La stratégie est composée de deux volets:
Utilisez l’indicateur STO pour juger des signaux de renversement. Faites plus lorsque le cours de clôture de deux jours augmente et que la ligne lente STO est inférieure à 50; Faites vide lorsque le cours de clôture de deux jours baisse et que la ligne rapide STO est supérieure à 50.
Calculer la relation entre le prix et la quantité de transaction sur une période donnée, déterminer la direction de la polyvalence et procéder à un traitement linéaire uniforme.
Les deux stratégies sont les mêmes: plus c’est plus, moins c’est moins.
Les signaux combinés améliorent la qualité des signaux, et la probabilité d’un faux signal dans l’une ou l’autre des stratégies est considérablement réduite.
Les mesures suivantes peuvent réduire le risque:
Cette stratégie peut être optimisée dans les domaines suivants:
Ajustez les paramètres K, D, etc. pour trouver la meilleure combinaison
Ajout d’une aide au jugement avec des indicateurs tels que MACD, BOLL
Test de paramètres à différentes périodes pour obtenir un jugement plus stable
Par exemple, lorsque la déformation se produit, on rentre dans le jeu.
Différentes variétés ne possèdent pas forcément les mêmes paramètres et doivent être testées séparément.
Cette stratégie permet d’améliorer efficacement la qualité et l’exactitude du signal en combinant deux types différents de stratégies, l’inversion et la conversion. Cependant, il faut également prêter attention à l’optimisation des paramètres, aux indicateurs techniques auxiliaires, etc., pour améliorer l’efficacité de la stratégie.
/*backtest
start: 2023-09-13 00:00:00
end: 2023-09-20 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/10/2020
// 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
// This is another version of FVE indicator that we have posted earlier
// in this forum.
// This version has an important enhancement to the previous one that`s
// especially useful with intraday minute charts.
// Due to the volatility had not been taken into account to avoid the extra
// complication in the formula, the previous formula has some drawbacks:
// The main drawback is that the constant cutoff coefficient will overestimate
// price changes in minute charts and underestimate corresponding changes in
// weekly or monthly charts.
// And now the indicator uses adaptive cutoff coefficient which will adjust to
// all time frames automatically.
//
// 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
FVI(Samples,Perma,Cintra,Cinter) =>
pos = 0
xhl2 = hl2
xhlc3 = hlc3
xClose = close
xIntra = log(high) - log(low)
xInter = log(xhlc3) - log(xhlc3[1])
xStDevIntra = stdev(sma(xIntra, Samples) , Samples)
xStDevInter = stdev(sma(xInter, Samples) , Samples)
xVolume = volume
TP = xhlc3
TP1 = xhlc3[1]
Intra = xIntra
Vintra = xStDevIntra
Inter = xInter
Vinter = xStDevInter
CutOff = Cintra * Vintra + Cinter * Vinter
MF = xClose - xhl2 + TP - TP1
FveFactor = iff(MF > CutOff * xClose, 1,
iff(MF < -1 * CutOff * xClose, -1, 0))
xVolumePlusMinus = xVolume * FveFactor
Fvesum = sum(xVolumePlusMinus, Samples)
VolSum = sum(xVolume, Samples)
xFVE = (Fvesum / VolSum) * 100
xEMAFVE = ema(xFVE, Perma)
pos :=iff(xFVE > xEMAFVE, 1,
iff(xFVE < xEMAFVE, -1, nz(pos[1], 0)))
pos
strategy(title="Combo Backtest 123 Reversal & Volatility Finite Volume Elements", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Samples = input(22, minval=1)
Perma = input(40, minval=1)
Cintra = input(0.1)
Cinter = input(0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVI = FVI(Samples,Perma,Cintra,Cinter)
pos = iff(posReversal123 == 1 and posFVI == 1 , 1,
iff(posReversal123 == -1 and posFVI == -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 )