Type/to search
8
Follow
1361
Followers
追いかけて売る戦略のPython版
Discussions
Created 2020-01-11 14:49:08  Updated 2024-12-12 20:57:43
 6
 7376

img

追いかけて売る戦略のPython版

トレンド戦略では、一般的にさまざまな指標を使用して市場の方向性を判断し、さまざまな指標の数値比較結果を取引シグナルとして使用します。これにより、必然的にパラメータの使用と指標の計算が必要になります。パラメータを使用するのでフィッティングが行われます。この戦略は特定の市場状況では非常に優れたパフォーマンスを発揮しますが、運が悪く、市場のトレンドが現在のパラメータに非常に不利な場合、この戦略のパフォーマンスは非常に低くなる可能性があります。したがって、私の意見では、戦略設計は可能な限りシンプルであるべきであり、そのような戦略はより堅牢になります。今日はインジケーターを使わないトレンド戦略を紹介します。戦略コードは非常にシンプルで、わずか 40 行です。

戦略コード:

pine
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)

戦略の簡単な分析

この戦略の原理は非常にシンプルです。インジケーターは使用せず、現在の価格のみを取引トリガーの基礎として使用し、主要なパラメータは1つだけです。ratioポジションを開くトリガーを制御します。

ロングトリガー:

pine
if ticker.Last - basePrice > 0 and (ticker.Last - basePrice) / basePrice > ratio

現在の価格を基準価格と比較します。現在の価格が基準価格よりも高く、価格が基準価格を超える場合、ratio * 100 %、保留中の注文がトリガーされ、ロング注文が発注されます。
ご注文後、基本価格が現在の価格に更新されます。

ショート注文トリガー:

pine
if ticker.Last - basePrice < 0 and (basePrice - ticker.Last) / basePrice > ratio

空売りの原理も同じです。現在の価格を基準価格と比較します。現在の価格が基準価格より低く、価格が基準価格を超える場合ratio * 100 %、保留中の注文がトリガーされ、ショート注文が発注されます。
ご注文後、基本価格が現在の価格に更新されます。

各注文の注文量は利用可能な資金の値です。ratio * 100 %
計算された注文量がパラメータで設定された最小取引量より少ない場合を除きminStocksそれ以外の場合は注文してください。

これにより、戦略は価格の変化を追跡し、高値を追いかけて安値で売ることが可能になります。

バックテスト

バックテスト期間は約1年です。
img

操作結果:
img

img

最近、Python 戦略が比較的少ないという意見がユーザーからありました。今後は、Python で書かれた戦略をさらに共有していきます。戦略コードも非常にシンプルなので、初心者が学習するのに非常に適しています。
戦略アドレス: https://www.fmz.com/strategy/181185

この戦略は参考、バックテスト、テストのみを目的としています。興味があれば、最適化してアップグレードすることができます。

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)