TrumpBollingerEMStratégie du chandelier

Auteur:ChaoZhang est là., Date: 2023-10-07 15h30 et 27h
Les étiquettes:

Résumé

Cette stratégie utilise les bandes de Bollinger, l'EMA et les modèles de chandeliers pour le trading de jeux de hasard à deux lignes, appartenant aux stratégies de trading à court terme.

Principaux

La stratégie est composée des éléments suivants:

  1. Les bandes de Bollinger Générer des rails supérieurs et inférieurs en fonction du prix de clôture et de l'écart type.

  2. Le taux d'intérêt Calculer la moyenne mobile exponentielle de 21 jours et générer des signaux de trading lorsque le prix dépasse la EMA.

  3. Modèles de chandeliers Identifier les points d'inversion des prix tels que la couverture inférieure des nuages sombres et le modèle de perçage supérieur pour déclencher les transactions.

  4. Le jeu à deux lignes Allez long et court simultanément en fonction des signaux de Bollinger, du croisement EMA et des modèles de chandeliers.

La logique est la suivante:

Utilisez les bandes de Bollinger pour identifier les points de renversement potentiels, allez court sur le rail supérieur et long sur le rail inférieur. Calculez l'EMA de 21 jours et allez long sur la croix dorée, allez court sur la croix de la mort. Utilisez également des modèles de bougies pour identifier les renversements, allez long sur le nuage sombre inférieur et court sur le piercing supérieur. Combinez les trois signaux pour prendre des décisions commerciales finales en double direction.

La stratégie intègre plusieurs signaux de confirmation pour améliorer l'efficacité des décisions de négociation.

Analyse des avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. Amélioration de la précision avec confirmation de signaux multiples

L'utilisation de Bollinger, EMA et candlestick ensemble améliore la précision en validant les signaux.

  1. Réaction rapide et détection des retours en arrière

Les signaux combinés permettent d'identifier rapidement les points de renversement potentiels afin de négocier en temps opportun avant que les renversements ne s'étendent.

  1. Une rentabilité plus élevée avec des transactions à double ligne

En détenant des positions longues et courtes, les bénéfices provenant de mouvements importants dans les deux directions réduisent les risques sur les marchés unidirectionnels.

  1. Flexibilité pour les opérations à court terme

Le Bollinger et l'EMA à court terme permettent de capturer les mouvements à court terme, adaptés aux transactions fréquentes et répondant aux fluctuations à haute fréquence.

  1. Directement utilisable et facile à utiliser

Le code de stratégie complet le rend directement utilisable pour le trading en direct.

Analyse des risques

Les risques potentiels sont les suivants:

  1. Possession de titres de titres

Les signaux de Bollinger, EMA et candlestick peuvent entraîner des arrêts de perte consécutifs.

  1. Risques plus élevés dans le commerce à deux lignes

La détention à la fois longue et courte peut amplifier les pertes. Un capital suffisant est nécessaire pour soutenir les risques.

  1. Surveillance étroite nécessaire pour les opérations à court terme

Le trading à court terme nécessite un suivi attentif du marché.

  1. Espace d'optimisation limité

Bollinger et EMA ont un espace d'optimisation relativement petit.

  1. Les motifs communs des chandeliers peuvent être peu clairs

Une partie de la stratégie repose sur des signaux de chandelier qui peuvent parfois ne pas être clairs.

Directions d'optimisation

La stratégie peut être améliorée dans les domaines suivants:

  1. Intégrer plus de signaux d'indicateur

En ajoutant d'autres indicateurs comme le KD, le MACD diversifie les sources de signaux et améliore la précision des décisions.

  1. Incorporer l'apprentissage automatique

Utiliser des algorithmes de machine learning pour analyser les données historiques et augmenter ou remplacer certains signaux d'indicateur afin de réduire l'intervention manuelle.

  1. Optimiser le stop profit/loss

Introduire un stop profit adaptatif basé sur la performance et un stop loss à la traîne pour réduire les risques.

  1. Améliorer la gestion des risques

Optimiser l'allocation des capitaux, la taille des positions et les stratégies de contrôle des risques en fonction des conditions du marché.

  1. Contrôle quantitatif et optimisation

Utiliser le backtesting et le trading papier pour optimiser à plusieurs reprises les paramètres et aider les décisions de trading en direct.

  1. Commerce automatisé

Paramétrer la stratégie basée sur les résultats des backtests et l'incorporer dans le système de trading automatisé pour une exécution mains libres.

Conclusion

Cette stratégie intègre les signaux Bollinger, EMA et candlestick pour une validation multiple. Le trading à deux lignes améliore encore la rentabilité. Avec une réponse rapide, il est adapté à un trading fréquent à court terme. Un stop profit/loss efficace et une optimisation des paramètres peuvent améliorer encore la performance tout en réduisant les risques.


/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Design by MrPhu in August,10,2018
strategy("TrumpShipper_Long_Short V26", overlay=true)
filterFractals = input(true, title=" Follow Code #Trump On/Off")
dt = 0.0001
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]

if (prediction)
    strategy.exit("Close", "Short ")
    strategy.entry("Long ", strategy.long)

if (not prediction)
    strategy.exit("Close", "Long ")
    strategy.entry("Short ", strategy.short)
///////////Bollinger Band///////////////
length = 20
crc = close, title="Source"
mult = 2.0
basis = sma(crc, length)
dev = mult * stdev(crc, length)
upper = basis + dev
lower = basis - dev
spanColor = prediction ? green : red, transp=90

p1 = plot(upper, title="Short", style=line, linewidth=1, color=spanColor)
p2 = plot(lower, title="Long", style=line, linewidth=1, color=spanColor)

fill(p1, p2, color=spanColor, transp=90, title="Fill")

/////////////
Optional_TimeFrame = 'D'

M_HIGH = request.security(syminfo.tickerid, Optional_TimeFrame, high)
M_OPEN = request.security(syminfo.tickerid, Optional_TimeFrame, open)
M_LOW = request.security(syminfo.tickerid, Optional_TimeFrame, low)

H_RANGE = M_HIGH-M_OPEN
L_RANGE = M_OPEN-M_LOW

H_236 = M_HIGH - H_RANGE * 0.236
H_382 = M_HIGH - H_RANGE * 0.382
H_500 = M_HIGH - H_RANGE * 0.500
H_618 = M_HIGH - H_RANGE * 0.618
H_764 = M_HIGH - H_RANGE * 0.764

L_236 = M_LOW + L_RANGE * 0.236
L_382 = M_LOW + L_RANGE * 0.382
L_500 = M_LOW + L_RANGE * 0.500
L_618 = M_LOW + L_RANGE * 0.618
L_764 = M_LOW + L_RANGE * 0.764

pl1=plot(M_HIGH, color=M_HIGH != M_HIGH[1] ?na:black, style=line, linewidth=1, transp=80)

pl2=plot(H_236, color=H_236 != H_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl3=plot(H_382, color=H_382 != H_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl4=plot(H_500, color=H_500 != H_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl5=plot(H_618, color=H_618 != H_618[1] ?na:gray, style=line, linewidth=1, transp=80)
pl6=plot(H_764, color=H_764 != H_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl7=plot(M_OPEN, color=M_OPEN != M_OPEN[1] ?na:blue, style=line, linewidth=2)

pl8=plot(L_236, color=L_236 != L_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl9=plot(L_382, color=L_382 != L_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl10=plot(L_500, color=L_500 != L_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl11=plot(L_618, color=L_618 != L_618[1] ?na:black, style=line, linewidth=1, transp=80)
pl12=plot(L_764, color=L_764 != L_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl13=plot(M_LOW, color=M_LOW != M_LOW[1] ?na:black, style=line, linewidth=1, transp=80)

SHOW_MA = false
MA_SRC = hlc3
MA_LENGTH = 21

_MA = ema(MA_SRC, MA_LENGTH)
pl14=plot(not SHOW_MA ? na : _MA, color=teal, linewidth=2)

SHOW_SIGNALS = true

BUYX(_F) => cross(_F, MA_SRC) and rising(_MA, 1)
SELX(_F) => cross(_F, MA_SRC) and falling(_MA, 1)

SEL_SIGNAL = SELX(H_236) or SELX(H_382) or SELX(H_500) or SELX(H_618) or SELX(H_764) or SELX(L_236) or SELX(L_382) or SELX(L_500) or SELX(L_618) or SELX(H_764)

BUY_SIGNAL = BUYX(H_236) or BUYX(H_382) or BUYX(H_500) or BUYX(H_618) or BUYX(H_764) or BUYX(L_236) or BUYX(L_382) or BUYX(L_500) or BUYX(L_618) or BUYX(H_764)

//================= Chart 30m =================/////
//Jurij
h_left = 10
h_right = 10
//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotchar(central_bar_is_highest ? -1 : 0, offset=-h_right-1 ,color=red, text="Top")
plotchar(central_bar_is_lowest ? 1 : 0, offset=-h_right-1 ,location=location.belowbar, color=green, text="Bottom")

Plus de