CTA 전략의 개발과 FMZ 퀀트 플랫폼의 표준 클래스 라이브러리

저자:리디아, 창작: 2023-01-11 14:47:52, 업데이트: 2023-09-20 11:03:03

img

CTA 전략의 개발과 FMZ 퀀트 플랫폼의 표준 클래스 라이브러리

1세대 CTA 거래 시스템과 전략

1960년대와 1970년대에 등장한 CTA 거래 시스템의 첫 번째 세대. 당시의 원자재 시장의 강력한 추세로 인해 CTA 전략은 그 당시 상당한 성과를 거두었다. 이 기간 동안의 원자재 시장의 강력한 추세는 제2차 세계 대전 이후 지속적인 경제 성장과 증가하는 경제 인플레이션으로 인해 발생할 수 있다. 강력한 트렌드 시장은 간단한 트렌드 추적 시스템을 통해 더 나은 수익을 얻을 수 있다. 첫 번째 세대의 CTA 시스템은 더 적은 기본 시장과 품종을 다루고 있으며 거래 시스템은 비교적 간단하며 일반적으로 여러 거래 목표를 추적하는 거래 시스템이다. 그 당시의 원자재 시장의 추세 때문에이 전략은 잘 작동했다.

1세대 트레이딩 시스템에서 사용되는 전략은 현재 트렌드 추적 전략에 익숙한 것, 예를 들어 모바일 평균 시스템 (단기 이동 평균이 장기 이동 평균을 초과하거나 그 반대의 경우와 같은 몇 가지 간단한 필터링 조건과 함께). 간단한 트렌드 추적 전략은 거래 목표 기본 요소의 연속 트렌드를 효과적으로 재생할 수 있습니다. 지속적인 경제 성장, 인플레이션 및 석유 위기가 이러한 끈기있는 이유입니다. 그러나 많은 거래자가 동일한 전략을 사용하고 기본 요소가 계속 존재할 때 새로운 환경에 적응하기 위해 1세대 거래 전략이 개발되어야합니다.

제2세대 CTA 거래 시스템과 전략

미국 달러와 금의 분리로 인해 1970년부터 1980년까지 금융 선물 시장은 급속도로 발전하여 선물 관리 펀드가 화폐 시장, 채권 시장, 주식 지수 선물 및 주식 금융 파생 상품을 포함한 많은 선물 시장에 참여할 수있었습니다. 또한 정보 기술의 발전과 저렴한 비용으로 낮 동안 데이터를 쉽게 얻을 수 있습니다. CTA 펀드에 들어가는 자금 규모의 증가와 경쟁이 증가함에 따라 CTA 전략이 더 복잡하고 적응력이 있습니다.

위의 시장 특성을 바탕으로, 두 번째 세대의 CTA 거래 시스템과 전략은 첫 번째 세대의 CTA 전략에 비해 다음과 같은 특징을 가지고 있습니다.

  • 거래의 테마는 더 다양합니다. 금융 선물 시장의 진출은 거래의 다양성과 시장을 더 다양화했습니다.

  • 트레이딩 전략의 관점에서, 2세대 CTA 트레이딩 시스템의 전략은 순수한 트렌드 추적과 가격 돌파로 국한되지 않습니다. 여러 시장을 모니터링하기 위해 더 많은 수학적 모델을 적용합니다. 다른 시장 조건이나 평균 반응 전략에 따라 트렌드 추적을 사용 여부. 많은 기관이 미래에셋 시장의 유동성에 참여하기 때문에 미래에셋 시장의 지속적인 낮은 변동성 기간도 나타났습니다. 이 경우 전통적인 1세대 CTA 시스템은 수익을 창출하고 시장 변화에 적응하기가 어렵습니다. 이 전략은 중요해집니다.

  • 제2세대 CTA 전략은 거래 창과 보유 시간에 단기 거래를 수행 할 수 있습니다. 제1세대 CTA 전략과 달리 제2세대 전략은 단기 및 고주파 트레이딩 내일 거래 패턴을 모니터링하기 시작했습니다. 이 기능은 컴퓨터 기술의 발달로 인해 금융 데이터의 제공이 보다 신속하고 빈번하게됩니다.

제3세대 CTA 거래 시스템과 전략

세 번째 세대의 CTA 거래 시스템은 두 번째 세대의 거래 시스템의 추가 다양화, 분산화 및 적응력입니다. 세 번째 세대의 CTA는 더 많은 시장과 품종을 거래하기 위해 더 많은 거래 시스템을 사용합니다. 전략의 측면에서 더 수익성있는 시장 모델을 사용합니다. 이 모든 것은 여러 시장에서 실행되는 여러 모델의 조합에 기반합니다.

CTA 전략의 광범위한 응용과 시간이 지남에 따라 CTA 전략의 성숙성을 고려하여 많은 수의 양적 트레이더 (특히 초보자) 가 널리 접촉하고 이해하고자하는 고전적인 전략 모델입니다. FMZ Quant 플랫폼은 매우 일찍 표준 CTA 전략 클래스 라이브러리를 개발했습니다. FMZ Quant 플랫폼에서 CTA 전략을 적용하고 싶다면 단순히 코드를 복사하거나 클래스 라이브러리를 직접 참조할 수 있습니다.

확장성 또한 매우 편리합니다. 코드 코멘트는 매우 명확하고 이해하기 쉽습니다. 깊이 있는 사용자 정의 또는 확장 작업을 수행하려면 기존 프레임워크에서 직접 수행해야합니다.

소스 코드의 일부 (자바스크립트 버전):

function main() {
    $.CTA(exchanges[0], 0.01, function(r, mp, pair){  // The first parameter is the exchange object to be done, the second parameter 0.01 is the minimum order quantity required by the exchange, the third anonymous function function() {...} is the callback function, and the trading logic is written in the function. The first parameter r of the callback function receives the latest K-line data, the second parameter receives the number of positions, and the third parameter receives the name of the trading pair.

        if (r.length < 20) {   // Determine the number of K-line bars 
            return
        }
        var emaSlow = TA.EMA(r, 20)
        var emaFast = TA.EMA(r, 5)
        var cross = _Cross(emaFast, emaSlow); // To determine the intersection status of indicators, for _Cross, please refer to: https://www.fmz.com/bbs-topic/9116
        if (mp <= 0 && cross > 1) {
            Log(pair, "Buy, Golden Cross period", cross, "mp:", mp);
            return 0.1 * (mp < 0 ? 2 : 1)  // The value returned is the number of positions to be opened, a positive number is to open a long position, a negative number is to open a short position, and 0 is to close all positions.
        } else if (mp >= 0 && cross < -1) {
            Log(pair, "Sell, Bearish Crossover period", cross, "mp:", mp);
            return -0.1 * (mp > 0 ? 2 : 1)
        }
    })
}

img

소스 코드 및 클래스 라이브러리에 대한 자세한 내용은 다음을 참조하십시오:https://www.fmz.com/strategy/57267.


관련

더 많은