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.
La stratégie est composée des éléments suivants:
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.
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.
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.
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.
Les principaux avantages de cette stratégie sont les suivants:
L'utilisation de Bollinger, EMA et candlestick ensemble améliore la précision en validant les signaux.
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.
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.
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.
Le code de stratégie complet le rend directement utilisable pour le trading en direct.
Les risques potentiels sont les suivants:
Les signaux de Bollinger, EMA et candlestick peuvent entraîner des arrêts de perte consécutifs.
La détention à la fois longue et courte peut amplifier les pertes. Un capital suffisant est nécessaire pour soutenir les risques.
Le trading à court terme nécessite un suivi attentif du marché.
Bollinger et EMA ont un espace d'optimisation relativement petit.
Une partie de la stratégie repose sur des signaux de chandelier qui peuvent parfois ne pas être clairs.
La stratégie peut être améliorée dans les domaines suivants:
En ajoutant d'autres indicateurs comme le KD, le MACD diversifie les sources de signaux et améliore la précision des décisions.
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.
Introduire un stop profit adaptatif basé sur la performance et un stop loss à la traîne pour réduire les 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é.
Utiliser le backtesting et le trading papier pour optimiser à plusieurs reprises les paramètres et aider les décisions de trading en direct.
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.
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")