Zufällige Ein- und Ausstiegsstrategie


Erstellungsdatum: 2023-10-11 15:17:28 zuletzt geändert: 2023-10-11 15:17:28
Kopie: 0 Klicks: 946
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Eine Random Entry-Exit-Strategie ist eine Strategie, bei der die Ein- und Ausstiegszeiten im Handel zufällig festgelegt werden. Die Strategie verwendet einen Random Number Generator, um die Ein- und Ausstiegsentscheidungen zu simulieren.

Strategieprinzip

Die Kernlogik der Strategie lautet:

  1. Jede K-Strecke erzeugt zufällig eine Zahl zwischen 0 und 100.

  2. Wenn die Zufallszahl kleiner ist als die eingestellte Einstiegswahrscheinlichkeitsschwelle, wird eingegeben. Die Standard-Einstiegswahrscheinlichkeit beträgt 10%.

  3. Wenn die Zufallszahlen kleiner sind als die eingestellte Ausgangswahrscheinlichkeitsschwelle, wird der Ausgang mit einer Nullposition durchgeführt. Die Standardwahrscheinlichkeit für einen Ausgang beträgt 3%.

  4. Es gibt drei Richtungen: nur mehr, nur weniger, zufällig.

  5. Es ist auch möglich, das Jahr, in dem der Handel begann, einzusetzen, um die Jahre zu vermeiden, in denen die Situation besonders dramatisch ist.

Durch die Einstellung verschiedener Eintritts- und Ausstiegswahrscheinlichkeiten und Richtungsparameter kann das Zufallshandelsverhalten verschiedener Arten von Händlern simuliert und die Performance verschiedener Märkte unter Zufallshandeln untersucht werden.

Analyse der Stärken

  • Das Verhalten von realen Händlern, die zufällige Entscheidungen treffen, wird simuliert, um dem realen Marktzustand nahe zu kommen.

  • Es ist möglich, die unterschiedliche Performance verschiedener Märkte unter Zufallshandlungen zu testen.

  • Welche Märkte sind zu finden, in denen sogar zufällige Geschäfte positive Gewinne erzielen?

  • Zufällige Geschäfte können als Benchmark-Strategien verwendet werden, um die Vorteile anderer Strategien zu testen.

Risikoanalyse

  • Es ist unmöglich, von den Markttrends zu profitieren, und es ist unmöglich, den Zeitpunkt des Eintritts zu bestimmen.

  • Die Zufallsausgabe kann zu einem Nachteil führen.

  • In den meisten Ländern sind die Unternehmen in der Lage, ihre Produkte zu verkaufen, ohne sich in der Lage zu fühlen.

  • Die Wahrscheinlichkeit, dass ein Spieler ein oder aus dem Spiel kommt, muss optimiert werden, um zu viel Aufenthalt oder zu kurze Aufbewahrungszeiten zu vermeiden.

  • Die Einführung eines Stop-Loss-Mechanismus kann in Erwägung gezogen werden, um eine Ausweitung der Verluste zu verhindern.

Optimierungsrichtung

  • Die Wahrscheinlichkeit des Ein- und Ausstiegs wird angepasst, um eine Kombination für verschiedene Märkte zu finden.

  • Ein Stop-Loss-Strategie, um einzelne Verluste zu kontrollieren.

  • Optimierung der Positionsverwaltung und Verringerung des Einmalrisikos.

  • Wenn ein Trend eindeutig ist, kann er in eine Trend-Tracking-Strategie umgewandelt werden.

  • In Kombination mit einer statistischen Analyse sucht man nach den Märkten, in denen die Zufallstransaktionen am effektivsten sind.

Zusammenfassen

Die Strategie ist einfach und kann als Maßstab für die Wirksamkeit anderer Strategien verwendet werden. Es gibt jedoch Probleme mit der Unfähigkeit, Trends zu erfassen und mit der unvollständigen Stop-Loss-Verwaltung. Wir können die Strategie verbessern, um sie zu einer wertvollen quantitativen Handelsstrategie zu machen, indem wir die Parameterpalette anpassen, Stop-Loss hinzufügen und die Positionsverwaltung optimieren.

Strategiequellcode
/*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())