3.1 양적 거래 프로그래밍 언어 평가

저자:선함, 2019-04-18 15:03:37, 업데이트: 2019-04-27 11:54:49

요약

1장과 2장에서는 양적 거래의 기초와 FMZ 퀀트 도구의 사용법을 배웠습니다. 이 장에서는 실제 거래 전략을 구현할 것입니다. 만약 작업자가 좋은 일을 하고 싶다면 먼저 도구를 날카롭게 해야 합니다. 거래 전략을 구현하려면 먼저 프로그래밍 언어를 익혀야 합니다. 이 섹션에서는 먼저 양적 거래의 주류 프로그래밍 언어와 각 프로그래밍 언어의 특성을 소개합니다.

프로그래밍 언어란 무엇인가요?

프로그래밍 언어를 배우기 전에 먼저 프로그래밍 언어의 개념을 이해해야 합니다. 프로그래밍 언어는 인간과 컴퓨터가 모두 이해할 수 있는 언어입니다. 표준화된 통신 코드입니다. 프로그래밍 언어의 목적은 컴퓨터를 제어하고 우리가 무엇을 할 것인지 컴퓨터에 알려주는 인간의 언어를 사용하는 것입니다. 컴퓨터는 프로그래밍 언어에 따라 명령을 실행할 수 있으며, 우리는 컴퓨터에 명령을 내리기 위해 코드를 작성할 수도 있습니다.

부모님이 우리에게 말을 가르쳤고 다른 사람들이 말하는 것을 이해하는 방법을 가르쳐주셨듯이. 오랜 교육과 자기 학습 후, 우리는 모르는 사이에 말을 배우고 다른 아이들이 말하는 의미를 이해할 수 있습니다. 중국어, 영어, 프랑스어 등과 같은 많은 언어가 있습니다.

  • 중국어: 안녕하세요

  • 영어: Hello World

  • 프랑스어: Bonjour tout le monde

컴퓨터 화면에 Hello World을 표시하기 위해 프로그래밍 언어를 사용하는 경우 다음과 같습니다.

  • C 언어: put (Hello World);

  • 자바 언어: System.out.println ((Hello World);

  • 파이썬 언어: 인쇄 (Hello World)

컴퓨터 언어는 고유한 규칙이 있고, 많은 언어들이 있다는 것을 알 수 있습니다. 이 언어 규칙들은 우리가 오늘 설명해야 할 프로그래밍 언어의 분류입니다. 각 카테고리에서는 가장 기본적인 규칙을 기억해야 합니다. 이 프로그래밍 언어를 사용하여 컴퓨터와 통신하고 컴퓨터가 우리의 지침에 따라 대응 전략을 실행하도록 할 수 있습니다.

프로그래밍 언어 분류

참조 및 비교를 용이하게하기 위해, 자신에게 맞는 양적 거래 프로그래밍 언어를 선택하십시오. 우리는 가장 일반적으로 사용되는 여섯 가지 프로그래밍 언어를 분류합니다: 파이썬, MATLAB / R, C ++, Java / C #, EasyLanguage 및 시각 프로그래밍 언어 (아래에 표시된 바와 같이).

img

우리는 기능 능력, 속도, 확장 및 학습 어려움에 따라 평가합니다. 예를 들어, 기능 범위에서 1에서 5까지의 점수는 강력하고 1 점은 기능성이 적다는 것을 의미합니다. (위와 같이) 시각 프로그래밍과 EasyLanguage는 배우기 쉽고 매우 새롭습니다. 파이썬은 강력한 확장 기능을 가지고 있으며 더 복잡한 거래 전략을 개발하는 데 적합합니다. C ++ 프로그래밍은 가장 빠르고 고 주파수 거래자에게 더 적합합니다.

하지만 각 프로그래밍 언어에 대한 평가는 주로 양적 거래 분야에서 적용됩니다. 그리고 개인의 주관적 구성 요소와 함께. 당신은 또한 직접 탐구 할 수 있습니다. 다음, 우리는 하나씩이 이러한 프로그래밍 언어를 소개하기 시작할 것입니다.

시각 프로그래밍

시각 프로그래밍은 오래전부터 존재해 왔습니다. 이런 종류의 프로그래밍 아이디어는 다양한 제어 모듈을 갖추고 있습니다. 드래그 앤 드롭만으로 코드 로직을 만들고, 거래 전략 디자인을 완료할 수 있습니다.

img img

위와 같이, 같은 절차는 FMZ Quant 거래 플랫폼의 시각 프로그래밍에 몇 줄의 코드입니다. 이것은 프로그래밍 문턱을 크게 줄여줍니다. 특히 프로그래밍을 전혀 이해하지 못하는 거래자에게는 훌륭한 운영 경험입니다.

이 시각 프로그래밍의 기본 구현 전략이 C++로 변환되기 때문에 프로그램의 실행 속도에 거의 영향을 미치지 않습니다. 그러나 기능과 확장성은 약하며 너무 복잡하고 너무 정교한 거래 전략을 개발하는 것이 불가능합니다.

EasyLanguage

img

이른바 EasyLanguage는 일부 상용화 된 양적 거래 소프트웨어에 고유한 프로그래밍 언어를 의미합니다. 이러한 언어에도 일부 객체 지향 기능이 있지만 주로 응용 프로그램에서 스크립트됩니다. 문법 측면에서, 그것은 또한 우리의 자연 언어에 매우 가깝습니다. 양적 거래의 초보자에게는 출발점으로 EasyLanguage를 사용하는 것이 좋은 선택입니다. 예를 들어 FMZ Quant 플랫폼의 M 언어.

이 유형의 스크립트 언어는 전략 백테스팅과 특정 소프트웨어의 실제 시장에 문제가 없지만 확장 측면에서 제한적입니다. 예를 들어 전략 개발자는 외부 API를 호출 할 수 없습니다. 실행 속도에서이 스크립트 언어는 자체 가상 머신에서 실행되며 성능 최적화는 Java / C #만큼 좋습니다.

파이썬

아래 그림에서 볼 수 있듯이, 스택오버플로우에서 주류 프로그래밍 언어 접근의 수는 최근 몇 년 동안 크게 변하지 않았으며 파이썬만이 엄청나게 증가하고 있습니다. 파이썬은 웹 개발, 머신 러닝, 딥 러닝, 데이터 분석 등에 사용할 수 있습니다. 유연성과 개방성으로 인해 가장 다재다능한 언어가되었습니다. 양적 투자 분야에서도 마찬가지입니다. 현재 글로벌 양적 플랫폼은 대부분 파이썬을 기반으로합니다.

img

파이썬의 기본 데이터 구조 목록과 사전은 매우 강력하며 데이터 분석의 거의 모든 요구를 충족시킬 수 있습니다. 더 빠르고 포괄적인 데이터 구조가 필요한 경우 NumPy와 SciPy가 권장됩니다. 이 두 라이브러리는 기본적으로 파이썬 과학 컴퓨팅의 표준 라이브러리라고합니다.

금융 공학에 있어서, 보다 타겟화된 라이브러리는 두 가지 데이터 구조인 시리즈와 데이터프레임으로, 시간 시리즈를 처리하는데 이상적입니다.

속도 측면에서 파이썬은 게임 중간에 있습니다. C++보다 느리고 EasyLanguage보다 빠릅니다. 주로 파이썬은 순수한 파이썬 언어로서 정상 속도로 실행되는 동적 언어이기 때문입니다. 그러나 당신은 C++의 속도 가까이 가기 위해 몇 가지 기능을 정적으로 최적화하기 위해 Cython을 사용할 수 있습니다.

접착어로서, 파이썬은 확장성 측면에서 1위이다. 다른 언어와 광범위하게 인터페이스를 할 수있는 것 외에도 확장 API의 디자인은 사용하기 매우 쉽습니다. 학습 어려움 측면에서, 파이썬은 간단한 문법, 높은 코드 가독성 및 쉬운 입력을 가지고 있습니다.

MATLAB/R

그 다음에는 MATLAB와 R 언어가 있습니다. 이 두 언어는 주로 데이터 분석에 초점을 맞추고 있습니다. 언어 제작자는 문법에서 과학적 작업을 위해 많은 디자인을 수행했으며, 이는 양적 거래 운영에 대한 자연스러운 지원으로 특징입니다. 그러나 응용 범위는 제한되어 있으며 일반적으로 데이터 분석 및 전략 백테스팅에 사용됩니다. 거래 시스템 및 전략 알고리즘 개발을 위해 사용 용이성과 안정성이 적습니다.

또한, 그들의 속도와 확장성은 상대적으로 낮습니다. 왜냐하면 Matlab과 R 언어는 독특한 언어 가상 머신에서 실행되기 때문입니다. 성능 측면에서, 그들의 가상 머신은 Java와 C#보다 훨씬 나빠집니다. 그러나 그들의 문법은 수학적 표현식 공식에 가깝기 때문에 비교적 쉽게 배울 수 있습니다.

C++

C++는 절차 프로그래밍, 데이터 추상화, 객체 지향 프로그래밍, 일반 프로그래밍 및 디자인 패턴과 같은 여러 프로그래밍 패턴을 지원하는 일반용 프로그래밍 언어입니다. C++에서 달성하고자하는 모든 기능을 구현할 수 있지만, 그러한 강력한 언어의 가장 큰 단점은 템플릿, 포인터, 메모리 누출 등과 같은 학습이 매우 어렵다는 것입니다.

현재, C++는 여전히 높은 용량, 높은 주파수 거래에 선호되는 프로그래밍 언어입니다. 이유는 간단합니다. C++ 언어 기능이 컴퓨터의 기본 계층에 더 쉽게 액세스하기 때문에 대용량의 데이터를 처리하는 고성능 백테스팅 및 실행 시스템을 개발하는 가장 효과적인 도구입니다.

자바/C#

자바/C#는 가상 머신에서 실행되는 정적 언어이다. C++와 비교하면 배열이 제한되지 않고 코어 덤프도 없고, 던진 예외는 오류 코드를 정확하게 찾을 수 있고, 자동 쓰레기 수집 메커니즘을 가져올 수 있으며, 메모리 누출에 대해 걱정할 필요가 없다. 그래서 문법 학습 어려움 측면에서, 그들은 또한 C++보다 더 쉽다. 속도 측면에서, 그들의 가상 머신은 실행 시간에 컴파일된 JIT 함수와 함께 있기 때문에, 속도는 C++에 불과하다.

하지만 기능적인 측면에서 C++와 같은 기본 트레이딩 시스템을 최적화하는 것은 불가능합니다. 확장 성능의 측면에서 C++보다 약합니다. 왜냐하면 그들의 확장은 C 브릿지를 통과해야하고 두 언어 자체는 가상 머신에서 실행되기 때문에 함수 모듈을 확장할 때 한 층 더 벽을 넘어야합니다.

요약하면

그러나, 결국, 양적 프로그래밍 언어는 중요하지 않습니다, 중요한 것은 아이디어입니다. FMZ 양적 M 언어와 시각적 프로그래밍 언어는 양적 거래에 진입하는 계단으로 완전히 문제가 없습니다. 기본 이후, 개선은 지속적으로 다른 시장 조건을 탐구하고 C ++와 같은 더 기반 언어를 사용하려고합니다.

전략을 설계하고 아이디어를 거래하십시오. 이러한 관점에서 양적 거래의 핵심은 여전히 아이디어를 거래합니다. 양적 거래자로서, 전략 작성 플랫폼의 기본 문법과 기능을 마스터 할뿐만 아니라 실제 전투에서 거래 개념을 이해해야합니다. 양적 거래는 다른 거래 개념을 구현하는 도구와 운반자입니다.

학교 밖 운동

  1. 양적 거래 도구로서 파이썬 언어의 장점은 무엇입니까?

  2. M 언어로 몇 개의 일반적으로 사용되는 API를 작성하려고 노력합니까?

다음 섹션에 대한 알림

저는 프로그래밍 언어에 대한 위의 소개와 함께, 당신은 그것을 선택하는 방법을 알아야 한다고 믿습니다, 다음 몇 장에서, 우리는 프로그래밍 언어의 분류에 기초한 양적 거래 전략을 개발할 것입니다.


더 많은