トレンド戦略は,一般的に市場方向を判断するために様々な指標を使用し,さまざまな指標の比較結果を取引信号として使用します. このようにして,パラメータを使用し,指標を計算することは避けられません. 今,パラメータが使用されると,適正な状況になります. いくつかの市場では,戦略は非常にうまく機能しますが,あなたが運が悪い場合,市場傾向が現在のパラメータに非常に不利である場合,戦略は非常に悪くなることがあります. したがって,戦略デザインが単純であればあるほど,より良いと考えます. この戦略はより堅牢になります. 今日,指標なしでトレンド戦略を共有します. 戦略コードは非常にシンプルで,わずか40行です.
戦略コード:
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:", ticker, "\n", "Account information:", acc)
Sleep(500)
戦略の原則は非常にシンプルです.それは任意の指標を使用しません.それは取引のトリガーベースとして現在の価格のみを使用します.ratio
開口位置トリガーを制御する
トリガーを長引く
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio
現在の価格がベース価格よりも高く,価格がベース価格を超えると,ratio * 100%
命令を起動し,長い命令を待ちます.
オーダーが発注された後,ベース価格は現在の価格に更新されます.
ショートオーダーのトリガー:
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio
ショート方向への走行原理は同じである.現在の価格はベース価格を比較するために使用される.現在の価格がベース価格よりも低く,価格がratio * 100%'
各注文の注文量はratio * 100%
可能な資金の価値です
計算された注文量が最低取引量よりも少ない限り,注文を提出するminStocks
パラメータによって設定されます.
この方法で 戦略は 価格の変化をフォローして 勝者を購入します
バックテストの期間は約1年です
実行結果:
最近,Pythonの戦略が少ないというユーザーもいます.後で,Pythonで書かれた戦略をさらにシェアします. 戦略コードも非常にシンプルで,定量的な初心者が学ぶのに非常に適しています. 戦略アドレス:https://www.fmz.com/strategy/181185
戦略は参考,学習,バックテストのみです. 興味がある場合は,それを最適化してアップグレードすることができます.