
추세 전략은 일반적으로 다양한 지표를 사용하여 시장 방향을 파악하고, 다양한 지표의 수치적 비교 결과를 거래 신호로 사용합니다. 이는 필연적으로 매개변수의 사용과 지표의 계산으로 이어질 것입니다. 매개변수를 사용하므로 적합성이 있습니다. 이 전략은 특정 시장 상황에서는 매우 좋은 성과를 거두지만, 운이 나빠서 시장 추세가 현재 매개변수에 매우 불리할 경우 이 전략은 매우 낮은 성과를 거둘 수 있습니다. 따라서 제 생각에는 전략 설계는 가능한 한 간단해야 하며, 그러한 전략은 더욱 견고할 것입니다. 오늘은 지표를 사용하지 않는 트렌드 전략을 공유해드리겠습니다. 전략 코드는 매우 간단해서 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, "\n", "账户信息:", 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년입니다.

작업 결과:


최근에, 몇몇 사용자들은 파이썬 전략이 비교적 적다고 말했습니다. 저는 앞으로 파이썬으로 작성된 더 많은 전략을 공유할 것입니다. 전략 코드도 매우 간단해서 초보자가 배우기에 매우 적합합니다. 전략 주소: https://www.fmz.com/strategy/181185
이 전략은 참조용, 백테스팅 및 테스트용일 뿐입니다. 관심이 있다면 최적화하고 업그레이드할 수 있습니다.