Cette stratégie est une combinaison de l’indicateur de la table d’équilibre et de l’indicateur MACD, et s’applique après la confirmation d’un renversement de tendance.
Calculer la courbe de la courbe de l’équilibre de première vue, comme indicateur de la direction de la tendance. Les prix au-dessus de la courbe de la courbe sont des marchés à plusieurs têtes, en dessous du marché à tête nue.
L’indicateur MACD génère un signal de vente lorsque le marché à plusieurs têtes forme une fourche morte; un signal d’achat lorsque le marché à tête nue forme une fourche dorée.
Combiner le jugement de tendance de l’équilibre à vue et le signal de renversement du MACD pour effectuer des transactions inversées au point de renversement de tendance.
Des contrôles de temps de transaction peuvent être mis en place, comme la fermeture des transactions le soir, la fermeture des transactions le week-end, etc., afin d’éviter les risques de certaines périodes.
Utilisez des stratégies de stop loss et de stop loss appropriées pour bloquer les bénéfices et contrôler les risques.
L’indicateur d’équilibre à première vue affiche visuellement la tendance et les niveaux de pression de soutien.
L’indicateur MACD est plus sensible à la capture de l’inversion de tendance.
Il est possible de filtrer les faux signaux, en combinant la détection des tendances et les signaux de retour.
Vous pouvez personnaliser la période de transaction pour éviter les risques de points clés.
Une stratégie de stop-loss permet de gérer efficacement le risque financier.
Le tableau d’équilibre et l’indicateur MACD peuvent donner des signaux d’erreur.
Il est impossible de juger de la réversibilité et il y a un risque de rechute.
Le contrôle des heures de négociation peut laisser passer certaines opportunités de négociation.
Le stop-loss est mal réglé, ce qui peut entraîner un arrêt ou un arrêt prématuré.
L’optimisation des paramètres peut être sur-optimisée et inefficace.
Testez les paramètres de la table d’équilibre et du MACD pour trouver la combinaison optimale.
Ajouter d’autres indicateurs pour confirmer les signaux de transaction
Optimiser les stratégies de stop-loss pour équilibrer les risques et les bénéfices.
Évaluer la nécessité de contrôler le temps de transaction et de l’assouplir de manière appropriée.
Ajouter un filtre de tendance pour éviter les pertes de trading inversées.
Les chercheurs ont étudié comment déterminer la force d’un retournement et la hauteur d’un potentiel de rétroaction.
La stratégie intègre le jugement de tendance de la table d’équilibre à première vue et les signaux de revers de la MACD pour prendre des décisions de négociation après la confirmation d’un revers de tendance. En optimisant davantage les paramètres et les stratégies, le risque d’erreur de signal peut être réduit et un système de négociation de revers de tendance stable et efficace peut être construit.
/*backtest
start: 2022-09-13 00:00:00
end: 2023-09-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Revazi
//@version=5
strategy("The Impeccable by zyberal", overlay = true)
// Inputs {
// Strategy variables
IchimokuTenkanPeriod = input(9)
IchimokuKijunPeriod = input(190)
IchimokuSenkouPeriod = input(52)
MACDMainFast = input(3)
MACDMainSlow = input(10)
MACDMainSmooth = input(9)
ExitAfterBars = input(2)
ProfitTarget = input(135)
StopLoss = input(70)
// Trading Options
DontTradeOnWeekends = input(true)
ExitAtEndOfDay = input(true)
DayExitTimeHour = input(23)
DayExitTimeMinute = input(04)
ExitOnFriday = input(true)
FridayExitTimeHour = input(20)
FridayExitTimeMinute = input(40)
// }
// TRADING OPTIONS LOGIC {
OpenOrdersAllowed = true
// Dont trade on weekends {
if DontTradeOnWeekends
if dayofweek == dayofweek.saturday or
dayofweek == dayofweek.sunday
OpenOrdersAllowed := false
// }
// Exit on close (end of day) {
if ExitAtEndOfDay
if timeframe.isintraday and
time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), DayExitTimeHour, DayExitTimeMinute)
OpenOrdersAllowed := false
// }
// Exit on Friday {
if ExitOnFriday
if timeframe.isintraday and
time >= timestamp(year(timenow), month(timenow), dayofmonth(timenow), FridayExitTimeHour, FridayExitTimeMinute)
OpenOrdersAllowed := false
// }
// Rule: Trading signals {
openW3 = request.security(syminfo.tickerid, "W", open)[3]
middleDonchian(Length) => math.avg(ta.highest(Length), ta.lowest(Length))
Tenkan = middleDonchian(IchimokuTenkanPeriod)[2]
[macdLine, signalLine, _] = ta.macd(close, MACDMainFast, MACDMainSlow, MACDMainSmooth)
LongEntrySignal = openW3 > Tenkan and ta.crossunder(macdLine, signalLine)[3] //macdLine[3] < signalLine[3]
ShortEntrySignal = openW3 < Tenkan and ta.crossover(macdLine, signalLine)[3] //macdLine[3] > signalLine[3]
// }
// Calculate conditions {
IsFlat() => strategy.position_size == 0
IsLong() => strategy.position_size > 0
IsShort() => strategy.position_size < 0
longCondition = OpenOrdersAllowed and not IsLong() and LongEntrySignal
shortCondition = OpenOrdersAllowed and not IsShort() and ShortEntrySignal
// }
// Open positions based on conditions {
strategy.order(id = "buy", direction = strategy.long, qty = 1, when = longCondition)
strategy.order(id = "sell", direction = strategy.short, qty = 1, when = shortCondition)
// }