
Die Strategie ist eine Hochfrequenz-Handelsstrategie, die auf der 3-Minuten-K-Linie der Coinbase-Börse basiert. Sie berechnet die Auf- und Abwärtslinien der K-Linie, um zu beurteilen, ob die Preise kurzfristig eine Chance auf eine Umkehr haben. Wenn die Preise steigen oder fallen, nimmt die Strategie eine Position, die dem Trend entgegengesetzt ist, um eine Umkehr der kurzen Linie zu erwarten.
Diese Strategie entscheidet hauptsächlich darüber, ob es eine Gelegenheit gibt, kurzfristig überkauft oder überverkauft zu werden. Überkaufe und Überverkäufe entstehen in der Regel aus übermäßig optimistischen oder pessimistischen Gefühlen in den Märkten. Wenn diese vorübergehenden Gefühlsbilanz auftritt, werden die Preise in der Regel umgekehrt.
Konkret berechnet die Strategie die Größe der oberen und unteren Schattenlinien der K-Linie. Je größer die Schattenlinie ist, desto stärker ist der Gegensatz zwischen der Kaufkraft und der Verkaufskraft, wenn die aktuelle K-Linie noch nicht abgeschlossen ist. Wenn die obere Schattenlinie zu groß ist, werden viele Käufe vor dem Ende der K-Linie durch den Parallax geschlagen, was auf den bevorstehenden Ausfall der Mehrköpferschaft hinweist.
Nach dieser Urteilslogik wählt die Strategie, wenn die Schattenlinie zu groß ist (d. h. wenn der Preis kurzfristig überkauft wird), die Position zu nehmen, die dem Trend entgegengesetzt ist. Der Stop-Loss für die Eintritt in eine Mehrkopfposition ist der mittlere Preis der unteren Schattenlinie, der Stop-Loss für die Eintritt in eine leere Position ist der mittlere Preis der oberen Schattenlinie.
Der größte Vorteil dieser Strategie besteht darin, die kurzfristigen unvernünftigen Schwankungen der Märkte zu beeinflussen und einen umgekehrten Arbitrage zu erzielen. Es erfordert nur weniger Geld, um eine höhere Effizienz zu erzielen.
Ein weiterer Vorteil ist, dass Coinbase ein sehr schwankender Handelsplatz ist. Die Strategie nutzt die starken Preisschwankungen, um davon zu profitieren.
Das größte Risiko dieser Strategie besteht darin, dass die kurzfristigen Preisschwankungen möglicherweise nicht sehr vorhersehbar sind. Die Größe der oberen und unteren Schattenlinie kann nicht unbedingt die gesamte Information über die Preisumkehr erfassen. Die irrationale Emotion des Händlers folgt nicht unbedingt den Regeln der Logik.
Darüber hinaus ist die Einstellung der Stop-Loss-Punkte entscheidend. Wenn die Stop-Loss-Punkte zu locker sind, können die Verluste der Strategie erhöht werden. Wenn die Stop-Loss-Punkte zu streng sind, können die Chancen verpasst werden.
Die Strategie kann in folgenden Dimensionen weiter optimiert werden:
Die Strategie als Ganzes ist eine typische statistische Arbitrage-Strategie. Sie versucht, von unvernünftigen kurzfristigen Preisschwankungen zu profitieren und hat eine gewisse Logik und Durchführbarkeit. Der nächste Schritt ist die Optimierung von Experimenten in mehr Dimensionen, die die Parameter-Einstellungen der Strategie und die Handelsregeln wissenschaftlicher machen.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//for coinbase, 3min logic
//This strategy trades against the short term trend. The first position can be either long or short.
//In the short term, prices fluctuate up and down on wide spread exchanges.
//And if the price moves to one side, the price tends to return to its original position momentarily.
//This strategy set stop order. Stop price is calculated with upper and lower shadows.
strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50)
fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year")
frommonth = input(12, minval = 1, maxval = 12, title = "From Month")
fromday = input(1, minval = 01, maxval = 31, title = "From day")
toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year")
tomonth = input(12, minval = 01, maxval = 12, title = "To Month")
today = input(31, minval = 01, maxval = 31, title = "To day")
end = true
length = input(3, title="period")
mag = input(1.2, title="sigma", minval=0.1, step=0.1)
up_shadow = abs(high - max(open, close))
dn_shadow = abs(low - min(open, close))
up_shadow_ma = sma(up_shadow, length) * mag
dn_shadow_ma = sma(dn_shadow, length) * mag
upper = close + dn_shadow_ma
lower = close - up_shadow_ma
plot(upper, color=red)
plot(lower, color=blue)
if strategy.position_size == 0
strategy.entry("Long", strategy.long)
if 0 < strategy.position_size
strategy.entry("Short", strategy.short, stop=lower, when=end)
if 0 > strategy.position_size
strategy.entry("Long", strategy.long, stop=upper, when=end)