Trendstrategien verwenden im Allgemeinen verschiedene Indikatoren, um die Richtung des Marktes zu bestimmen, und verwenden die Vergleichswerte der einzelnen Indikatoren als Handelssignale. So kann die Verwendung von Parametern und Berechnungen vermieden werden. Da Parameter verwendet werden, gibt es eine geeignete Situation. Die Strategie funktioniert sehr gut in bestimmten Branchen, aber wenn das Marktverhalten sehr unfreundlich ist, kann sie sehr schlecht sein.
import time
basePrice = -1
ratio = 0.05
acc = _C(exchange.GetAccount)
lastCancelAll = 0
minStocks = 0.01
def CancelAll():
while True :
orders = _C(exchange.GetOrders)
for i in range(len(orders)) :
exchange.CancelOrder(orders[i]["Id"], orders[i])
if len(orders) == 0 :
break
Sleep(1000)
def main():
global basePrice, acc, lastCancelAll
exchange.SetPrecision(2, 3)
while True:
ticker = _C(exchange.GetTicker)
if basePrice == -1 :
basePrice = ticker.Last
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio :
acc = _C(exchange.GetAccount)
if acc.Balance * ratio / ticker.Last > minStocks :
exchange.Buy(ticker.Last, acc.Balance * ratio / ticker.Last)
basePrice = ticker.Last
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio :
acc = _C(exchange.GetAccount)
if acc.Stocks * ratio > minStocks :
exchange.Sell(ticker.Last, acc.Stocks * ratio)
basePrice = ticker.Last
ts = time.time()
if ts - lastCancelAll > 60 * 5 :
CancelAll()
lastCancelAll = ts
LogStatus(_D(), "\n", "行情信息:", ticker, "\n", "账户信息:", acc)
Sleep(500)
Die Strategie ist sehr einfach, keine Indikatoren verwendet, nur den aktuellen Preis als Basis für den Handel auslösen und nur ein Hauptparameter verwendet.ratio
Sie haben die Möglichkeit, den Auslöser zu steuern.
Einige von ihnen sind auch in der Lage, sich zu bewegen.
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio
Verwenden Sie den aktuellen Preis, um den Basispreis zu vergleichen, wenn der aktuelle Preis größer als der Basispreis ist und der Preis übersteigtratio * 100 %
Wenn Sie eine Liste anschließen, hängen Sie mehrere auf.
Nach der Bestellung wird der Basispreis auf den aktuellen Preis aktualisiert.
Die Leerzeichen lösen:
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio
Das gleiche Prinzip gilt, wenn man den aktuellen Preis verwendet, um den Basispreis zu vergleichen, wenn der aktuelle Preis kleiner als der Basispreis ist und der Preis übersteigt.ratio * 100 %
Wenn Sie eine Liste anheben, hängen Sie eine leere Liste auf.
Nach der Bestellung wird der Basispreis auf den aktuellen Preis aktualisiert.
Die Anzahl der Bestellungen entspricht dem Wert der verfügbaren Mittel.ratio * 100 %
Das ist nicht wahr.
Es sei denn, die ermittelte Anzahl ist kleiner als die minimale Anzahl, die in den Parametern gesetzt istminStocks
Das ist eine sehr schwierige Sache.
Die Strategie ist es, die Preisschwankungen zu verfolgen.
Der Zeitraum für die Rückprüfung beträgt etwa ein Jahr.
Das Ergebnis:
In der Vergangenheit haben sich die Nutzer über weniger Python-Strategien geäußert und haben später mehr Strategien in der Python-Sprache geteilt. Die Strategie ist unter:https://www.fmz.com/strategy/181185
Die Strategien sind nur für das Lernen, das Nachprüfen und das Optimieren von Upgrades geeignet.