Backtesting de stratégie de trading basé sur le canal long-short


Date de création: 2023-09-20 17:02:40 Dernière modification: 2023-09-20 17:02:40
Copier: 0 Nombre de clics: 688
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie utilise la création d’un canal polyvalent pour effectuer des vérifications de retour de système de type canal de rupture et appartient à la stratégie de négociation de type rupture de tendance.

Principe de stratégie

  1. Calculer le prix le plus élevé pour la construction d’un canal à plusieurs têtes et le prix le plus bas pour la construction d’un canal à tête vide sur une période donnée.

  2. L’achat est effectué lorsque le prix franchit la ligne de passage supérieur.

  3. La vente est effectuée lorsque le prix franchit la ligne de passage.

  4. Le délai de rétroaction peut être réglé pour vérifier la stratégie.

  5. Les règles de la stratégie sont simples et claires.

Analyse des avantages

  1. Les canaux multifonctions peuvent être visuellement définis comme des canaux de circulation.

  2. La tendance à la hausse est plus probable après la rupture de la ligne de passage.

  3. La rétrospective permet de vérifier l’efficacité de la stratégie dans un contexte historique.

  4. Le concept de la rupture du canal est simple et facile à mettre en œuvre.

  5. Le code est simple, facile à modifier et à optimiser.

Analyse des risques

  1. Il y a un risque de fausse percée après la percée.

  2. Les paramètres d’arrêt et d’arrêt ne peuvent pas être définis efficacement.

  3. Les paramètres d’accès incorrects peuvent affecter l’efficacité de la stratégie.

  4. Les résultats de la détection peuvent présenter un écart d’optimisation.

  5. Les résultats peuvent être très différents en cas de mise en œuvre sur un disque dur.

Direction d’optimisation

  1. Testez différents paramètres pour trouver la combinaison optimale.

  2. Ajout d’autres facteurs combinés pour filtrer les fausses percées.

  3. Mettre en place des mécanismes d’arrêt et d’arrêt des pertes.

  4. Les données sont traitées de manière appropriée et les écarts sont éliminés.

  5. Les tests de retour sont effectués dans différents environnements de marché.

  6. La simulation est validée pour configurer les paramètres du disque réel.

Résumer

La stratégie utilise des règles de passage de rupture simples pour la vérification des retours, facile à utiliser, mais doit encore être optimisée pour améliorer la stabilité. Des améliorations supplémentaires, telles que l’ajustement des paramètres et le contrôle des risques, peuvent en faire un système de négociation de rupture fiable.

Code source de la stratégie
/*backtest
start: 2023-08-20 00:00:00
end: 2023-08-30 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//strategy(title = "Backtest Donchian Teixeira", default_qty_type = strategy.fixed, default_qty_value = 100, overlay = true, commission_type = strategy.commission.cash_per_order, commission_value = 2.50, precision = 2, calc_on_every_tick = true, pyramiding = 0, initial_capital = 10000)

testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00)

testEndYear = input(2018, "Backtest End Year")
testEndMonth = input(12, "Backtest End Month")
testEndDay = input(1, "Backtest End Day")
testPeriodEnd = timestamp(testStartYear, testStartMonth, testStartDay, 23, 59)

window()  => true //nao funciona

length1 = input(20, minval=1, title="Upper Channel")
length2 = input(20, minval=1, title="Lower Channel")

dcUpper = highest(length1)
dcLower = lowest(length2)

plot(dcLower, style=line, linewidth=1, color=red, offset=1)
plot(dcUpper, style=line, linewidth=1, color=lime, offset=1)
plot(dcLower, style=line, linewidth=1, color=gray)

if (strategy.position_size == 0)
    strategy.entry("COMPRA", true, stop = dcUpper)
    
if (strategy.position_size > 0)
    strategy.exit("VENDA", stop = dcLower)