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

데이터 재생 기능을 기반으로 개발된 선형 연결 단일 스트림 전략

저자: , 2019-12-13 17:13:07에서 제작, 2024-12-15 16:04:23로 업데이트

img

전문

사람들은 종종 거래는 예술이고 예술은 영감에서 비롯된다고 말합니다. 그래서 오늘 저는 발명가들이 데이터를 양적으로 재생하는 기능을 사용하여 자신의 거래 영상을 찾는 방법을 공유하고 싶습니다.

거래의 영감을 얻었습니다.

우리가 흔히 말하는 영감은 사람들이 사고 과정에서 순간적으로 창의적인 상태를 일으키는 것을 의미합니다. 거래자에게는 우리의 왼쪽 뇌가 전략 작성, 자금 배정, 매개 변수 설정과 같은 일련의 규칙을 작성하는 것을 완료합니다. 그 거래 영감과 감각은 오른쪽 뇌에서 발생합니다.

많은 사람들이 스 센서라는 단어를 들어본 적이 있습니다. 이것은 현재 일어나고 있는 것을 알고 있는 것처럼 불분명하게 말하는 느낌입니다. 거래에서 이러한 여섯 번째 감각과 같은 직감은 논리적 추론과 분석이 없어도 시장의 미래 행보에 대한 예측을 통해 거래자가 구매 또는 판매 결정을 내리는 것을 유도합니다.

영감을 얻는 방법

외부인들에게는 사각지대가 신기한 재능을 가지고 시장에 입각할 수 있는 신비한 재능이다. 사실 사각지대는 뇌의 주관적인 거래 경험에 대한 요약이며, 수년간 사각지대를 통해 깨달은 기묘한 선의적인 감각이다.

엄밀히 말하면, 영감은 정서와 완전히 같지는 않지만, 시장 연습을 수천 번하고 시장에 대한 더 깊은 이해를 통해 전략 개발을 할 때 마음을 잡을 수 있다고 믿습니다. 그래서 이러한 재능을 얻고 더 많은 거래 전략을 개발하고 싶다면 다른 사람은 숙련되지 않습니다. 많은 거래로만 자신의 거래 시스템을 완벽하게 할 수 있습니다.

그러나 국내 상품 선물과 주식은 하루에 몇 시간밖에 거래 시간이 없으며, 실제 거래에서 자신의 판독 경험을 향상시키고, 자신의 수익모델과 거래 규칙을 형성하고, 자신의 조건적 반사를 무의식적으로 훈련시키는 것만으로도 무능하다. 더 긴 시간 비용을 지불하는 것 외에도 대부분의 거래자는 자본 손실 비용을 부담합니다. 이 문제를 해결하기 위해 발명가는 데이터 재생 기능을 양적으로 개발했습니다.

데이터 재생을 사용하는 방법

데이터 재생 기능은 거래소의 거래 시간 제한 없이 훈련할 수 있으며, 다양한 상품 선물과 디지털 통화 품종을 지원하며, 시장은 수동으로 재생할 수 있고 자동으로 재생할 수 있으며, 역사적 시장 종료 시간 및 재생 속도를 자유롭게 설정할 수 있습니다. 다른 소프트웨어와 비교하여 일반적으로 K 라인 데이터 재생 방식을 채택하고 있으며, 발명자는 Tick 수준의 데이터 재생 방식을 사용하여 측정 환경을 측정하고 실제 거래의 리턴 환경에 가깝게 접근하고, 거래소 가격 데이터를 재현하여 거래자가 직접적으로 느낄 수 있습니다.

개발자 양적 웹 사이트fmz.com) 로 등록하고 로그인한 다음 제어 센터의 데이터 탐색을 클릭하면 데이터 재생 기능 페이지가 표시됩니다. 여기에는 총 4 개의 옵션 박스와 선택 버튼이 있습니다. 먼저 선택 버튼을 클릭하면 실제 디스크 재생을 지원하는 품종만을 표시하고, 왼쪽 상단에서 재생하려는 품종을 선택하고, 다음 두 개의 옵션 박스에서 데이터의 시작 시간을 선택하고, 데이터의 시간 주기를 실제 디스크 재생으로 선택하고, 마지막으로 오른쪽 가장 오른쪽에있는 Go 버튼을 클릭하면 데이터 재생 기능을 시작할 수 있습니다.

img

데이터 태그 아래에 총 3개의 블록이 있습니다. 왼쪽은 거래 역사입니다. 여기서는 시간 순서대로 이루어진 모든 주문이 표시됩니다. 중간에 구매 및 판매 20개 필드 깊이의 순서 데이터가 있습니다. 오른쪽에는 데이터 재생의 제어 영역이 있습니다. 여기서는 미디어 플레이어를 사용하는 것만큼 간단하게 수동 및 자동 데이터 재생을 선택할 수 있습니다.

img

위치 인덱스는 좌우로 이동할 수 있고, 데이터 재생의 시작 시간을 빠르게 선택할 수 있다.

img

가장 아래쪽에는 오른쪽과 왼쪽으로 이동하는 지표로 데이터를 재생하는 속도를 제어할 수 있으며, 시간 단위인 밀리 초로, 데이터를 재생할 때 속도를 높일 수도 있고 낮출 수도 있다.

img

전략적 논리를 구축

가격 하락에 영향을 미치는 요소는 다양하지만, 세계 경제 환경, 국가 거시 정책, 관련 산업 정책, 수요와 공급 관계, 국제 사건, 이율과 환율, 인플레이션과 경감, 시장 심리, 미지의 요인 등이 포함되지만, 최종 판의 가격은 다방면과 공평한 경쟁의 결과입니다. 구매자가 너무 많으면 가격이 상승합니다. 판매자가 너무 많으면 가격이 감소합니다. 우리는 가격을 분석하면 거래 전략을 만들 수 있습니다.

발명가들이 최근 한 달 동안의 BTC_usdt 거래 쌍을 양적으로 복귀한 결과, 우리는 시장 상승과 하락의 시점에 틱 데이터의 주문 부하 양쪽의 단위가 명백히 비대칭적이라는 것을 발견했습니다. 시장 상승의 시점에서는 더 많은 상장 주문이 빈 상장 주문보다 훨씬 더 많으며 시장 하락의 시점에서는 더 많은 상장 주문이 빈 상장 주문보다 훨씬 더 적습니다. 그렇다면 우리는 시점 하락의 시점에서는 더 많은 상장 주문이 빈 상장 주문보다 훨씬 더 적다는 것을 예측할 수 있습니까?

이 질문에 대한 답은 예입니다.

img img

우리는 심층 틱 데이터를 수집하여, 다공석 양측의 힌트 수를 계산하고 비교하여, 다공석 종합 힌트 수의 오차가 크다면, 잠재적인 매매 기회가 있을 수 있다. 예를 들어, 다공석 힌트 수가 다공석 힌트 수의 N배일 때, 우리는 시장의 대다수가 더 많이 보는 것으로 간주할 수 있으며, 향후 단기간에 가격이 상승할 확률이 증가할 수 있다. 다공석 힌트 수가 다공석 힌트 수의 N배일 때, 우리는 시장의 대다수가 힌트 수를 힌트하고, 향후 단기간에 가격이 하락할 확률이 증가할 수 있다고 간주할 수 있다.

거래 전략을 작성

위 전략의 논리에 따라 코드를 구현하기 시작하십시오. 다음으로 오픈: fmz.com 웹사이트 > 로그인 > 제어 센터 > 정책 도서 > 새로운 정책 > 오른쪽 상단에서 드래그 다운 메뉴를 클릭하여 파이썬 언어를 선택하여 정책을 작성하기 시작하십시오. 이 전략은 교과용 자중을 던지기 위해 사용되었기 때문에 가능한 한 간단하게 작성하려고 노력했습니다. 다음 코드 코드의 설명에 유의하십시오.

첫 번째 단계: 전략적 프레임워크 작성

# 策略主函数
def onTick():
    pass


# 程序入口
def main():
    while True:  # 进入无限循环模式
        onTick()  # 执行策略主函数
        Sleep(1000)  # 休眠1秒

우리가 정책을 작성할 때 대소문자로 써야 합니다. 마치 지붕처럼, 먼저 지붕 프레임과 벽면을 덮습니다. 이 프레임워크에서 우리는 두 가지 함수를 사용합니다. 각각: main 함수와 onTick 함수입니다. 여기서 main 함수는 프로그램의 입구입니다. 즉, 프로그램이 여기서 실행되고 무한 회로 모드로 들어가서 onTick 함수를 반복 실행합니다. 그러면 우리는 단지 정책 내용을 onTick 함수 안에 쓸 수 있습니다.

두 번째 단계: 글로벌 변수를 작성합니다.

vol_ratio_arr = []  # 多空挂单比率数组
mp = 0  # 虚拟持仓

범용변수로 vol_ratio_arr을 정의하는 이유는 제 전략이 Tick 데이터의 다공간 겹쳐진 비율을 수집해야 하기 때문입니다. 만약 우리가 vol_ratio_arr 변수를 onTick 함수 안에 넣으면, 루킹이 실행되면서 명백히 비합리적입니다. 우리는 루킹 모드에서 변수의 값을 변경해야 합니다. 어떤 조건이 충족될 때, 가장 합리적인 방법은 변수를 루킹의 외부에 넣는 것입니다.

포지션 관리는 구매와 판매 로직과 관련이 있기 때문에 매우 필요합니다. 일반적으로 우리는 현장 거래에서 계좌를 확보하여 보유한 통화 쌍을 계산합니다. 여기서 코드를 단순화하기 위해 구매와 판매 로직을 제어하기 위해 전 세계적인 가상 포지션 변수를 직접 정의합니다.

세 번째 단계: 현재 공백 비율을 계산합니다.

depth = exchange.GetDepth()  # 获取深度数据
asks = depth['Asks']  # 获取卖价数组
bids = depth['Bids']  # 获取买价数组
asks_vol = 0  # 所有卖价挂单
bids_vol = 0  # 所有买价挂单
for index, ask in enumerate(asks):  # 遍历卖价数组
    # 线性计算所有卖价挂单
    asks_vol = asks_vol + ask['Amount'] * (20 - index)
for index, bid in enumerate(bids):  # 遍历买价数组
    # 线性计算所有买价挂单
    bids_vol = bids_vol + bid['Amount'] * (20 - index)
bidask_ratio = bids_vol / asks_vol  # 计算多空比率

디지털 화폐는 일반적으로 20개 정도의 깊이 데이터를 가지고 있는 것으로 알려져 있는데, 우리는 다목적과 빈목적의 수를 더하면 다목적과 빈목적의 비율을 계산할 수 있다. 이 값이 1보다 크면 더 많은 사람들이 볼 수 있는 것보다 더 많은 사람들이 볼 수 있다는 것을 나타내고, 이 값이 1보다 작으면 더 많은 사람들이 볼 수 있다는 것을 나타내고, 이 값이 1보다 작으면 더 많은 사람들이 볼 수 있다는 것을 나타내고, 이 값이 1보다 작으면 더 많은 사람들이 볼 수 있다는 것을 나타내고, 이 값이 1보다 작으면 더 많은 사람들이 볼 수 있다는 것을 나타낸다.

그러나 한 가지 차이점이 있다. 기기장과 기기장 사이의 거리가 가까워지면 더 많이 읽거나 덜 읽으려는 의지가 강하다는 것을 나타냅니다. 예를 들어, 한 기기에 기기장된 기기장은 20 기지에 기기장된 기기장된 기기장보다 확실히 더 강하다는 것을 나타냅니다. 따라서 우리는 기기장을 쌓을 때 20 기지를 각각 다른 무게로 줄이면서 선형적인 방법으로 기기장을 할 필요가 있습니다. 이것은 더 합리적입니다.

네 번째 단계: 선형 계산에서 한 시간 동안의 다공간 비율

global vol_ratio_arr, mp  # 引入全局变量
vol_ratio_arr.insert(0, bidask_ratio)  # 把多空比率放到全局变量数组里面
if len(vol_ratio_arr) > 20:  # 如果数组超过指定长度
    vol_ratio_arr.pop()  # 删除最旧的元素
all_ratio = 0  # 临时变量,所有多空挂单比率
all_num = 0  # 临时变量,所有线性乘数
for index, vol_ratio in enumerate(vol_ratio_arr):  # 变量全局变量数组
    num = 20 - index  # 线性乘数
    all_num = all_num + num  # 线性乘数累加
    all_ratio = all_ratio + vol_ratio * num  # 所有多空挂单比率累加
ratio = all_ratio / all_num  # 线性多空挂单比率

여러 개의 상위와 상위와 상위와 상위와 상위와 상위, 상위와 상위, 상위와 상위, 상위와 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상위, 상

5단계: 거래 주문

last_ask_price = asks[0]['Price']  # 最新卖一价,用于买入的价格
last_bid_price = bids[0]['Price']  # 最新买一价,用于卖出的价格
if mp == 0 and ratio > buy_threshold:  # 如果当前无持币,并且比率大于指定值
    exchange.Buy(last_ask_price, 0.01)  # 买入
    mp = 1  # 设置虚拟持仓的值
if mp == 1 and ratio < sell_threshold:  # 如果当前持币,并且比率小于指定值
    exchange.Sell(last_bid_price, 0.01)  # 卖出
    mp = 0  # 重置虚拟持仓的值

주문을 할 때 가격을 지정해야 하기 때문에, 우리는 구매할 때 가장 최근의 판매 가격을 직접 사용할 수 있습니다. 판매할 때 가장 최근의 구매 가격을 직접 사용할 수 있습니다. 마지막으로 주문 거래가 완료되면 가상 보유 값을 다시 설정합니다.

위의 것은 데이터 재생 기능을 기반으로 개발된 선형 연결 단일 흐름 전략 코드 분석이다. 만약 당신이 거래 초보자라면, 데이터 재생 기능은 거래에 대한 인지 시간을 단축하고 거래에 대한 학습 시간을 제로 비용으로 학습할 수 있다. 실제 또는 시뮬레이션 거래는 종종 첫 번째 효과를 보기 위해 몇 년이 소요되며, 데이터 재생 기능을 사용하여 몇 주 동안 동일한 효과를 얻을 수 있다.


관련

더 많은

xaifer48이제 리얼 디스크 재생 기능이 꺼졌나요?

이것은 간단한 설명입니다. 많은 세부 사항이 최적화되어야합니다.