Quantitative Handelsstrategie auf der Grundlage eines täglichen Preisvergleichs

Schriftsteller:ChaoZhang, Datum: 2023-11-21 14:34:11
Tags:

img

Übersicht

Diese Strategie wird Daily Close Price Comparison Strategy genannt. Es handelt sich um eine quantitative Handelsstrategie, die Handelsentscheidungen auf der Grundlage der täglichen Schlusskurse trifft. Die Strategie erzeugt Handelssignale, indem sie die Differenz zwischen dem aktuellen täglichen Schlusskurs und dem vorherigen täglichen Schlusskurs berechnet. Wenn die Differenz eine festgelegte Schwelle überschreitet, werden Kauf- oder Verkaufsoptionen ausgeführt.

Strategie Logik

Die Kernlogik dieser Strategie besteht darin, die Schlusskurse zwischen dem aktuellen Leuchter und dem vorherigen zu vergleichen.

  1. Berechnen Sie die Differenz zwischen dem aktuellen Tagesschlusskurs und dem vorherigen Tagesschlusskurs (heute - gestern)
  2. Berechnen Sie das Verhältnis zwischen der Differenz und dem Schlusskurs von gestern (Differenz / Schlusskurs von gestern)
  3. Wenn die Ratio größer als die positive Schwelle ist, wird ein Kaufsignal erzeugt, wenn die Ratio kleiner als die negative Schwelle ist, wird ein Verkaufssignal erzeugt.
  4. Eingabe von Long- oder Short-Positionen gemäß den Signalen

Die Strategie setzt keine Stop-Loss- oder Take-Profit-Bedingungen und stützt sich auf die durch die Schwelle ausgelösten Signale für den Einstieg und den Ausstieg.

Analyse der Vorteile

  • Einfache Logik, leicht verständlich, geeignet für Anfänger im Quant-Trading
  • Verlässt sich nur auf tägliche Schlusskurse, vermeidet zu häufigen Handel
  • Die Handelsfrequenz kann durch Anpassung des Schwellenwerts gesteuert werden.

Risikoanalyse

  • Keine Stop-Loss, nicht in der Lage, Einzelhandelsverluste zu kontrollieren
  • Kann aufeinanderfolgende Handelssignale erzeugen, die zu einem Überhandel führen
  • Der Rückzug kann groß sein, kann den Gesamtverlust nicht gut kontrollieren

Optimierungsrichtlinien

  • Hinzufügen von Stop-Loss-Logik zur Kontrolle von Einzelhandelsverlusten
  • Grenzwert der Eingaben, der über den Handel vermieden werden soll
  • Optimierung der Parameter, um eine optimale Handelsfrequenz zu finden

Schlussfolgerung

Diese Strategie erzeugt Handelssignale, indem tägliche Schlusskurse verglichen werden. Die Logik ist einfach und für Anfänger geeignet, aber sie beinhaltet bestimmte Risiken und muss für den Live-Handel weiter optimiert werden.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Daily Close Comparison Strategy (by ChartArt) correct results", shorttitle="CA_-_Daily_Close_Strat", overlay=false)

// ChartArt's Daily Close Comparison Strategy
//
// Version 1.0
// Idea by ChartArt on February 28, 2016.
//
// This strategy is equal to the very
// popular "ANN Strategy" coded by sirolf2009,
// but without the Artificial Neural Network (ANN).
//
// Main difference besides stripping out the ANN
// is that I use close prices instead of OHLC4 prices.
// And the default threshold is set to 0 instead of 0.0014
// with a step of 0.001 instead of 0.0001.
//
// This strategy goes long if the close of the current day
// is larger than the close price of the last day.
// If the inverse logic is true, the strategy
// goes short (last close larger current close).
//
// This simple strategy does not have any
// stop loss or take profit money management logic.
//
// List of my work: 
// https://www.tradingview.com/u/ChartArt/
// 
//  __             __  ___       __  ___ 
// /  ` |__|  /\  |__)  |   /\  |__)  |  
// \__, |  | /~~\ |  \  |  /~~\ |  \  |  
// 
// 

threshold = input(title="Price Difference Threshold correct results", type=float, defval=0, step=0.004)

getDiff() =>
    yesterday=request.security(syminfo.tickerid, 'D', close[1])
    today=close
    delta=today-yesterday
    percentage=delta/yesterday
    
closeDiff = getDiff()
 
buying = closeDiff > threshold ? true : closeDiff < -threshold ? false : buying[1]

hline(0, title="zero line")

bgcolor(buying ? green : red, transp=25)
plot(closeDiff, color=silver, style=area, transp=75)
plot(closeDiff, color=aqua, title="prediction")

longCondition = buying
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = buying != true
if (shortCondition)
    strategy.entry("Short", strategy.short)

Mehr