
Cette stratégie utilise une combinaison de moyennes mobiles, de formes de prix et de volumes de transactions pour identifier les points de retournement du marché. La stratégie est plus efficace lorsque les moyennes mobiles rapides traversent les moyennes mobiles plus lentes et qu’il y a une forme de glissement multiple, une rupture de la résistance et une augmentation du volume de transactions. Au contraire, la stratégie est vide lorsque les moyennes mobiles rapides traversent les moyennes mobiles plus lentes et qu’il y a une forme de glissement vide, une chute des supports et une augmentation du volume de transactions.
L’idée centrale de cette stratégie est d’utiliser une combinaison de trois éléments: le système linéaire, les formes de prix et les énergies quantiques pour identifier les points de retournement potentiels. Plus précisément, la croix d’or et la croix de mort de la ligne linéaire permettent de juger de la conversion de la tendance.
D’un point de vue logique du code, on calcule d’abord les moyennes mobiles rapides et les moyennes mobiles lentes. On définit ensuite les conditions de jugement pour les absorptions à plusieurs têtes et les absorptions à vide. On définit également les conditions de support du niveau de résistance et de l’amplification du volume.
Le plus grand avantage de cette stratégie réside dans l’utilisation d’une combinaison de plusieurs signaux pour identifier un renversement, ce qui peut réduire efficacement les faux signaux. En particulier, il est facile de générer des signaux de trading erronés en s’appuyant uniquement sur une seule moyenne, une forme de prix ou une quantité.
En outre, cette stratégie utilise à la fois la tendance et le renversement. La tendance doit être présente avant qu’un signal de renversement ne se produise.
Le plus grand risque de cette stratégie réside dans l’échec du renversement, c’est-à-dire que les prix continuent à baisser après plusieurs signaux; ou que les prix continuent à augmenter après un signal de rupture. Cela est généralement dû à une erreur de jugement, le signal de renversement n’est qu’un faux semblant, ou seulement un ajustement à court terme, puis continue la tendance initiale.
La solution consiste à ajuster le paramètre de la moyenne pour identifier les tendances à des cycles plus longs; et d’augmenter de manière appropriée la marge de stop-loss, en cas d’échec du renversement. De plus, il est possible de combiner plus de facteurs pour confirmer le renversement, tels que la forme des prix des grands cycles.
Cette stratégie peut être optimisée dans les domaines suivants:
Ajustez les paramètres de la moyenne pour identifier les périodes plus longues ou plus courtes qui conviennent le mieux.
Tester différents algorithmes de support de résistance, tels que le support de résistance de Pareto.
Essayez différents types d’indicateurs de volume, tels que l’indicateur de flux d’énergie, l’indicateur de fluctuation du volume de transactions, etc.
Ajout d’autres signaux de confirmation du renversement, tels que des tendances de prix à long terme, une forte augmentation du volume des transactions, etc.
Il peut être combiné avec des futures sur indices boursiers pour une confirmation trans-marché, et avec des futures sur indices boursiers pour confirmer le renversement d’une action.
En testant différentes combinaisons de paramètres, cette stratégie peut être optimisée davantage, ce qui améliore le taux de gain et le taux de victoire.
Cette stratégie intègre les trois facteurs pour identifier les revers: le système de régularisation, la forme des prix et le volume des transactions, et permet une combinaison efficace de plusieurs signaux. Elle ne cherche les opportunités de revers que dans le contexte d’une tendance et évite les transactions aléatoires. En optimisant davantage les paramètres et en ajoutant des facteurs de confirmation, cette stratégie peut devenir une stratégie de revers de ligne courte très pratique.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Profit Table Strategy", overlay=true)
// Input parameters
fastLength = input(10, title="Fast MA Length")
slowLength = input(20, title="Slow MA Length")
takeProfitPercent = input(1, title="Take Profit (%)") / 100
stopLossPercent = input(1, title="Stop Loss (%)") / 100
trailingStopPercent = input(1, title="Trailing Stop (%)") / 100
// Price action conditions
bullishEngulfing = close > open and close > open[1] and open < close[1] and open[1] > close[1]
bearishEngulfing = close < open and close < open[1] and open > close[1] and open[1] < close[1]
// Support and resistance levels
supportLevel = input(100, title="Support Level")
resistanceLevel = input(200, title="Resistance Level")
// Volume conditions
volumeCondition = volume > ta.sma(volume, 20)
// Calculate moving averages
fastMA = ta.sma(close, fastLength)
slowMA = ta.sma(close, slowLength)
// Buy condition
buyCondition = (fastMA > slowMA) and (close > resistanceLevel) and bullishEngulfing and volumeCondition
// Sell condition
sellCondition = (fastMA < slowMA) and (close < supportLevel) and bearishEngulfing and volumeCondition
// Strategy logic
strategy.entry("Buy", strategy.long, when=buyCondition)
strategy.close("Buy", when=sellCondition)
// Calculate take profit, stop loss, and trailing stop levels
takeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercent)
stopLossLevel = strategy.position_avg_price * (1 - stopLossPercent)
trailingStopLevel = strategy.position_avg_price * (1 - trailingStopPercent)
// Plotting levels on the chart
plot(supportLevel, color=color.blue, style=plot.style_line, linewidth=2, title="Support Level")
plot(resistanceLevel, color=color.purple, style=plot.style_line, linewidth=2, title="Resistance Level")
plot(takeProfitLevel, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit Level")
plot(stopLossLevel, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss Level")
plot(trailingStopLevel, color=color.orange, style=plot.style_line, linewidth=2, title="Trailing Stop Level")
// Plotting buy and sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)