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

거래 전략을 구축하기 위한 시각화 모듈 - 첫 만남

저자:FMZ~리디아, 창작: 2022-12-12 16:50:29, 업데이트: 2023-09-20 09:44:29

img

거래 전략을 구축하기 위한 시각화 모듈 - 첫 만남

시각 프로그래밍은 항상 양적 거래 분야에서 소프트웨어 개발자의 열망 목표였습니다. 왜냐하면 시각화의 "당신이 보는 것이 당신이 얻는 것"이라는 방법은 프로그래밍 개발의 기술적 임계점을 크게 줄이기 때문입니다. 사용자는 더 이상 지루한 코드들을 다루지 않아도 됩니다. 그들은 단지 상상력과 논리적 사고를 사용하여 사업 자체에 집중할 수 있습니다. 원하는 프로그램을 구현할 수 있어

양적 거래 전략의 시각 프로그래밍 분야에 함께 들어가자!

초기 FMZ Quant의 시각 프로그래밍

로그인 후https://www.fmz.com, 계정을 등록 (당신이 이미 등록되어 있다면, 직접 로그인) 하 고 클릭: 대시보드 -> 전략 -> 전략을 추가.

img

우리는 초기 시각화 전략을 볼 수 있습니다. 기본 구성된 교환 (백테스트 또는 로봇에 추가된 첫 번째 교환 객체) 의 계정 자산 정보를 출력하는 데만 사용됩니다. (아래 그림 참조)

img

시각화를 사용하는 방법을 배우기 전에 시각화의 디자인 개념을 이해할 수 있습니다.

  1. 스플라이싱 자세히 들여다보면 모듈이 (concave) 와 (convex) 를 가지고 있다는 것을 알 수 있습니다. 즉 모듈은 연결하고 연결될 수 있습니다. 만약 두 모듈이 연결될 수 있는 기능적인 코드를 나타낸다면 두 모듈의 텐너와 모터즈는 가까이 다가가면 서로 끌어당길 것입니다.

img

  1. 모듈 설정 및 조정 일부 모듈에는 특별한 설정 가능한 영역이 있습니다. 예를 들어:

img

왼쪽의 Item 모듈을 Add 모듈로 끌고 들어가서 텐온 (공각) 위치를 추가할 수 있습니다. 이 방법으로, 기니온을 클릭하여 모듈을 조정하고 설정합니다.

  1. 모듈의 기본 입력 매개 변수 일부 모듈은 몇 가지 매개 변수를 입력해야 합니다. 숫자 값이나 문자열이 될 수 있습니다. 모듈의 입력 매개 변수를 추가하지 않으면, 모듈은 기본 입력 매개 변수에 따라 실행됩니다.

img

이 모듈의 계산 결과를 이렇게 계산하는 분기근 계산 모듈이 출력합니다

img

보시다시피, 입력 매개 변수 위치가 기본값이라면, 기본값인 9은 입력 매개 변수로 9의 제곱근을 계산하는 데 사용됩니다.

img

물론, 만약 당신이 입력 매개 변수 모듈을 입력 매개 변수로 사용하려면, 당신은 직접 텐온 (공각) 위치로 변수 모듈을 연결할 수 있습니다.

img

  1. 운영 모듈은 왼쪽 마우스 버튼으로 클릭하고 끌 수 있습니다. 모듈은 ctrl+c로 복사하고 ctrl+v로 붙여넣을 수 있습니다. 코드나 텍스트를 복사하고 붙여넣는 것만큼 편리합니다. 운영 영역은 마우스 바퀴로 확장할 수 있고 모든 모듈은 더 크고 작을 수 있습니다. 작업 영역에서 빈 위치를 클릭하고 끌고 이동합니다. 오른쪽의 쓰레기통은 최근에 삭제된 모듈을 기록합니다. 가장 중요한 것은 모듈 전략을 스플라이싱 한 후, 저장 클릭을 잊지 마십시오.

시각화 도구 모듈에 대한 소개

시각 편집 영역의 왼쪽에 많은 모듈 분류가 있는 것을 볼 수 있습니다. 그리고 각 분류 프로젝트에서 많은 시각 모듈이 있습니다.

11개의 카테고리가 있습니다.

img

사용 모듈:

img img img

  1. 출력 정보: 이 모듈은 일반적으로 아래와 같이 텍스트 클래스의 모듈과 함께 사용됩니다.

img

텍스트 모듈에 문자열을 입력하면 출력 정보 모듈을 실행하면 텍스트 모듈의 문자열 내용이 인쇄됩니다.

img

백테스팅:

img img

자바스크립트 언어 코드처럼:

function main(){
    Log("Hello, Blockly!")
}
  1. 웨이차트 푸스: 이 모듈은 출력 정보과 같은 외모를 가지고 있으며, 동시에 현장 계좌에 연결된 WeChat에 정보를 푸시하는 것과는 다릅니다.

img

자바스크립트 언어 코드처럼:

function main () {
Log("WeChat Push!@")
}
  1. 예외를 던져 예외 모듈을 던지면 프로그램이 오류를 발생시키고, 그 다음 프로그램이 실행을 중지합니다. (특례 처리 코드를 쓰지 않고).

img

마찬가지로, 자바스크립트 전략에서는 메인 함수가 string to output 함수를 직접 실행합니다.

function main () {
    throw "The first sentence throws an exception to stop the program!"
}

백테스트 결과:

img img

일반적으로 디버깅을 할 때 더 많이 사용됩니다. 예를 들어, 특정 조건 하에서 프로그램을 중지하고 관찰을 위해 그 시간에 데이터를 인쇄하기를 원한다면. 또는 문제가 발생할 수 있는 코드 흐름에 예외 모듈을 배치하여 프로그램이 오류를 보고하여 오류를 찾을 수 있습니다.

  1. 잠자리 수면 모듈

img

자바스크립트 전략에서와 같이:

function main () {
    Sleep(1000 * 5)
}

잠자리 모듈 테스트:

img

백테스트 결과:

img

  1. 인쇄 반환

img

이 모듈은 FMZ 퀀트 트레이딩 플랫폼의 API 기능 LogProfit와 마찬가지로 자동으로 리턴 로그를 인쇄하고 입력 매개 변수에 따라 리턴 곡선을 그리는 것입니다.

예를 들어:img백테스팅의 실행은 아래 그림에서 보여집니다.

img

대응하는 자바스크립트 전략 코드는 다음과 같습니다.

function main () {
    LogProfit(1)
    Sleep(1000 * 5)
    LogProfit(2)
    Sleep(1000 * 5)
    LogProfit(3)
    Sleep(1000 * 5)
    LogProfit(2)
    Sleep(1000 * 5)
    LogProfit(5)
}

어떤 위치에서든 스플라이스를 할 수 있습니다

  1. 루프img루프 모듈은 일련의 스플라이스 모듈 조합을 포장하여 모듈 조합이 루프를 실행할 수 있습니다.

테스트:img백테스트 결과:

img

우리는 print returnsleep로 구성된 모듈 조합이 루프 모듈이 랩된 후에 지속적으로 실행될 수 있음을 볼 수 있습니다.

  1. 루프 실행 N초마다img이 모듈의 사용은 기본적으로 루프 모듈과 동일합니다. 유일한 차이점은 모듈이 자신의 수면을 가지고 있다는 것입니다.img

  2. 정밀 처리img이 모듈은 변수 모듈 또는 수치 값이 정밀도를 제어해야 할 때 사용할 수 있습니다. 입력 매개 변수 부분의 수치 값은 설정에 따라 지정된 소수점의 수치 값으로 출력됩니다.

예를 들어, 3.1415926535897 값에서 정밀 처리가 수행됩니다.

img

백테스팅 표시:

img

  1. 로그 삭제img

로그를 삭제하는 데 사용됩니다. 입력 매개 변수에 따라 일부 로그를 유지할 수 있습니다. API 문서에서와 같이:

LogReset()
  1. 회귀 로그를 삭제img

반환 로그를 삭제하는 데 사용됩니다. 입력 매개 변수에 따라 일부 로그를 유지할 수 있습니다. API 문서에서와 같이:

LogProfitReset()

다음은 자주 사용되는 도구 모듈입니다

  1. 시장의 특정 특성을 얻기 위한 기능 모듈img이 도구 모듈은 그림과 같이 트랜잭션 모듈 타입의 코팅 모듈과 함께 사용되어야 합니다.img출력 정보 모듈을 사용하여 최신 틱 시장의 최신 거래 가격을 출력합니다.img백테스팅 표시:img

자바스크립트 전략 코드처럼:

function main () {
    Log(exchange.GetTicker().Last)
}
  1. K-라인 데이터의 바의 속성을 얻는 모듈img이 모듈은 또한 트랜잭션 모듈 타입의 K-라인 데이터 획득 모듈과 함께 사용되어야 합니다.

먼저 K-라인이라는 변수 모듈을 만듭니다.img그러면 K-라인 데이터를 얻고, K-라인 데이터 모듈을 사용하여 그것을 얻고, 변수 모듈에 값을 할당합니다: K-라인img그 다음 우리는 K-라인 변수 모듈의 길이를 얻기 위해 List Module Type의 리스트 길이 모듈을 사용합니다. 이 모듈은 데이터를 얻기 위해 K-라인의 어떤 바를 지정하는 데 사용됩니다.img그림과 같이 합쳐서img

마지막 K-라인 바의 시간표는 백테스트가 실행될 때 인쇄됩니다.img

  1. 주문서에서 주문 데이터를 얻는 모듈img또한 트랜잭션 모듈 타입에서 깊이 데이터 모듈을 얻음과 함께 사용해야합니다.img인덱스는 0으로 설정되고 판매 주문은 판매 주문 하나에 대한 정보를 얻기 위해 설정됩니다.

img

자바스크립트 전략 코드처럼:

function main () {
    Log(exchange.GetDepth().Asks[0])
}
  1. 자산 정보에서 속성을 얻는 모듈img이 모듈은 자산 정보 획득 모듈과 함께 사용되어야 합니다.img예를 들어: 현금 계좌의 사용 가능한 통화를 인쇄img백테스팅 표시:img

자바스크립트 전략 코드처럼:

function main () {
    Log(exchange.GetAccount().Stocks)
}
  1. 순서 데이터에서 속성을 얻는 모듈img이 모듈은 주문 데이터의 속성의 값을 얻기 위해 사용됩니다. 예를 들어 주문 책상에서의 가격이나 판매량 (예제 13호).img

백테스트 결과:img

자바스크립트 전략 코드처럼:

function main () {
    Log(exchange.GetDepth().Asks[0].Price)
}

또한 Query Order Details Module (첨단 장에서 설명할 것) 에 의해 반환된 순서 정보의 속성을 얻기 위해 사용될 수 있습니다.

  1. 위치 정보에서 위치의 속성을 얻기 위한 모듈img마찬가지로, Get Futures Position Module와 함께 사용되어야 합니다. Get Futures Position Module가 반환하는 위치 데이터는 서로 다른 계약과 방향의 포지션을 포함하는 배열 (목록) 입니다. 따라서, 인덱스를 사용할 때 지정해야 합니다.

이렇게 많은 것을 배운 후에, 단기 계약과 선물 계약 모두를 헤지하는 헤지 운영을 결합해 봅시다.

우리는 긍정적인 중재 헤지를 만듭니다. 즉, 포워드 계약에 대한 짧은 포지션 계약을 열고 최근 계약에 대한 긴 포지션 계약을 열죠.

img

백테스트 결과:

img

시각화 전략의 예:

https://www.fmz.com/strategy/121404 https://www.fmz.com/strategy/129895 https://www.fmz.com/strategy/123904 https://www.fmz.com/strategy/122318더 많은 전략은 참조하십시오:https://www.fmz.com/square

이 시리즈의 다른 제품

-거래 전략을 구축하기 위한 시각화 모듈 - 깊이 있는 (https://www.fmz.com/digest-topic/9509) - 거래 전략을 구축하는 시각화 모듈 - 고급 이해 (https://www.fmz.com/bbs-topic/9815)

지루한 프로그래밍은 빌딩 블록으로 쉽게 완료 될 수 있습니다. 시도하는 것이 매우 흥미 롭습니다!


관련

더 많은