Stratégie d'achat/vente à la clôture de bougie

Auteur:ChaoZhang est là., Date: 2024-01-08 11:11:18 Je vous en prie.
Les étiquettes:

img

Résumé

Cette stratégie déclenche des signaux d'achat/vente en comparant les prix de clôture de la bougie actuelle et de la bougie précédente.

Plus précisément, si la bougie actuelle se ferme au-dessus du prix le plus élevé de la bougie précédente, un signal d'achat est déclenché.

La logique de la stratégie

  1. Obtenir les prix historiques les plus élevés et les plus bas de la période spécifiée (par exemple, quotidien, horaire)
  2. Calculer les distances stop loss et take profit
    • Distance de stop-loss = plus haut niveau de la bougie précédente - plus bas niveau de la bougie précédente
    • La distance de prise de bénéfice = distance de stop-loss * 3 (ratio risque/rendement 1:3)
  3. Déterminer la relation entre la clôture actuelle et le record précédent
    • Si la date de clôture actuelle est supérieure à la date de clôture précédente, déclencher le signal d'achat
    • Si la clôture actuelle est inférieure au niveau le plus bas de la bougie précédente, déclenchez le signal de vente
  4. Définir le stop loss et le profit après entrée
    • Après l'achat, définir le stop loss à la bougie précédente plus bas - distance stop loss, prendre profit à la bougie précédente plus haut + prendre profit distance
    • Après la vente, définir un stop-loss au plus haut de la bougie précédente + distance stop-loss, prendre profit au plus bas de la bougie précédente - prendre profit distance

Ce qui précède est la logique de base de cette stratégie.

Analyse des avantages

  • Idée de stratégie simple et claire, facile à comprendre et à mettre en œuvre
  • Utilisez les informations du chandelier pour déterminer la direction de la tendance
  • Avoir un mécanisme de stop loss et de profit pour contrôler le risque

Analyse des risques

  • Un jugement basé uniquement sur une période peut générer plus de faux signaux
  • Ne prend pas en compte d'autres facteurs tels que les variations de volume, la volatilité, etc.
  • Les paramètres stop loss et take profit pourraient être inappropriés, trop larges ou trop serrés sont tous deux risqués

Directions d'optimisation

  • Combinez plus de facteurs pour confirmer le signal d'entrée, comme le volume, la moyenne mobile, etc.
  • Optimiser les algorithmes de stop loss et de take profit pour avoir un stop loss plus raisonnable et un profit suffisant
  • La régulation des paramètres peut être nécessaire pour différents produits
  • Un délai plus long peut être testé

Résumé

L'idée de la stratégie est simple et claire dans l'ensemble, en utilisant le prix de clôture du chandelier pour déterminer la direction de la tendance et a également un stop-loss / take profit pour contrôler le risque, elle peut servir de stratégie de base pour les actions et le trading de crypto. Mais avec un jugement basé uniquement sur un délai, il a tendance à générer de faux signaux plus facilement. Il y a encore beaucoup de place pour l'amélioration en incorporant plus de facteurs et en ajustant les paramètres pour améliorer les performances de la stratégie.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy/Sell on Candle Close", overlay=true)

var float prevLowest = na
var float prevHighest = na
var float slDistance = na
var float tpDistance = na

// Specify the desired timeframe here (e.g., "D" for daily, "H" for hourly, etc.)
timeframe = "D"

// Fetching historical data for the specified timeframe
pastLow = request.security(syminfo.tickerid, timeframe, low, lookahead=barmerge.lookahead_on)
pastHigh = request.security(syminfo.tickerid, timeframe, high, lookahead=barmerge.lookahead_on)

if bar_index > 0
    prevLowest := pastLow[1]
    prevHighest := pastHigh[1]

currentClose = close

if not na(prevLowest) and not na(prevHighest)
    slDistance := prevHighest - prevLowest
    tpDistance := 3 * slDistance // Adjusted for 1:3 risk-reward ratio

// Buy trigger when current close is higher than previous highest
if not na(prevLowest) and not na(prevHighest) and currentClose > prevHighest
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy TP/SL", "Buy", stop=prevLowest - slDistance, limit=prevHighest + tpDistance)

// Sell trigger when current close is lower than previous lowest
if not na(prevLowest) and not na(prevHighest) and currentClose < prevLowest
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell TP/SL", "Sell", stop=prevHighest + slDistance, limit=prevLowest - tpDistance)

plot(prevLowest, color=color.blue, title="Previous Lowest")
plot(prevHighest, color=color.red, title="Previous Highest")







Plus de