Stratégie d'entrée et de sortie aléatoire


Date de création: 2023-10-11 15:17:28 Dernière modification: 2023-10-11 15:17:28
Copier: 0 Nombre de clics: 946
1
Suivre
1617
Abonnés

Aperçu

Une stratégie d’entrée et de sortie aléatoires est une stratégie qui utilise un générateur de nombres aléatoires pour simuler les décisions d’entrée et de sortie en décidant au hasard des heures d’entrée et de sortie au cours d’une transaction.

Principe de stratégie

La logique de cette stratégie est la suivante:

  1. Chaque ligne K génère un nombre entre 0 et 100 au hasard.

  2. Si le nombre aléatoire est inférieur au seuil de probabilité d’entrée défini, la position est ouverte. La probabilité d’entrée par défaut est de 10%.

  3. Si le nombre aléatoire est inférieur au seuil de probabilité de sortie défini, le jeu est à zéro. La probabilité de sortie par défaut est de 3%

  4. Vous pouvez choisir entre trois directions: faire seulement plus, faire seulement moins, et faire au hasard.

  5. Vous pouvez également définir l’année de début de la transaction pour éviter les années de fortes fluctuations.

En définissant différents paramètres d’entrée, de sortie et de direction, il est possible de simuler le comportement de négociation aléatoire de différents types de traders et d’examiner la performance de différents marchés dans des transactions aléatoires.

Analyse des avantages

  • Le but de cette étude est de simuler les décisions aléatoires prises par les traders réels, et de les rapprocher de la réalité du marché.

  • Il est possible de tester la différence de performances entre les différents marchés sur une base de transactions aléatoires.

  • On peut trouver des marchés où même les transactions aléatoires génèrent des rendements positifs.

  • Le trading aléatoire peut être utilisé comme stratégie de référence pour tester les avantages d’autres stratégies.

Analyse des risques

  • Les entreprises ne peuvent pas tirer profit des tendances du marché et ne peuvent pas déterminer le moment de leur entrée.

  • Les sorties aléatoires peuvent se terminer par des défaillances.

  • Les résultats ont été plutôt médiocres sur les marchés qui ont une orientation claire.

  • Il est nécessaire d’optimiser la probabilité d’entrée et de sortie afin d’éviter une fréquence trop élevée ou une durée de garantie trop courte.

  • Il peut être envisagé d’inclure un mécanisme de prévention des pertes afin d’éviter l’expansion des pertes.

Direction d’optimisation

  • Adapter les probabilités d’entrée et de sortie pour trouver des combinaisons adaptées aux différents marchés.

  • Adhérer à une stratégie de stop-loss pour contrôler les pertes individuelles.

  • Optimiser la gestion des positions et réduire le risque monétaire.

  • Il est possible d’utiliser une stratégie de suivi des tendances lorsque la tendance est claire.

  • En combinaison avec une analyse statistique, il est possible de trouver les marchés où les transactions aléatoires sont les plus efficaces.

Résumer

Les stratégies d’entrée et de sortie aléatoires simulent les décisions aléatoires des traders et testent la performance de différents marchés dans des transactions aléatoires. Le principe de la stratégie est simple et peut servir de référence pour tester l’efficacité d’autres stratégies.

Code source de la stratégie
/*backtest
start: 2022-10-04 00:00:00
end: 2023-10-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
args: [["v_input_1",2]]
*/

//@version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © gregoirejohnb
//
// "tHe MaRkEtS aRe RaNdOm", say moron academics.
//
// The purpose of this study is to show that most markets are NOT random! Most markets show a clear bias where we can make such easy money, that a random number generator can do it.
// 
// === HOW THE INDICATOR WORKS ===
// 
// -The study will randomly enter the market
// -The study will randomly exit the market if in a trade
// -You can choose a Long Only, Short Only, or Bidirectional strategy
//
// === DEFAULT VALUES AND THEIR LOGIC ===
// 
// Percent Chance to Enter Per Bar: 10%
// Percent Chance to Exit Per Bar: 1%
// Direction: Long Only
// Commission: 0
//
// Each bar has a 10% chance to enter the market. Each bar has a 1% to exit the market [if in a trade]. It will only enter long.
//
// I included zero commission for simplication. It's a good exercise to include a commission/slippage to see just how much trading fees take from you.
// 
// === TIPS ===
//
// -Increasing "Percent Chance to Exit" will shorten the time in a trade. You can see the "Avg # Bars In Trade" go down as you increase. If "Percent Chance to Exit" is too high, the study won't be in the market long enough to catch any movement, possibly exiting on the same bar most of the time.
// -If you're getting the red screen, that means the strategy lost so much money it went broke. Try reducing the percent equity on the Properties tab.
// -Switch the start year to avoid black swan events like the covid drop in 2020.
// -
// === FINDINGS ===
//
// Most markets lose money with a "Random" direction strategy.
// Most markets lose ALL money with a "Short Only" strategy.
// Most markets make money with a "Long Only" strategy.
// 
// Try this strategy on: Bitcoin (BTCUSD) and the NASDAQ (QQQ).
//
// There are two popular memes right now: "Bitcoin to the moon" and "Stocks only go up". Both are seemingly true. Bitcoin was the best performing asset of the 2010's, gaining several billion percent in gains. The stock market is on a 100 year long uptrend. Why? BECAUSE FIAT CURRENCIES ALWAYS GO DOWN! This is inflation. If we measure the market in terms of others assets instead of fiat, the Long Only strategy doesn't work anymore.
// Try this strategy on: Bitcoin/GLD (BTCUSD/GLD), the Eurodollar (EURUSD), and the S&P 500 measured in gold (SPY/GLD).
// 
// Bitcoin measured in gold (BTCUSD/GLD) still works with a Long Only strategy because Bitcoin increased in value over both USD and gold.
// The Eurodollar (EURUSD) generally loses money no matter what, especially if you add any commission. This makes sense as they are both fiat currencies with similar inflation schedules.
// Gold and the S&P 500 have gained roughly the same amount since ~2000. Some years will show better results for a long strategy, while others will favor a short strategy. Now look at just SPY or GLD (which are both measured in USD by default!) and you'll see the same trend again: a Long Only strategy crushes even when entering and exiting randomly.
//
// === "JUST TELL ME WHAT TO DO, YOU NERD!" ===
//
// Bulls always win and Bears always lose because fiat currencies go to zero.
//
strategy(title="Random Entries Work", shorttitle="REW", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, currency=currency.USD,commission_type=strategy.commission.percent,commission_value=0)

// === GENERAL INPUTS ===
strategy = input(defval="Long Only",title="Direction",options=["Long Only", "Short Only", "Random"])
enter_frequency = input(defval=10,minval=1,maxval=100,title="Percent Chance to Enter")
exit_frequency = input(defval=3, minval=0,maxval=100,title="Percent Chance to Exit",tooltip="This should be much lower than Percent Chance to Enter. Higher values decrease time in market. Lower values increase time in market.")
start_year = input(defval=2020, title="Start Year")


// === LOGIC ===
r = random(0,100)
enter = enter_frequency > r[0]
exit = exit_frequency > r[0]
direction = random(0,100) >= 50

// === STRATEGY - LONG POSITION EXECUTION ===
enterLong() =>
    strategy.opentrades == 0 and enter and (strategy == "Long Only" or (strategy == "Random") and direction) and 
       time > timestamp(start_year, 01, 01, 01, 01)
exitLong() =>
    exit
strategy.entry(id="Long", long=strategy.long, when=enterLong())
strategy.close(id="Long", when=exitLong())
// === STRATEGY - SHORT POSITION EXECUTION ===
enterShort() =>
    strategy.opentrades == 0 and enter and (strategy == "Short Only" or (strategy == "Random" and not direction)) and 
       time > timestamp(start_year, 01, 01, 01, 01)
exitShort() =>
    exit
strategy.entry(id="Short", long=strategy.short, when=enterShort())
strategy.close(id="Short", when=exitShort())