Cette stratégie génère des signaux de trading basés sur la percée et le callback de plusieurs lignes moyennes mobiles.
Le code utilise 4 lignes moyennes mobiles avec des périodes différentes - 21 jours, 50 jours, 100 jours et 200 jours. Il entre dans des positions longues lorsque le prix traverse ces lignes MA et entre dans des positions courtes lorsque le prix tombe en dessous de ces lignes MA. En outre, les niveaux de stop loss et de take profit sont définis dans la stratégie. Plus précisément, le stop loss est défini près du point le plus bas de la bougie précédente, et le profit est défini à 3 fois la distance entre le point le plus bas et le point le plus élevé de la bougie précédente.
L'idée de base de cette stratégie est de juger de la tendance en utilisant des moyennes mobiles. Lorsque le prix traverse les lignes MA ascendantes, cela indique une tendance à la hausse, donc devrait aller long. Lorsque le prix tombe en dessous des lignes MA descendantes, cela indique une tendance à la baisse, donc devrait aller court. L'utilisation de plusieurs lignes MA avec différentes périodes peut juger de la tendance plus précisément et également vérifier les signaux de trading grâce à la cohérence de la tendance.
Les principaux avantages de cette stratégie sont les suivants:
Les principaux risques de cette stratégie sont les suivants:
Ces risques peuvent être réduits en ajustant les paramètres de l'AM et en optimisant le stop loss et le take profit.
Cette stratégie peut être optimisée dans les aspects suivants:
En général, il s'agit d'une tendance typique suivant la stratégie. Les avantages sont une logique claire et facile à comprendre et à mettre en œuvre. L'inconvénient est qu'il est sujet à de faux signaux. La stratégie peut être améliorée en ajustant les paramètres et en ajoutant d'autres indicateurs.
/*backtest start: 2022-11-15 00:00:00 end: 2023-11-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DolarBasar by AlperDursun", shorttitle="DOLARBASAR", overlay=true) // Input for Moving Averages ma21 = ta.sma(close, 21) ma50 = ta.sma(close, 50) ma100 = ta.sma(close, 100) ma200 = ta.sma(close, 200) // Calculate the lowest point of the previous candle for stop loss lowestLow = ta.lowest(low, 2) // Calculate the highest point of the previous candle for stop loss highestHigh = ta.highest(high, 2) // Calculate take profit levels takeProfitLong = lowestLow - 3 * (lowestLow - highestHigh) takeProfitShort = highestHigh + 3 * (lowestLow - highestHigh) // Entry Conditions longCondition = ta.crossover(close, ma21) or ta.crossover(close, ma50) or ta.crossover(close, ma100) or ta.crossover(close, ma200) shortCondition = ta.crossunder(close, ma21) or ta.crossunder(close, ma50) or ta.crossunder(close, ma100) or ta.crossunder(close, ma200) // Stop Loss Levels stopLossLong = lowestLow * 0.995 stopLossShort = highestHigh * 1.005 // Exit Conditions longExitCondition = low < stopLossLong or high > takeProfitLong shortExitCondition = high > stopLossShort or low < takeProfitShort if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (longExitCondition) strategy.exit("Long Exit", from_entry="Long", stop=stopLossLong, limit=takeProfitLong) if (shortExitCondition) strategy.exit("Short Exit", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)