Stratégie de trading quantitative à court terme basée sur plusieurs indicateurs


Date de création: 2023-09-14 19:46:55 Dernière modification: 2023-09-14 19:46:55
Copier: 1 Nombre de clics: 785
1
Suivre
1617
Abonnés

Cet article détaille une stratégie de trading quantitatif en ligne courte avec une combinaison de plusieurs indicateurs. Cette stratégie utilise un ensemble d’indicateurs techniques puissants pour générer des signaux de trading sur de faibles périodes de temps (par exemple, 15 minutes).

Premièrement, les principes stratégiques

Au cœur de la stratégie, une combinaison d’indicateurs a été utilisée, notamment:

(1) Système de double équilibre: calculer rapidement et lentement deux moyennes mobiles de Hull, en fonction de leur relation croisée pour déterminer la direction de la tendance.

(2) Système Ichimoku: calculer les lignes de conversion, les lignes de référence, etc. et combiner avec le graphe de nuage pour déterminer la tendance et la résistance au support.

(3) Le canal de Donchian: construire un canal à partir du prix le plus élevé et du prix le plus bas pour déterminer la rupture de prix.

(4) MACD: calculer le MACD et la ligne de signal et opérer en fonction de leur croisement.

Un signal de négociation plus fiable est produit lorsque ces indicateurs s’accordent sur un jugement de tendance. La logique est la suivante:

Lorsque le Hull MA rapide traverse le Hull MA lent, ET la ligne Ichimoku traverse la carte des nuages ET le canal Donchian est percé ET la ligne de signal traverse le MACD, faites plus; au contraire, jugez le vide.

En même temps, le changement de prix de clôture de la ligne K quotidienne est utilisé comme jugement auxiliaire pour éviter d’être renversé.

En outre, la stratégie contient une logique de stop-loss et de stop-loss qui permet de contrôler le risque-rendement d’une seule transaction.

Deux, les avantages stratégiques

Le plus grand avantage de cette stratégie est que la combinaison d’indicateurs est complémentaire et améliore la qualité du signal. Les différents indicateurs jugent les tendances sous plusieurs angles et ne produisent que des signaux de consensus, ce qui évite les limites d’un seul indicateur.

Deuxièmement, la combinaison de plusieurs cycles de temps est également un avantage majeur. Le jugement auxiliaire de Kline par jour peut filtrer le risque d’être piégé par des cycles bas de courte durée.

Enfin, les stratégies comportant un système de stop-loss permettent également de contrôler le risque de chaque transaction.

Troisièmement, les risques potentiels

Malgré la bonne conception de la stratégie, les risques suivants sont à prendre en compte dans les transactions:

Tout d’abord, la combinaison de plusieurs indicateurs rend l’optimisation des paramètres plus difficile, et une mauvaise configuration peut entraîner une suroptimisation.

Deuxièmement, dans une tendance forte, les arrêts de perte peuvent être brisés et entraîner des pertes.

Enfin, il existe des cas où les complexesignals sont difficiles à détecter.

Dans l’ensemble, la stratégie overall combine la science logique, qui peut être continuellement optimisée par des tests paramétraux, pour devenir une stratégie efficace de quantification des courts-circuits.

Quatrième partie, résumé

Cet article présente en détail une stratégie de trading quantitatif en ligne courte pour une combinaison de plusieurs indicateurs. Elle utilise des indicateurs tels que la ligne de parité bilatérale, l’Ichimoku, le canal Donchian et le MACD pour la combinaison, améliorant la qualité du signal.

Code source de la stratégie
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// Any timeFrame ok but good on 15 minute & 60 minute , Ichimoku + Daily-Candle_cross(DT) + HULL-MA_cross + MacD combination 420 special blend
strategy("Custom 15m strat",overlay=true)
keh=input(title="Double HullMA",defval=14, minval=1)
dt = input(defval=0.0010, title="Decision Threshold (0.001)", step=0.0001)`
SL = input(defval=-500.00, title="Stop Loss in $", step=1)
TP = input(defval=25000.00, title="Target Point in $", step=1)
ot=1
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(close[1],round(keh/2))
nma1=wma(close[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
d=n1>n2?red:green
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
conversionPeriods = input(9, minval=1, title="Conversion Line Periods")
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods")
displacement = input(26, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
LS=close, offset = -displacement
MACD_Length = input(9)
MACD_fastLength = input(12)
MACD_slowLength = input(26)
MACD = ema(close, MACD_fastLength) - ema(close, MACD_slowLength) //macd
aMACD = ema(MACD, MACD_Length) //signal
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and strategy.opentrades<ot and confidence>dt and close>n2 and leadLine1>leadLine2 and open<LS and MACD>aMACD
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<ot and confidence<dt and close<n2 and leadLine1<leadLine2 and open>LS and MACD<aMACD
if (shortCondition)
    strategy.entry("Short",strategy.short)

a1=plot(n1,color=c)
a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = circles, color=b, linewidth = 4)
plot(cross(n1, n2) ? n1 : na, style = line, color=d, linewidth = 4)
plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
//plot(longCondition == true ? 4000:4100,title="long")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")
p1=plot (leadLine1, offset = displacement, color=green,  title="Lead 1")
p2=plot (leadLine2, offset = displacement, color=red,  title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)
// remove the "//" from before the plot script if want to see the indicators on chart