Python バージョンの勝者を購入する戦略

作者: リン・ハーンリディア, 作成日:2022-12-22 22:04:41, 更新日:2023-09-20 09:22:41

img

Python バージョンの勝者を購入する戦略

トレンド戦略は,一般的に市場方向を判断するために様々な指標を使用し,さまざまな指標の比較結果を取引信号として使用します. このようにして,パラメータを使用し,指標を計算することは避けられません. 今,パラメータが使用されると,適正な状況になります. いくつかの市場では,戦略は非常にうまく機能しますが,あなたが運が悪い場合,市場傾向が現在のパラメータに非常に不利である場合,戦略は非常に悪くなることがあります. したがって,戦略デザインが単純であればあるほど,より良いと考えます. この戦略はより堅牢になります. 今日,指標なしでトレンド戦略を共有します. 戦略コードは非常にシンプルで,わずか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年です

img

実行結果:

img img img

最近,Pythonの戦略が少ないというユーザーもいます.後で,Pythonで書かれた戦略をさらにシェアします. 戦略コードも非常にシンプルで,定量的な初心者が学ぶのに非常に適しています. 戦略アドレス:https://www.fmz.com/strategy/181185

戦略は参考,学習,バックテストのみです. 興味がある場合は,それを最適化してアップグレードすることができます.


関連性

もっと