리소스 로딩... 로딩...

파이썬 버전의 승자를 구매하는 전략

저자:FMZ~리디아, 창작: 2022-12-22 22:04:41, 업데이트: 2023-09-20 09:22:41

img

파이썬 버전의 승자를 구매하는 전략

트렌드 전략은 일반적으로 시장 방향을 판단하기 위해 다양한 지표를 사용하며, 다양한 지표의 비교 결과를 거래 신호로 사용합니다. 이러한 방식으로 매개 변수를 사용하고 지표를 계산하는 것은 피할 수 없습니다. 이제 매개 변수를 사용하면 적합한 상황이 발생할 것입니다. 일부 시장에서 전략은 매우 잘 수행되지만 운이 좋지 않고 시장 트렌드가 현재 매개 변수에 매우 불친절하다면 전략은 매우 좋지 않을 수 있습니다. 따라서 전략 설계가 간단하면 좋을수록 더 좋습니다. 이 전략은 더 견고 할 것입니다. 오늘은 지표가없는 트렌드 전략을 공유 할 것입니다. 전략 코드는 매우 간단하며 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

최근, 일부 사용자는 파이썬 전략이 거의 없다고 말했습니다. 나중에, 나는 파이썬으로 작성된 더 많은 전략을 공유 할 것입니다. 전략 코드는 또한 매우 간단하며, 양적 초보자가 배우는 데 매우 적합합니다. 전략 주소:https://www.fmz.com/strategy/181185

이 전략은 참고, 학습 및 백테스팅을 위한 것입니다. 관심이 있다면 최적화 및 업그레이드 할 수 있습니다.


관련

더 많은