알고리즘 트레이딩에서의 파이썬 - 페이지 20

 

Python Strategy Backtesting에서 트레일 스톱을 코딩하는 방법



Python Strategy Backtesting에서 트레일 스톱을 코딩하는 방법

오늘 저는 Python에서 흥미로운 코딩 튜토리얼을 준비했습니다. 우리는 트레이딩 전략에서 트레일링 스톱을 구현하는 방법을 배우고 그것이 주식과 수익에 미치는 영향을 분석할 것입니다. 이 채널을 처음 사용하는 경우 이 재생목록의 이전 동영상, 특히 전략에 대해 자세히 논의한 지난 2~3개의 동영상을 시청하는 것이 좋습니다. 설명에 있는 링크에서 다운로드할 수 있는 Jupiter 노트북에서 Python 코드를 찾을 수도 있습니다. 이렇게 하면 매개변수를 미세 조정하고 직접 실험할 수 있습니다.

코딩 부분으로 들어가기 전에 사용할 전략을 간략하게 요약해 보겠습니다. 간단히 말해서, 우리는 지원 및 저항 수준 감지와 이러한 수준 주변에서 발생하는 촛대 패턴 식별을 자동화했습니다. 이러한 신호를 기반으로 거래 주문을 실행할 것입니다. 예를 들어 강력한 거부 캔들이 선행하는 강세 삼킴 패턴과 같은 구매 신호를 식별하면 롱 포지션에 진입하게 됩니다. 위험을 관리하려면 허용할 수 있는 최대 손실을 결정하는 손절매 주문을 설정해야 합니다. 전통적으로 손절매는 진입 가격에서 일정한 거리에 고정됩니다. 그러나 이 자습서에서는 후행 정지로 대체합니다.

트레일링 스톱은 수익성 있는 방향으로 가격 움직임을 따라가므로 상승 추세에서 더 많은 이익을 얻을 수 있습니다. 우리의 예에서 우리는 매수 포지션에 있기 때문에 트레일링 스톱은 가격이 상승함에 따라 가격과 함께 따라갈 것이며 그 뒤에 일정 거리를 유지합니다. 그러나 가격이 반전을 시도하고 손절매 수준에 도달하면 추가 손실을 방지하기 위해 거래가 종료됩니다. 이 트레일링 스톱 메커니즘은 우리의 잠재적 이익을 제한할 수 있는 고정된 이익실현 수준을 사용하는 대신 특히 장기적인 가격 추세 동안 이익을 극대화하는 데 도움이 됩니다.

이제 이 개념을 이전에 논의한 전략에 적용해 보겠습니다. 이전에 설명한 것과 동일한 프로그램을 사용할 것입니다. 익숙하지 않다면 재생 목록을 참조하고 캔들 스틱 패턴과 지원 및 저항 수준 감지의 자동화를 다루는 마지막 2-3개의 비디오를 시청하십시오. 이번에 유일한 차이점은 고정 손절매 또는 이익 실현 비율을 사용하는 대신 트레일링 손절매를 구현한다는 것입니다. 이 튜토리얼이 끝날 무렵 전략을 백테스트하고 이 후행 중지 방법으로 달성할 수 있는 잠재적인 수익을 보여줄 것입니다.

시작하려면 2003년부터 2021년까지 EUR/USD 통화 쌍의 일일 촛대 차트인 데이터를 로드합니다. 우리는 지원 및 저항 수준을 감지하는 데 도움이 되는 일련의 기능과 삼키는 패턴과 같은 다양한 촛대 패턴을 가지고 있습니다. 유성과 거부 패턴. 이러한 기능의 구현 세부 사항에 관심이 있는 경우 이전 비디오를 참조하십시오.

다음으로 거래 신호를 생성합니다. 매수 신호는 값 2로, 매도 신호는 1로 표시하며 신호가 없으면 값을 0으로 설정합니다. 이 정보는 데이터 프레임의 새 열로 추가됩니다. 시가, 고가, 저가, 종가, 거래량(이 전략에서는 사용하지 않음) 및 신호 열에 대한 열이 포함된 데이터 프레임의 현재 모양은 다음과 같습니다.

전략을 백테스팅하기 위해 이 재생 목록의 마지막 비디오에 소개된 백테스팅 패키지를 활용할 것입니다. 백테스팅 패키지에서 제공하는 "Strategy" 클래스를 상속받은 "MyCandleStrategy"라는 클래스를 정의합니다. "초기화"와 각 촛대에서 호출되는 다음 함수의 두 가지 함수를 재정의합니다. 초기화 함수에서 트레일링 스톱의 거리(핍 단위)를 나타내는 "stop_loss_trail" 변수를 정의합니다. 이 값을 실험하여 전략에 대한 최적의 트레일링 스톱 값을 찾을 수 있습니다.

다음 함수에서는 트레일링 스톱에 대한 논리를 구현합니다. 오픈 포지션이 있는지 확인하는 것으로 시작합니다. 그렇게 하면 포지션에 진입한 이후 가장 높은 가격에서 추적 손절매 값을 빼서 현재 손절매 수준을 계산합니다. 이렇게 하면 가격이 상승함에 따라 손절매 수준이 가격 뒤에 오게 됩니다. 그런 다음 현재 가격이 손절매 수준에 도달했는지 또는 아래로 떨어졌는지 확인합니다. 그렇다면 우리는 포지션을 닫고 거래 통계를 업데이트합니다.

후행 중지 논리를 구현했으므로 백 테스트를 실행하고 결과를 분석할 수 있습니다. 다음은 백 테스트를 실행하고 주식 곡선을 인쇄하는 방법에 대한 예입니다. 이렇게 하면 트레일링 스톱이 적용된 전략의 주식 곡선을 보여주는 도표가 생성됩니다. 전략의 성과를 평가하기 위해 백테스팅 패키지에서 제공하는 다른 성과 메트릭 및 통계에 액세스할 수도 있습니다.

마지막으로 후행 중지 값을 미세 조정하기 위해 값 범위를 반복하고 여러 백 테스트를 실행하여 결과를 비교할 수 있습니다. 이렇게 하면 수익을 극대화하는 최적의 트레일링 스톱 값을 찾는 데 도움이 됩니다.

이것으로 트레이딩 전략에서 트레일링 스톱을 구현하는 방법에 대한 튜토리얼을 마칩니다. 실제 거래에 적용하기 전에 다양한 값으로 실험하고 전략을 철저하게 테스트해야 합니다. 질문이 있거나 추가 지원이 필요하면 언제든지 문의하십시오. 행복한 코딩과 행복한 거래!

How To Code A Trail Stop In Python Strategy Backtesting
How To Code A Trail Stop In Python Strategy Backtesting
  • 2021.10.22
  • www.youtube.com
Trailing stop, or stop loss strategy is presented and coded in python for algorithmic trading methods. The strategy is Backtested showing high profitability...
 

Python에서 거래 전략을 백테스트하는 방법



Python에서 거래 전략을 백테스트하는 방법

안녕하세요, 여러분, 또 다른 비디오에 오신 것을 환영합니다. 오늘은 저희 트레이딩 전략에서 매우 중요한 백테스팅에 대해 말씀드리고자 합니다. 지금까지 우리는 다양한 전략을 제시했으며 거래에 대한 모델 추정의 신뢰성을 확인하기 위해 통계적 수치에만 의존했습니다. 그러나 전략을 백테스팅하면 특정 시간 내에 얻을 수 있는 이익의 양과 같은 추가 정보가 제공됩니다.

이 수익 비율은 전략에 대한 투자를 고려하고 있는지 정의하는 데 중요합니다. 계속하기 전에 평소와 같이 코드는 이 비디오 설명의 링크에서 다운로드할 수 있는 Jupyter Python 노트북입니다. 이 주제는 귀하의 메시지 중 하나에서 제안되었으므로 귀하의 생각을 공유해 주셔서 다시 한 번 감사드립니다. 귀하의 피드백에서 정말 흥미로운 아이디어를 얻고 있습니다. 제안된 모든 아이디어에 대해 논의할 시간이 없었다면 죄송합니다. 하지만 목록을 유지하고 있으며 향후에 다루게 될 것 같습니다.

이제 백 테스팅 도구에 대해 이야기합시다. 온라인에서 사용할 수 있는 라이브러리가 많이 있지만 개인적으로 나만의 기능을 코딩하는 것을 선호합니다. 이렇게 하면 특히 백테스팅과 관련하여 내 코드 내에서 무슨 일이 일어나고 있는지 정확히 알 수 있습니다. 안정적이고 강력한 것이 필요합니다. 그러나 제안된 패키지 중에서 두 가지 선택이 있었습니다. 하나는 "vectorbt"라는 패키지를 사용하는 것인데, 몇 시간 안에 배우고 내 자신의 전략에 사용하기가 약간 어렵다는 것을 알았습니다. 문서가 부족했고 많은 세부 정보를 찾기 위해 포럼과 온라인 예제를 검색해야 했습니다. 엄청난 잠재력을 가지고 있고 많은 옵션을 제공하지만 단순한 전략 하나를 테스트하기 위해 필요한 기능에 익숙해지는 데 한 달을 보내고 싶지 않았습니다.

그래서 이 비디오에서는 "backtesting.py"라는 패키지인 두 번째 선택을 선택했습니다. 제 생각에는 더 간단한 접근 방식을 제공합니다. 이제 우리의 전략으로 얼마나 많은 돈을 벌 수 있었는지 살펴보겠습니다. 이 예에서는 저항에서 논의한 이전 전략을 테스트하고 자동 감지 및 촛대 패턴 감지 비디오를 지원합니다. 이 비디오에서 결합하여 사용할 두 가지 지표입니다.

먼저 데이터를 로드하고 정리하겠습니다. 그런 다음 감지를 위해 지지 및 저항 함수를 적용하겠습니다. 이 채널에서 처음 시청하는 경우 지원 및 저항 기능을 감지하는 방법에 대한 이전 동영상으로 돌아가서 삼키는 패턴, 별똥별, 교수형 사람을 감지하는 방법을 설명하는 동영상을 확인하는 것이 좋습니다. 다른 촛대 패턴.

다음으로 앞서 언급한 접근 방식을 기반으로 매수 신호, 매도 신호 또는 신호 없음 여부에 관계없이 신호를 계산합니다. 두 신호에 레이블을 지정하고 데이터 프레임의 한 열을 채웁니다. 기능이 제대로 작동하는지 확인하기 위해 얻은 신호 수를 확인할 수 있습니다.

이제 backtesting.py 패키지와 호환되도록 열 제목을 변경하겠습니다. 이 단계는 대소문자를 구분하므로 이름이 정확히 일치하는지 확인해야 합니다. 그런 다음 작업할 일련의 행을 선택합니다.

데이터 프레임을 설정한 후 전략을 정의하고 백테스팅하는 가장 흥미로운 부분으로 이동합니다. "전략" 모듈을 포함하여 필요한 라이브러리를 가져오고 느린 이동 평균과 빠른 이동 평균의 교차에 대한 예제를 제거합니다.

다음으로 "Strategy" 클래스를 확장하고 두 가지 추상 메서드인 __init__ 및 next를 재정의하는 "MyCandlesStrategy"라는 새 클래스를 정의합니다. __init__ 메서드는 전략의 시작 부분에서 첫 번째 변수 또는 함수를 초기화하는 데 사용됩니다. 한 번만 실행되며 이상적으로는 전략이 의존하는 모든 지표와 신호를 미리 계산합니다.

전반적으로 백테스팅은 특정 기간 동안 전략의 잠재적 수익성에 대한 귀중한 정보를 제공하기 때문에 거래 전략의 중요한 측면입니다. 이 비디오에서는 백 테스트와 거래 전략에 대한 중요성에 대해 자세히 설명합니다.

진행하기 전에 평소와 같이 이 토론을 위한 코드는 비디오 설명에 제공된 링크에서 다운로드할 수 있는 Jupyter Python 노트북으로 제공됩니다. 백테스팅의 주제는 시청자 중 한 명이 제안했으며, 여러분 모두로부터 받은 흥미로운 아이디어와 피드백에 감사드립니다. 제안된 모든 아이디어를 즉시 논의할 기회가 없을 수도 있지만 목록을 유지하고 향후 비디오에서 다루기 위해 노력합니다.

백 테스팅 도구와 관련하여 온라인에서 사용할 수 있는 수많은 라이브러리가 있습니다. 나는 그들 모두에 익숙하지 않지만 개인적으로 내 자신의 기능을 코딩하는 것을 선호합니다. 이 접근 방식을 통해 백테스팅에 특히 중요한 코드의 내부 작업을 완벽하게 제어하고 이해할 수 있습니다. 거래 모델을 평가하기 위한 강력하고 신뢰할 수 있는 솔루션이 필요합니다.

제안된 패키지 중에서 두 가지 옵션이 있었습니다. 첫 번째는 "Vectorbt"라는 패키지로, 강력하고 기능이 풍부하지만 학습 곡선이 가팔랐습니다. 이 패키지에 대한 문서는 다소 제한적이었고 필요한 정보를 수집하기 위해 포럼과 온라인 예제를 검색해야 했습니다. Vectorbt는 엄청난 잠재력을 가지고 있지만, 저는 이 비디오에서 간단한 전략을 테스트할 목적으로만 그 기능에 익숙해지는 데 과도한 시간을 보내고 싶지 않았습니다.

그래서 두 번째 선택인 "backtesting.py"라는 패키지를 선택했습니다. 내 생각에 이 패키지는 백테스팅에 대한 더 간단한 접근 방식을 제공하므로 우리의 요구에 더 적합합니다. 그런 말로 우리의 전략이 얼마나 많은 이익을 창출했는지 알아보십시오.

이 예에서는 우리가 논의한 이전 전략을 테스트할 것입니다. 여기에는 저항 및 지원 수준의 자동 감지와 캔들스틱 패턴 감지가 포함됩니다. 이 두 가지 지표가 결합되어 우리의 전략을 형성할 것입니다. 지원 및 저항 수준과 캔들 스틱 패턴 감지에 대한 자세한 설명은 채널에서 해당 비디오를 시청하는 것이 좋습니다.

시작하려면 평소와 같이 데이터를 로드하고 정리합니다. 다음으로 감지를 위한 지지 및 저항 기능을 구현합니다. 이 채널을 처음 사용하는 경우 더 나은 이해를 위해 지원 및 저항 감지 및 촛대 패턴 식별에 대한 이전 비디오를 확인하는 것이 좋습니다.

매수, 매도 또는 신호 없음 상황을 결정하는 신호를 계산한 후에는 신호의 수를 세어 기능이 올바르게 작동하는지 확인합니다.

앞으로 "backtesting.py" 패키지와 호환되도록 DataFrame의 열 이름을 조정해야 합니다. 패키지에 필요한 대소문자 구분 및 이름 지정 규칙을 준수하는 것이 중요합니다. 또한 일련의 행을 선택하고 필요한 열을 변경합니다.

요약하면 DataFrame에는 시간, 시가, 고가, 저가, 종가, 거래량(지금은 사용하지 않음), 이전에 계산한 신호 열 등의 열이 포함되어 있습니다.

다음으로 DataFrame에서 신호 열을 반환하는 신호 함수를 정의합니다. 이 함수는 나중에 전략 클래스를 정의할 때 필요합니다.

이제 전략을 정의하고 백테스팅을 수행하는 가장 흥미로운 부분에 도달했습니다. 이를 달성하기 위해 우리는 backtesting.py 문서에 제공된 지침을 따릅니다. 그들은 새로운 전략이 Strategy 클래스를 확장하고 두 가지 추상 메서드(init 및 next)를 재정의해야 한다고 제안합니다.

init 메소드는 전략에 필요한 변수와 함수를 초기화하는 역할을 합니다. 전략이 실행되기 전에 호출되며 일반적으로 전략이 의존하는 지표 또는 신호를 미리 계산하는 데 사용됩니다. 이 함수를 오버로드하면 backtesting.py 문서에 제공된 일반 Python 함수와 예제를 사용하여 필요한 지표를 정의할 수 있습니다.

init 메소드에서 전략에 필요한 지표를 정의합니다. 이 경우 DataFrame에서 신호 열을 얻기 위해 이전에 만든 신호 함수를 사용합니다. 또한 이 예에서는 거래 수수료를 고려하지 않으므로 수수료를 0으로 설정했습니다.

다음 방법은 우리 전략의 핵심입니다. 각 트레이딩 바에 대해 호출되며 현재 시장 상황에 따라 트레이딩 결정을 내릴 책임이 있습니다. 구현 시 구매 신호(신호 = 1)가 있고 현재 위치가 없는지 확인합니다. 이러한 조건이 충족되면 롱 포지션(매수)에 들어갑니다.

마찬가지로 매도 신호(신호가 -1)가 있고 롱 포지션이 있는 경우 포지션을 종료합니다(매도). 이 예에서는 매도 포지션을 고려하지 않으므로 매수 및 매도 신호만 있습니다.

전략을 정의한 후에는 전략의 인스턴스를 만들고 DataFrame 및 신호 함수를 인수로 전달합니다. 그런 다음 backtesting.py 패키지에서 Backtest 클래스의 인스턴스를 만들고 전략 인스턴스와 DataFrame을 인수로 전달합니다.

마지막으로 Backtest 인스턴스에서 run 메서드를 호출하여 백테스트를 실행합니다. 이 메서드는 전략을 실행하고 결과를 생성합니다.

결과에는 총 수익률, 연간 수익률, 최대 삭감 등과 같은 다양한 성과 지표가 포함됩니다. Backtest 인스턴스의 해당 속성을 사용하여 이러한 메트릭에 액세스할 수 있습니다.

성능 메트릭 외에도 Backtest 인스턴스는 결과를 시각화하기 위한 다양한 플로팅 기능을 제공합니다. 시간이 지남에 따라 거래 계정의 성장을 보여주는 주식 곡선과 손실 및 거래 로그와 같은 기타 유용한 플롯을 그릴 수 있습니다.

이 예에서는 자산 곡선을 플로팅하고 성능 메트릭을 포함하여 백 테스트 결과 요약을 인쇄합니다.

코드를 실행한 후 시간이 지남에 따라 거래 계정의 성장을 보여주는 주식 곡선 플롯을 관찰할 수 있습니다. 백 테스트 결과 요약은 우리 전략의 성과에 대한 귀중한 정보를 제공합니다.

전략을 백테스팅함으로써 수익성을 평가하고 성과를 평가할 수 있습니다. 이 프로세스를 통해 거래 모델의 효과에 대한 통찰력을 얻고 실제 거래 시나리오에서 잠재적 사용에 대해 정보에 입각한 결정을 내릴 수 있습니다.

이것으로 backtesting.py 패키지를 사용한 백테스팅에 대한 논의를 마칩니다. 이 비디오가 유익하고 거래 전략을 백테스팅하는 실용적인 접근 방식을 제공했기를 바랍니다. 다양한 전략, 지표 및 매개 변수를 실험하여 거래 목표에 가장 적합한 것을 찾으십시오.

언제나처럼 향후 동영상에 대한 의견, 질문 또는 제안을 자유롭게 남겨주세요. 귀하의 의견을 높이 평가합니다. 시청해주셔서 감사하고, 다음 영상에서 만나요!

How To Backtest A Trading Strategy in Python
How To Backtest A Trading Strategy in Python
  • 2021.10.07
  • www.youtube.com
In this video I am presenting a backtesting method using the backtesting.py package. We will backtest a winning strategy using python, we already detailed th...
 

Python의 자동 가격 행동 거래 전략



Python의 자동 가격 행동 거래 전략

이 비디오에서는 캔들 스틱 패턴과 지원 및 저항 수준을 활용하는 거래 전략에 대해 논의합니다. 이 전략의 주요 목표는 가격 행동 패턴을 감지하는 프로세스를 자동화하고 유로 대 미국 달러의 과거 데이터에 적용하는 것입니다.

시작하려면 이 전략의 핵심 구성 요소를 살펴보겠습니다. 캔들스틱 패턴은 막대 또는 캔들 형태의 가격 움직임을 그래픽으로 표현한 것입니다. 이러한 패턴은 시장 정서 및 잠재적 추세 반전에 대한 귀중한 정보를 제공합니다. 이러한 패턴을 분석함으로써 트레이더는 언제 거래를 시작하거나 종료할지에 대해 정보에 입각한 결정을 내릴 수 있습니다.

반면 지지선과 저항선은 역사적으로 시장이 역전되거나 정체되는 경향을 보인 특정 가격대입니다. 이 수준은 거래자에게 심리적 장벽 역할을 하며 잠재적인 진입 및 퇴장 지점을 식별하는 데 사용할 수 있습니다.

이제 Python에서 이 전략을 구현하는 단계로 넘어갑시다. 다양한 재무 데이터 소스 또는 API에서 얻을 수 있는 유로 대 미국 달러의 과거 데이터를 사용합니다. 이 예에서는 필요한 데이터를 이미 수집하고 사전 처리했다고 가정합니다.

Python과 몇 가지 인기 있는 라이브러리를 사용하여 전략을 자동화합니다. 첫 번째 단계는 데이터 조작을 위한 pandas, 플로팅을 위한 matplotlib 및 기술 분석 지표를 위한 talib를 포함하여 필요한 라이브러리를 가져오는 것입니다. Talib는 촛대 패턴 인식을 포함하여 기술적 분석 기능 모음을 제공하는 널리 사용되는 라이브러리입니다.

라이브러리를 가져오면 기록 데이터를 pandas DataFrame으로 로드할 수 있습니다. DataFrame에는 날짜, 시가, 고가, 저가, 종가 및 거래량과 같은 필수 열이 포함되어야 합니다. 이러한 열은 일반적으로 기술 분석에 사용되며 지표 및 패턴을 계산하는 데 필요합니다.

다음으로 캔들스틱 패턴을 감지하는 함수를 정의할 수 있습니다. 이 예시에서 우리는 간단한 패턴인 낙관적 인걸핑 패턴에 초점을 맞출 것입니다. 이 패턴은 작은 약세 양초 다음에 이전 양초를 완전히 뒤덮는 더 큰 강세 양초가 나타날 때 발생합니다. 이 함수는 DataFrame을 반복하고 강세를 휘감는 패턴의 인스턴스를 식별합니다.

전략을 강화하기 위해 지원 및 저항 수준을 통합할 수도 있습니다. 이러한 수준은 과거 가격 차트를 분석하거나 기술적 분석 기법을 사용하여 수동으로 식별할 수 있습니다. 이 예에서는 관련 지원 및 저항 수준을 이미 식별하고 별도의 DataFrame에 저장했다고 가정합니다.

촛대 패턴과 지원 및 저항 수준이 있으면 전략을 자동화할 수 있습니다. 우리는 DataFrame을 반복하고 현재 막대가 강세 패턴의 조건을 충족하는지와 현재 가격이 지원 수준에 가까운지 확인합니다. 이러한 조건이 충족되면 구매 신호를 생성합니다.

반대로 현재 막대가 약세 패턴의 조건을 충족하고 현재 가격이 저항 수준에 가까워지면 매도 신호를 생성합니다. 이러한 신호는 실시간 거래 환경에서 구매 또는 판매 주문을 트리거하는 데 사용됩니다.

전략의 결과를 시각화하기 위해 식별된 캔들스틱 패턴과 지원 및 저항 수준으로 과거 가격 차트를 그릴 수 있습니다. 이렇게 하면 전략의 효과를 이해하고 개선이 필요한 영역을 식별하는 데 도움이 됩니다.

마지막으로 과거 데이터에 대한 백테스팅을 통해 전략의 성과를 평가할 수 있습니다. 백테스팅에는 과거 데이터를 기반으로 거래를 시뮬레이션하고 전략의 수익성과 위험을 평가하는 것이 포함됩니다. 총 수익률, 연간 수익률, 최대 손실률 등과 같은 다양한 성과 지표를 계산할 수 있습니다.

우리의 전략을 백테스팅함으로써 우리는 성과에 대한 통찰력을 얻고 실제 거래 시나리오에서 잠재적인 사용에 대해 정보에 입각한 결정을 내릴 수 있습니다. 백테스팅은 접근 방식의 실행 가능성과 수익성을 평가하는 데 도움이 되므로 전략 개발에서 중요한 단계라는 점에 유의해야 합니다.

이 비디오는 캔들 스틱 패턴과 지원 및 저항 수준을 결합한 간단한 거래 전략을 제시했습니다. 이 전략은 유로 대 미국 달러의 과거 데이터를 사용하여 Python에서 자동화 및 테스트되었습니다. 이러한 기술적 분석 기술을 활용함으로써 트레이더는 잠재적으로 수익성 있는 거래 기회를 식별하고 금융 시장에서 정보에 입각한 결정을 내릴 수 있습니다.

Automated Price Action Trading Strategy In Python
Automated Price Action Trading Strategy In Python
  • 2021.09.09
  • www.youtube.com
This video presents a simple trading strategy using candlestick patterns and support and resistance values. The strategy can be automated for price action d...
 

PYTHON의 자동화된 지원 및 저항 감지



PYTHON의 자동화된 지원 및 저항 감지

안녕하세요 여러분, 이 비디오에 다시 오신 것을 환영합니다. 이 비디오에서는 Python을 사용하여 지원 및 저항 수준 감지를 자동화하는 방법에 대해 자세히 설명합니다. 이 아이디어는 댓글 중 하나에 의해 제안되었으므로 큰 감사를 드립니다. 늘 그렇듯이 프로그램은 아래 설명에 있는 링크에서 다운로드할 수 있습니다. 자체 실험에 사용할 수 있는 Jupyter Notebook 파일입니다. 다른 통화 또는 다른 시간 프레임에서 이 작업을 시도할 수 있으며 코드에 제공된 변수를 수정할 수도 있습니다.

가격 변동 차트를 보면 지지선과 저항선을 시각적으로 쉽게 식별할 수 있지만 프로그래밍 방식으로 정의하는 것은 복잡해 보일 수 있습니다. 그러나 적절한 알고리즘을 사용하면 프로세스를 자동화할 수 있습니다. 이 비디오에서 제공하는 알고리즘이 지원 및 저항 수준을 감지하는 유일한 알고리즘이 아니라는 점에 유의하는 것이 중요합니다. 다양한 접근 방식이 있지만 우리는 코드에서 구현하기 비교적 간단한 방법을 선택했습니다.

여기 보이는 수치는 우리가 설명하려는 코드를 사용하여 생성되었으며 보시다시피 지원 및 저항 수준은 우리 프로그램에서 올바르게 감지되었습니다. 이 접근 방식은 모든 통화 및 모든 시장 조건에서 작동합니다. 그러나 완벽한 알고리즘은 아니며 일부 수준이 감지되지 않은 것을 알 수 있습니다. 이 내용은 나중에 비디오에서 다루겠습니다.

지원 및 저항 수준을 정의하는 기본 아이디어는 전략에 포함하려는 수준의 수에 따라 한두 달과 같은 특정 기간 내에 되돌아보는 것입니다. 데이터가 많을수록 더 많은 수준을 발견할 수 있습니다. 예를 들어, 여기에 표시된 것과 같은 일일 차트를 고려하고 특정 날짜에 거래를 진행하려는 경우 특정 기간(예: 한 달)을 되돌아보고 지지 및 저항 수준을 발견할 수 있습니다. 그 기간 동안 발생했습니다. 이것은 레벨 감지를 위한 제한된 시간을 고려하여 프로그램에서 시뮬레이션할 것입니다. 사용 가능한 모든 데이터를 사용하여 지원 및 저항 수준을 찾으려고 하면 많은 수의 수준으로 끝나게 되며 이는 거래 전략에 실용적이지 않습니다. 따라서 현재 날짜보다 몇 개월 앞선 날짜에 집중하는 것이 가장 좋습니다.

이제 알고리즘 자체에 대해 살펴보겠습니다. 지원 수준의 경우 관심 캔들 이전의 감소하는 저점의 특정 수를 찾습니다. 관심 있는 양초는 다른 양초보다 낮은 값을 가져야 합니다. 또한 관심 있는 양초 다음에 3개의 증가하는 저점이 필요합니다. 캔들 그룹에 대해 이러한 모든 조건이 충족되면 이러한 캔들 중 가장 낮은 가격으로 정의되는 지원 수준을 식별할 수 있습니다. 동일한 원칙이 저항 수준에 적용됩니다. 우리는 관심 있는 양초 이전에 고점을 높이고 관심 있는 양초에 대해 더 높은 고점을 가질 필요가 있습니다. 그런 다음 관심이 있는 양초 이후에는 최고치가 감소해야 합니다. 이를 통해 이러한 양초 중 가장 높은 가격인 저항 수준을 찾을 수 있습니다.

이 단계에서 흥미로운 매개변수는 관심 있는 촛불 전후에 몇 개의 촛불을 고려해야 하는지입니다. 이는 사용자의 기호에 따라 커스터마이징이 가능하며, 다양한 값으로 실험해보시면 좋을 것 같습니다. 우리 프로그램에서는 이것을 n1과 n2라는 두 개의 변수로 정의합니다. 관심 있는 촛불의 지수는 변수 l로 표시됩니다.

이제 파이썬에서 이 알고리즘을 구현하는 방법을 살펴보겠습니다. 이 데모에서는 Jupyter 노트북을 사용할 것입니다. 먼저 데이터 조작을 위한 pandas를 포함하여 필요한 라이브러리를 가져옵니다. read_csv 함수를 사용하여 데이터를 로드하고, 이 예제에서는 약 18년의 데이터인 2003년부터 2021년까지의 EUR/USD 일간 차트를 사용하고 있습니다.

다음으로 ss 및 rr 목록에 저장된 지지 및 저항 수준을 사용하여 캔들스틱 차트에 선을 그립니다. ss의 각 지원 수준을 반복하고 해당 가격 수준에서 차트에 수평선을 추가합니다. 마찬가지로 rr의 각 저항 수준을 반복하고 각 수준에 대한 수평선을 추가합니다. 이렇게 하면 가격 움직임과 관련하여 지지 및 저항 수준을 쉽게 시각화할 수 있습니다.

코드를 실행하면 지원 수준이 보라색 파선으로 표시되고 저항 수준이 파란색 파선으로 표시되는 촛대 차트가 생성됩니다. 차트는 감지된 지원 및 저항 수준을 시각적으로 표시하여 거래 결정을 위한 주요 가격 수준을 쉽게 식별할 수 있도록 합니다.

여기에 제시된 알고리즘은 지원 및 저항 수준을 감지하는 여러 접근 방식 중 하나임을 기억하십시오. n1 및 n2의 다른 값으로 실험하여 레벨 감지 및 병합에 어떤 영향을 미치는지 확인할 수 있습니다. 또한 코드에서 임계값을 조정하여 병합 수준에 대한 조건을 수정할 수 있습니다.

지원 및 저항 수준의 자동 감지는 유용한 도구이지만 정보에 입각한 거래 결정을 내리기 위해 다른 기술 분석 기술 및 시장 통찰력과 함께 사용해야 합니다.

Automated Support and Resistance Detection in PYTHON
Automated Support and Resistance Detection in PYTHON
  • 2021.08.19
  • www.youtube.com
This video describes an algorithm to detect support and resistance levels in python language. 🍓 If you want to follow structured courses with more details a...
 

Python의 자동 가격 행동 패턴 분석


Python의 자동 가격 행동 패턴 분석

이 비디오는 Python에서 캔들스틱 분석 패턴을 결합하고 신호 수와 가격 행동 예측의 정확성을 확인하는 방법에 대한 설명을 제공합니다. 이 방법은 자동 거래와 호환됩니다. 가격 행동 움직임, 캔들 스틱 분석, 침몰 패턴, 가격 행동 분석에서 상대적으로 강한 신호를 찾는 좋은 방법입니다.

00:00 프라이스 액션 캔들 소개
00:35
별똥별, 망치, 행잉맨, 삼키는 패턴
03:10 Python 가격 행동 탐지
12:13 가격 행동 분석 결과
18:45 파이썬에서 프라이스 캔들 그리기

Automated Price Action Patterns Analysis In Python
Automated Price Action Patterns Analysis In Python
  • 2021.08.05
  • www.youtube.com
This video provides an explanation on how to combine Candlestick Analysis Patterns in Python and check the number of signals as well as the accuracy of the p...
 

Python에서 자동화된 가격 행동 패턴을 뒤덮음



Python에서 자동화된 가격 행동 패턴을 뒤덮음

안녕하세요 여러분, 이 비디오에 다시 오신 것을 환영합니다. 오늘의 토론에서 우리는 양초를 삼키는 것, 특히 강세 및 약세 삼키는 패턴에 초점을 맞출 것입니다. 이러한 패턴에 이미 익숙한 분들은 거래 지표로서의 중요성을 이해하고 계실 것입니다.

이러한 패턴의 유효성을 분석하기 위해 약 10년에 걸친 EUR/USD 통화 쌍의 과거 데이터를 활용할 것입니다. 우리의 목표는 Python에서 간단한 통계 기술을 적용하여 이러한 패턴이 통계적으로 중요한지 아니면 단지 신화인지 확인하는 것입니다. 이 정보는 특히 촛대 패턴을 거래 전략에 지표로 통합하는 것을 고려하는 경우 중요합니다.

편의를 위해 아래 설명에 제공된 링크를 따라가면 이 분석에 사용된 전체 코드를 찾을 수 있습니다. 코드는 Jupyter Notebook 파일로 제공되므로 코드를 탐색하는 동시에 이 비디오를 편안하게 즐길 수 있습니다.

삼키는 패턴은 두 가지 다른 형태로 관찰할 수 있습니다. 강세 패턴은 여러 개의 하락 추세 양초 다음에 단일 상승 추세 양초가 나타날 때 발생합니다. 이 상승 추세 양초는 마지막 하락 추세 양초의 종가 또는 그 이하에서 시작하여 이전 양초의 시가보다 높게 종가를 형성합니다. 이 패턴은 일반적으로 시장에서 다가오는 상승 추세를 나타냅니다.

반면에 약세 인걸핑 패턴은 강세 패턴의 대칭적 반대입니다. 상승 추세 양초 다음에 약세 양초가 나타날 때 발생합니다. 약세 양초는 이전 양초의 종가 이상에서 시작하여 같은 양초의 시가 아래에서 종가를 형성합니다. 이 패턴은 향후 가격 하락 움직임을 나타냅니다.

이 비디오에서 우리의 목표는 이러한 주장이 사실인지 확인하는 것입니다. 우리는 이러한 패턴이 실제로 특정 시장 행동을 나타내는지 확인하는 것을 목표로 합니다. 일반적으로 낙관적 인걸핑 패턴은 구매자가 시장에서 판매자보다 더 강함을 시사하는 반면 약세적 인걸핑 패턴은 그 반대를 시사합니다. 이 검증을 수행하기 위해 우리는 강세 및 약세 양초를 감지하는 Python 코드를 작성합니다. 그 후, 우리는 가격이 예상 방향으로 움직이는지 확인하기 위해 다음 몇 개의 캔들(1개에서 3개 이상의 캔들 또는 그 이상 범위)을 분석할 것입니다.

더 정확하게는 마지막 삼킨 캔들의 종가를 고려하겠습니다. 낙관적인 인걸핑 패턴의 경우 후속 캔들의 고가를 고려하고 인걸핑 캔들의 고가와 종가 사이의 차이를 계산합니다. 이렇게 하면 "d"로 표시할 세 가지 고유한 값이 생성됩니다. 다음으로 이러한 차이가 내가 정의할 변수로 표시되는 특정 한계를 초과하는지 여부를 테스트합니다. 이 제한은 기본 설정에 따라 20, 30 또는 40핍으로 설정할 수 있습니다. 그런 다음 이 차이가 핍 한도를 초과하는 횟수의 백분율을 계산합니다.

유사하게 약세 인걸핑 패턴의 경우 후속 캔들의 낮은 값을 고려할 것입니다. 휘몰아치는 양초의 종가와 이러한 낮은 값의 차이를 변수 X와 비교할 것입니다. 다시 한 번, 이 차이가 X를 초과하는 경우를 찾고 있습니다. 본질적으로 우리는 가격이 강세 또는 약세를 능가하는지 평가하고 있습니다. 둘러싸는 패턴에 따라 2~3개 양초 이내의 임계값. 이러한 패턴이 발생한 후 가격이 예상대로 작동하는 인스턴스의 비율을 계산합니다.

이러한 차이 중 하나만 변수 X를 초과해야 한다는 점에 유의하는 것이 중요합니다. 세 가지 차이 모두 이 핍 한도를 동시에 초과할 필요는 없습니다. 따라서 가격이 특정 수의 핍만큼 삼키는 양초의 종가 아래로 떨어지면 이 패턴의 예측이 성공한 것으로 간주됩니다. 동일한 원칙이 강세 인걸핑 패턴에도 적용되지만 위쪽 방향으로 적용됩니다.

이제 Python 코드를 확인하고 동작을 관찰해 보겠습니다.

추세가 1인 경우, 약세 패턴과 하락 추세 예측을 의미하는 경우 추세가 1인 결과 열의 값을 합산하고 이를 총 숫자로 나누어 정밀도를 계산할 수 있습니다. 곰 같은 삼키는 패턴에 대한 신호. 유사하게, 강세를 덮는 패턴과 상승 추세 예측에 대한 정밀도를 계산할 수 있습니다.

이제 데이터 프레임을 입력으로 사용하고 두 패턴의 정밀도를 계산하는 "calculate_precision"이라는 새 함수를 만들어 보겠습니다. 먼저 "bearish_signals" 및 "bullish_signals" 변수를 초기화하여 각 패턴의 총 신호 수를 계산합니다. 그런 다음 데이터 프레임을 반복하고 신호 값을 기준으로 해당 신호 카운터를 증가시킵니다.

다음으로 추세가 1인 결과 열의 값을 합산하고 이를 총 약세 신호 수로 나누어 약세 삼킴 패턴의 정밀도를 계산합니다. 낙관적인 침몰 패턴과 상승 추세 예측에 대해서도 동일한 작업을 수행합니다.

마지막으로 두 패턴의 정밀도 값을 반환합니다. 이제 데이터 프레임에서 이 함수를 호출하여 정밀도를 계산해 보겠습니다.

정밀도를 계산한 후 결과를 인쇄하여 예측이 실제 추세와 얼마나 잘 일치하는지 확인할 수 있습니다. 이러한 정밀도 값은 코드에서 설정한 특정 매개변수 및 조건을 기반으로 한다는 점에 유의해야 합니다. 다양한 매개 변수와 조건을 실험하여 특정 거래 전략에 대한 정밀도를 최적화할 수 있습니다.

결론적으로 이 비디오는 거래에서 양초 패턴을 삼키는 데 초점을 맞추었고 이러한 패턴이 통계적으로 유의미한지 또는 단순한 신화인지 확인하는 것을 목표로 했습니다. Python을 사용하여 EUR/USD 통화 쌍의 과거 데이터를 분석하여 약세 및 완고한 양초 패턴을 감지하고 지정된 수의 양초 내에서 후속 추세 동작을 조사했습니다. 정밀도 계산을 통해 예측의 정확성에 대한 통찰력을 얻었습니다. 이 분석의 한계를 고려하고 자신의 선호도와 목표에 따라 거래 전략을 계속 수정하십시오.

시청해 주셔서 감사합니다. 비디오 설명의 링크를 확인하여 Jupyter 노트북 형식의 전체 코드를 다운로드하는 것을 잊지 마십시오. 귀하의 거래 여정을 즐기고 귀하의 노력에 행운을 빕니다!

Engulfing Price Action Patterns Automated in Python
Engulfing Price Action Patterns Automated in Python
  • 2021.07.08
  • www.youtube.com
This video describes the Engulfing Candlestick Patterns, bullish and bearish engulfing candles and statistics are carried out in python to check if these pat...
 

Python의 자동화된 캔들스틱 전략 | 별똥별 테스트



Python의 자동화된 캔들스틱 전략 | 별똥별 테스트

오늘 세션에서는 캔들스틱 패턴의 매혹적인 세계를 탐구하고 Python에서 프로그래밍하는 방법을 배웁니다. 우리의 목표는 특정 패턴을 식별하고 잠재적으로 가격 추세 반전을 감지할 수 있는 코드를 만드는 것입니다. 또한 간단한 통계적 접근 방식을 사용하여 캔들스틱 예측을 기반으로 성공적인 자동 봇을 개발할 가능성을 평가하는 캔들스틱 신호를 활용하는 전략에 대한 백테스팅을 수행할 것입니다. 이 내용이 궁금하시다면 아래 설명에 제공된 링크에서 프로그램 파일을 다운로드하실 수 있습니다. 이 유익한 세션을 즐기시기 바랍니다.

계속 진행하기 전에 이 비디오에서는 사용자가 이미 캔들스틱 패턴에 대해 어느 정도 알고 있다고 가정합니다. 가장 잘 알려진 형식에 초점을 맞출 것이므로 각 패턴에 대해 자세히 설명하지 않습니다. 더 많은 패턴이 있으므로 이 목록이 완전하지 않다는 점에 유의하십시오. 당분간은 기본에 충실하겠습니다. 결정되지 않은 시장을 대표하는 Doji에 대해 이미 잘 알고 계실 것입니다. 또 다른 중요한 패턴은 촛대 몸체 위의 긴 꼬리가 특징인 슈팅 스타입니다. 두 가지 형태로 나타날 수 있지만 가장 중요한 것은 긴 꼬리의 존재입니다. 상승 추세 중에 별똥별을 만나면 하락 추세로의 전환을 시사하는 추세 반전을 나타낼 수 있습니다. 마찬가지로 슈팅 스타와 비슷하지만 반전된 해머 패턴이 있습니다. 그것은 상승 추세 동안의 거부 지점을 의미하며 긴 하단 꼬리가 있습니다. 이 패턴은 상승 추세가 거의 끝나가고 있으며 하락 추세 되돌림이 뒤따를 수 있음을 나타냅니다.

계속해서 Bullish Engulfing 패턴에 대해 논의하겠습니다. 이것은 마지막 빨간색 캔들이 더 큰 상승 캔들에 의해 완전히 덮이는 하락추세에서 발생합니다. 이 반전 패턴은 하락 추세의 끝과 상승 추세의 시작을 나타냅니다. 반대로, Bullish Engulfing 패턴의 반대인 Bearish Engulfing 패턴이 있습니다. 이는 상향 추세 중에 발생하며 상향 캔들 뒤에 더 큰 캔들이 나타나 이전 캔들을 덮습니다. 이것은 상승 추세의 끝과 하락 추세의 시작을 나타냅니다. Three Crows와 같이 여기에서 자세히 다루지 않을 몇 가지 다른 촛대 패턴이 있음을 명심하십시오. 그러나 이 비디오에서는 특히 하락세가 상승세로 역전될 때 슈팅 스타와 해머 패턴에 중점을 둘 것입니다.

슈팅 스타와 해머 패턴은 상승 추세에 대한 시장 반응을 명확하게 나타내기 때문에 제가 개인적으로 가장 좋아하는 패턴입니다. 판매자가 특정 가격 수준을 거부하고 시장에 진입한 것이 분명합니다. 이것이 내가 다른 패턴보다 이러한 패턴을 더 신뢰하는 경향이 있는 이유입니다. 물론 이러한 패턴을 어떻게 활용하고 다른 지표나 전략과 결합하느냐에 따라 개인의 선호도는 다를 수 있습니다. 이 비디오의 목적을 위해 Shooting Star를 이 촛대에 독특한 형태를 부여하는 판매자의 강력한 반응과 가격 거부의 강력한 예라고 생각합시다. Python에서 이 패턴을 코딩하고 이러한 패턴을 인식하도록 봇을 가르치는 데 중점을 둘 것입니다. 논의할 개념을 관심 있는 다른 패턴으로 확장할 수 있지만 주요 초점은 슈팅 스타와 해머에 있습니다.

캔들스틱 패턴에만 의존하는 것은 정확한 구매 또는 판매 신호를 생성하기에 충분하지 않다는 점에 유의해야 합니다. 이러한 패턴은 선호하는 지표와 결합되어야 합니다. 이 경우 RSI(Relative Strength Index)와 결합합니다. 캔들스틱 패턴과 함께 다양한 기술 지표 또는 기본 분석을 통합하도록 선택할 수 있습니다. 촛대만 사용하는 것은 포괄적이지 않습니다.

예측 접근 방식의 성공률을 평가하려면 캔들스틱 패턴과 함께 RSI와 결합하여 신호에 추가 확인을 추가해야 합니다. RSI 값이 높을수록 구매 압력이 강함을 나타내며, 이는 별똥별 패턴이 제안하는 잠재적인 추세 반전과 일치합니다.

모든 조건이 충족되면 매수 신호를 생성할 수 있습니다. 데이터 프레임의 해당 행에 대한 신호 열에 값 1을 할당합니다. 그렇지 않으면 신호가 없음을 나타내는 0 값을 할당합니다. 이 프로세스는 데이터 프레임의 각 행에 대해 반복되어 잠재적인 구매 신호를 식별하기 위해 전체 데이터 세트를 효과적으로 스캔합니다.

다음으로 식별된 구매 신호에 대한 손절매 및 이익실현 수준을 정의하는 단계로 이동합니다. 매수 가격에서 ATR(Average True Range)을 빼서 손절매 값을 계산합니다. ATR은 변동성을 측정하고 정지 손실에 대한 적절한 거리를 결정하는 데 도움이 됩니다. ATR이 넓을수록 더 큰 손절매가 필요한 시장의 변동성이 더 크다는 것을 나타내고, ATR이 작을수록 시장의 변동성이 적어 더 긴박한 손절매가 가능함을 나타냅니다.

테이크 프로핏 레벨의 경우 테이크 프로핏 손절매 비율(저희가 2로 설정)에 ATR을 곱하고 이를 매수가에 더합니다. 이렇게 하면 이익실현 수준이 손절매 수준보다 매수가에서 두 배 더 멀어집니다. 이익 실현 수준은 거래의 잠재적 이익 목표를 나타냅니다.

이제 매수 신호와 이에 상응하는 손절매 및 이익실현 수준이 있으므로 전략 백테스팅을 진행할 수 있습니다. 데이터 프레임의 각 행을 반복하고 생성된 신호를 기반으로 거래를 시뮬레이션합니다.

가격이 손절매 수준에 먼저 도달하면 손실 거래로 간주합니다. 반대로 가격이 이익실현 수준에 먼저 도달하면 우리는 이를 승리한 거래로 간주합니다. 우리는 이기고지는 거래의 수를 추적합니다.

전략의 성과를 평가하기 위해 우리는 전체 거래 중 거래에서 성공한 비율로 승률을 계산합니다. 이 경우 이익 실현-손절매 비율을 2로 설정했기 때문에 각각의 승리 거래는 두 번의 손실 거래를 보상합니다. 따라서 이기는 시스템을 갖기 위해서는 적어도 34%의 시간 동안 맞아야 합니다.

이 평가는 수수료 및 오버나이트 스왑 값과 같은 거래 비용을 고려하지 않는다는 점에 유의해야 합니다. 또한 이것은 단순화된 예이며 실제 거래에서는 시장 상황, 위험 관리 및 전반적인 시장 분석과 같은 다른 요소를 고려하는 것이 필수적입니다.

캔들스틱 패턴, RSI 및 거래 관리에 대한 체계적인 접근 방식을 결합하여 잠재적으로 수익성 있는 거래를 생성할 수 있는 거래 전략을 개발하는 것을 목표로 합니다. 그러나 과거 데이터를 사용하여 전략을 철저히 테스트 및 검증하고 변화하는 시장 상황에 적응하기 위해 지속적인 시장 분석을 고려하는 것이 중요합니다.

결론적으로 이 비디오 자습서는 Python에서 캔들스틱 패턴 프로그래밍에 대한 소개를 제공하고, 특정 패턴을 인식하는 방법을 보여주고, 이러한 패턴을 기반으로 전략의 성능을 평가하기 위한 백테스팅 접근 방식을 간략하게 설명합니다. 가격 추세 반전을 예측하고 자동 거래 봇을 개발하기 위한 도구로서 캔들스틱 패턴의 잠재력을 탐색할 수 있는 기회입니다.

Automated Candlestick Strategy in Python | testing the shooting star
Automated Candlestick Strategy in Python | testing the shooting star
  • 2021.04.21
  • www.youtube.com
This video is a walkthrough coding the candlestick patterns in Python language. After a general introduction we focus mainly on the shooting star rejection p...
 

알고리즘 트레이딩 및 기계 학습에서 일반적인 실수를 피하십시오



알고리즘 트레이딩 및 기계 학습에서 일반적인 실수를 피하십시오

당신이 자고 있거나 자유 시간을 즐기는 동안 당신을 대신하여 수익성 있는 거래를 실행하는 이기는 거래 봇을 갖는 것이 어떤 것인지 궁금한 적이 있습니까? 아마도 당신은 코드를 해독하고 당신의 라이프스타일을 혁신할 수 있는 프로그램을 찾기 위해 몇 시간, 몇 달 또는 몇 년을 보냈을 것입니다.

기계 학습에 관해서는 많은 사람들이 마케팅 및 영업과 같은 다양한 분야에서 놀라운 일을 할 수 있는 힘이 있다고 믿습니다. 그러나 기계 학습이 여전히 어려움을 겪고 있는 두 가지 영역이 있습니다. 바로 날씨 데이터 예측과 가격 시장 예측입니다. 이러한 필드에 있는 숫자의 매우 무작위적인 특성으로 인해 머신 러닝만 사용하여 가격을 정확하게 예측하기가 어렵습니다.

그러나 여기에 문제가 있습니다. 기계 학습을 사용하여 가격을 예측하는 것은 가능하지만 적절한 거래 전략과 결합된 경우에만 가능합니다. 즉, 예측 유형은 사용하는 거래 전략과 일치해야 합니다.

이제 거래 모델의 성공을 방해할 수 있는 몇 가지 일반적인 실수와 이를 피하기 위해 할 수 있는 일에 대해 알아보겠습니다.

실수 #1: 기계 학습 모델에 가격 값을 회귀자로 적용합니다. 기계 학습 회귀 분석기에 가격 값을 직접 입력하여 다음 시장 가치를 예측하려는 것은 초보자가 흔히 범하는 실수입니다. 이 접근 방식은 표면적을 기반으로 한 주택 가격 예측과 같은 상관 값에 적합할 수 있지만 주식이나 통화 시장에는 적용되지 않습니다. 이러한 시장은 시간 변수와 명확한 상관관계를 나타내지 않아 직접 회귀를 비효율적으로 만듭니다.

실수 #2: 절대값을 모델 입력으로 사용합니다. 원시 가격 또는 기술 지표 값을 입력으로 사용하는 것은 또 다른 함정입니다. 시가, 종가, 고가, 저가를 이동 평균 및 기타 지표와 함께 제공하는 것만으로는 정확한 미래 가격 예측을 보장할 수 없습니다. 우리의 두뇌는 개별 가치보다는 전체 이미지와 가격 변동의 기울기에 초점을 맞춰 정보를 다르게 처리합니다. 마찬가지로 모델은 개별 데이터 포인트가 아닌 전체 추세와 패턴을 고려해야 합니다.

실수 #3: 무작위 열차 테스트 데이터 분할을 사용하여 데이터를 샘플링합니다. 랜덤 트레인-테스트 분할은 기계 학습에서 일반적인 관행이지만 특히 가격 시장에서 시계열 분석 작업을 할 때 문제가 될 수 있습니다. 훈련 및 테스트를 위해 데이터를 무작위로 분할하면 테스트 세트가 훈련 세트와 매우 유사한 상황이 발생할 수 있습니다. 이러한 유사성으로 인해 백테스팅 중에 모델이 정확해 보일 수 있지만 새로운 라이브 데이터에서는 잘 수행되지 않습니다.

실수 #4: 기술적 분석에만 의존합니다. 기술 지표는 머신 러닝 모델에서 중요한 역할을 하지만, 기술 지표에만 의존하는 것은 장기적인 성공을 위해 충분하지 않습니다. 시장 행동에 상당한 영향을 미칠 수 있는 경제 캘린더 및 주요 이벤트와 같은 외부 요인을 고려하는 것이 중요합니다. 이러한 요소를 무시하면 좋지 않은 결과를 초래할 수 있으며 그렇지 않으면 건전한 모델의 신용을 떨어뜨릴 수 있습니다.

실수 #5: 모델의 정밀도에 맞는 전략을 고려하지 않음. 모델 정밀도만으로는 수익성이 결정되지 않습니다. 모델의 정확성을 유리한 손절매 비율과 같은 최적화된 거래 전략과 결합하면 손해를 보는 모델을 수익성 있는 모델로 바꿀 수 있습니다. 33% 이상의 정밀도는 올바른 전략과 함께 사용할 경우 충분할 수 있습니다.

실수 #6: 진입 전략을 건너뛰고 모델의 예측에만 의존합니다. 모델이 정확한 예측을 제공하더라도 언제 시장에 진입하고 거래를 실행해야 하는지 아는 것이 중요합니다. 모델의 예측을 보완하는 시장 진입 전략을 정의하는 것은 수익 극대화를 위해 필수적입니다. 잘못된 순간에 시장에 진입하여 목표를 달성하기 전에 중단되면 올바른 추세 예측만으로는 충분하지 않습니다.

실수 #7: 거래 수수료 및 커미션을 고려하지 않음. 수수료와 커미션을 무시하면 거래 전략의 수익성에 상당한 영향을 미칠 수 있습니다. 승리 전략이 약간의 이점을 가질 수 있지만 거래 수수료는 이러한 이익을 잠식할 수 있습니다. 익일 또는 주말 수수료를 피하기 위해 같은 날 거래를 마감하는 것과 같이 전략을 설계할 때 수수료를 고려하는 것이 중요합니다.

다음으로 장기간에 걸쳐 모델을 백테스트하는 것이 중요합니다. 다양한 시장 조건에서 모델을 테스트하는 것은 효율성을 보장하는 데 필수적입니다. 모델의 장기적인 실행 가능성을 반영하지 않을 수 있으므로 단기 성능에만 의존하지 마십시오. 최소 6개월 동안 모델을 백 테스트하고 지속적으로 긍정적인 이득을 가져오는지 평가하십시오.

마지막으로, 조바심을 내거나 거래를 방해하지 마십시오. 고정밀 모델은 거래를 실행하기 전에 강력한 신호를 기다리는 경향이 있습니다. 이로 인해 일부 기회를 놓칠 수 있지만 모델의 결정을 방해하지 않는 것이 중요합니다. 조바심으로 새로운 거래를 시작하거나 기존 거래를 종료하지 마십시오. 때때로 거래를 하지 않는 것이 손실 거래를 하는 것보다 낫습니다.

결론적으로 이러한 통찰력은 거래 경험을 개선하는 데 도움이 될 것입니다. 알고리즘이 아직 시장에 출시되지 않았다면 그것에 집중하지 않는 것이 가장 좋습니다. 휴식을 취하고 멋진 뜨거운 피자 조각을 주문하고 즐거운 시간을 보내십시오.

Avoid Common Mistakes in Algorithmic Trading And Machine Learning
Avoid Common Mistakes in Algorithmic Trading And Machine Learning
  • 2021.03.05
  • www.youtube.com
This video presents 9 very common mistakes that every algorithmic trader might fall in especially when using Machine Learning models to predict price movemen...
 

Pandas를 사용하여 거래를 위한 기술 지표를 계산하는 방법



Pandas를 사용하여 거래를 위한 기술 지표를 계산하는 방법

안녕하세요 여러분, 이 비디오에 다시 오신 것을 환영합니다. 오늘 우리는 Python을 사용하여 외환 시장 가격을 분석하고 통계가 기술 지표와 미래 가격 방향 사이의 상관 관계를 밝힐 수 있는지 여부를 탐구할 것입니다. 따라하기 위해 거래 또는 프로그래밍 전문가가 될 필요는 없지만 이동 평균 및 상대 강도 지표(RSI)와 같은 기본 기술 지표에 대해 어느 정도 친숙하면 도움이 될 것입니다. 거래에서 기계 학습 응용 프로그램에 대한 빠른 소개를 위해 여기에 오셨다면 우리가 일을 단순하게 유지할 것이므로 올바른 위치에 있는 것입니다.

이 비디오에서는 다음 주제를 다룹니다.

  1. 통화 교환 데이터 다운로드: cascope.com 웹사이트를 방문하여 특히 USD/CHF(미국 달러 대 스위스 프랑) 통화 쌍에 대한 과거 데이터 피드를 선택합니다. 데이터에 대한 시간별 촛대 기간을 선택합니다.

  2. pandas를 사용하여 Python으로 데이터 로드: pandas 라이브러리의 read_csv 함수를 사용하여 다운로드한 파일을 pandas DataFrame으로 로드합니다. 또한 DataFrame의 마지막 5개 행을 검사하여 데이터가 올바르게 로드되었는지 확인합니다.

  3. 데이터 정리 및 초기 분석: 데이터를 이해하는 것이 중요하므로 볼륨이 0인 행을 제거하고 누락된 값을 확인하여 데이터를 정리합니다. 또한 간단한 통계 분석을 수행하여 데이터 내의 패턴 또는 상관 관계를 식별합니다.

  4. 기술 지표 추가: 다양한 기술 분석 지표를 제공하는 numpy 및 pandas_ta(pandas 기술 분석)를 포함하여 필요한 라이브러리를 가져옵니다. 평균 실제 범위(ATR), RSI, 이동 평균과 같은 여러 지표를 DataFrame에 추가하고 기울기를 계산합니다.

  5. 대상 정의: 기술 지표를 기반으로 예측하려면 대상을 정의해야 합니다. 어려울 수 있는 미래의 평균 가격을 예측하는 대신 추세를 상승, 하락, 명확한 추세 없음의 세 가지 범주로 분류합니다.

  6. 히스토그램 플로팅: 히스토그램을 사용하여 다양한 기능의 분포를 시각화합니다. 여기에는 거래량, ATR, RSI, 중간 가격, 이동 평균, 슬로프 및 목표 범주가 포함됩니다. 히스토그램은 데이터에 대한 빠른 개요를 제공하고 이상값을 식별하는 데 도움이 됩니다.

  7. RSI 분석: 추세 지표로 RSI에 초점을 맞추고 상승, 하락 및 불명확한 추세의 세 가지 목표 범주에 대해 별도의 DataFrame을 생성합니다. 구별 가능한 차이가 있는지 확인하기 위해 각 범주의 RSI 값에 대한 히스토그램을 그릴 것입니다.

그러나 RSI에만 의존하는 것은 가격 추세를 정확하게 예측하는 데 충분하지 않을 수 있습니다. 가격 추세 예측에서 이점을 얻으려면 다른 기술 지표 또는 지표 조합을 탐색하는 것이 좋습니다.

이상으로 이번 영상의 내용을 마칩니다. 정보가 도움이 되셨기를 바랍니다. 특정 질문이 있거나 추가 설명이 필요한 경우 의견 섹션에서 자유롭게 질문하십시오. 즐거운 코딩하세요!

How To Calculate Technical Indicators For Trading Using Pandas
How To Calculate Technical Indicators For Trading Using Pandas
  • 2021.02.22
  • www.youtube.com
If you're a beginner looking to learn how to calculate technical indicators and download price history, then you don't want to miss this video! These indicat...
 

Backtesting.py - 파이썬 전체 과정



Backtesting.py - 파이썬 전체 과정

튜토리얼 중에 강사는 백테스팅 거래 전략을 위한 라이브러리로 backtesting.py를 사용하는 것의 장점과 단점에 대해 논의합니다. 라이브러리는 지표 라이브러리 또는 브로커 또는 기타 플랫폼과의 통합과 같은 기능을 생략하고 백테스팅의 필수 요소에만 집중하도록 설계되었습니다. 이러한 단순성 덕분에 라이브러리는 가볍고 사용하기 쉽습니다. 제공되는 설명서는 명확하고 이해하기 쉬우므로 사용자가 라이브러리의 개념과 기능을 빠르게 파악할 수 있습니다.

backtesting.py의 중요한 이점 중 하나는 특히 단일 전략을 테스트할 때 속도입니다. 라이브러리는 성능에 최적화되어 있어 사용자가 효율적으로 백테스트를 실행하고 적시에 결과를 얻을 수 있습니다. 이 속도는 최적의 설정을 찾기 위해 여러 전략 또는 매개변수 조합을 반복할 때 유용합니다.

그러나 backtesting.py를 사용할 때 고려해야 할 몇 가지 제한 사항이 있습니다. 첫째, 라이브러리는 여러 자산과의 거래를 지원하지 않습니다. 주로 단일 자산 또는 증권에 대한 전략을 테스트하기 위해 설계되었습니다. 또한 backtesting.py는 소수 지분에 대한 지원을 제공하지 않으므로 더 작은 포지션 크기로 거래하는 데 관심이 있는 사용자에게는 단점이 될 수 있습니다.

이러한 제한에도 불구하고 backtesting.py는 거래 전략을 백테스팅하는 데에만 집중하려는 사람들에게 탁월한 선택입니다. 단순하고 가볍기 때문에 기존 워크플로를 쉽게 이해하고 통합할 수 있습니다.

자습서에서 강사는 가상 환경을 만들고 필요한 종속성을 설치하는 단계를 안내하여 backtesting.py 사용법을 보여줍니다. 강사는 2006년부터 2013년까지의 Google 주가에 대한 테스트 데이터와 같은 필수 구성 요소를 가져옴으로써 백 테스트 수행을 위한 단계를 설정합니다.

그런 다음 강사는 __init__ 및 next라는 두 가지 필수 기능이 정의된 전략 수업을 진행합니다. __init__ 함수에서 강사는 상대 강도 지수(RSI)의 지표 값을 계산합니다. 다음 함수는 RSI 값을 기준으로 구매 기준을 평가하는 데 사용됩니다.

다음으로 강사는 다음 함수에 입력되는 미리 계산된 값을 사용하여 간단한 교차 전략을 구현하는 방법을 설명합니다. RSI를 상한 및 하한 값과 비교하기 위해 backtesting.py의 크로스오버 라이브러리를 가져옵니다. RSI가 특정 값을 초과하면 매도 신호가 생성되고 다른 값 아래로 떨어지면 매수 신호가 발생합니다. 강사는 상한값과 하한값을 정의하고 다음 함수에서 액세스할 수 있도록 클래스에 할당합니다.

전략을 테스트하기 위해 강사는 데이터를 제공하고 초기 현금 금액을 선택하고 통계를 인쇄하여 백 테스트를 설정합니다. 강사는 backtesting.py를 사용하여 백테스팅 결과를 쉽게 그릴 수 있음을 강조하고 화면의 빨간색 및 녹색 상자가 월을 나타내는 방법을 강조합니다.

강사는 거래 정보, 이익 및 손실, 포트폴리오 가치, 기타 유용한 메트릭에 대한 포괄적인 보기를 제공하는 backtesting.py 대시보드에 대한 개요를 제공합니다. 강사는 RSI 창의 상한 및 하한에 대해 서로 다른 범위를 정의하여 backtesting.py를 사용하여 전략 최적화를 달성할 수 있는 방법을 보여줍니다. 옵티마이저는 샤프 비율과 같은 통계를 생성하고 다양한 조합을 시뮬레이션하여 가장 가치 있는 기능을 찾습니다. 강사는 사용자가 사용자 지정 메트릭을 정의하고 제약 조건을 적용하여 최적화 결과를 개선할 수 있음을 강조합니다.

또한 강사는 특정 매개 변수를 기반으로 true 또는 false를 반환하는 람다 함수를 사용하여 값의 하위 집합을 선택하기 위해 제약 조건을 적용하는 방법을 설명합니다. 동영상은 샤프 비율을 최대화하기 위해 옵티마이저 함수를 사용하여 전략을 최적화하는 방법과 최적화 함수를 일반 Python 함수로 정의하는 방법을 보여줍니다. 강사는 또한 시장에서 소요되는 시간을 최소화하면서 이익을 극대화하기 위한 지표 생성에 대해 논의합니다.

튜토리얼에서 강사는 과적합을 방지하기 위해 최적화 기능에 최소한의 거래 필터를 추가합니다. 이 필터를 포함함으로써 백테스팅 기능은 단일 스윙 기간 이상을 살펴보고 더 수익성 있는 매개변수 조합을 발견할 가능성을 높입니다. 또한 강사는 백 테스트 결과의 HTML 파일을 만드는 방법을 보여줍니다. 이는 여러 백 테스트를 실행하고 다양한 매개 변수 조합을 추적해야 할 때 유용할 수 있습니다. 또한 강사는 작업 디렉토리가 복잡해지지 않도록 생성된 파일의 이름 지정 및 구성에 대한 지침을 제공합니다.

이 튜토리얼에서는 backtesting.py의 최적화 기능을 사용하여 가능한 모든 조합을 테스트하지 않고도 전략을 효율적으로 최적화하는 방법을 자세히 살펴봅니다. 최대 시도 횟수를 설정하면 프로그램이 조합의 무작위 그리드 검색을 수행하여 백테스팅에 소요되는 시간과 과적합의 위험을 줄입니다. 강사는 히트맵을 생성하여 상한 및 하한을 변경하여 전략에 대한 다양한 값의 효과를 시각화하는 방법을 보여줍니다. Pandas group by 문은 열을 상한 및 하한으로 그룹화하는 데 사용되며 평균은 각 조합의 평균값을 얻기 위해 계산됩니다.

발표자는 backtesting.py의 함수가 상한 및 하한과 같은 지정된 열의 모든 고유한 조합을 찾는 방법을 설명합니다. 그런 다음 이러한 조합을 함께 그룹화하고 평균과 같은 집계 함수를 적용합니다. 결과 출력은 Seaborn 모듈을 사용하여 그릴 수 있는 히트맵입니다. 강사는 샤프 비율을 최적화하고 히트맵의 색상표를 변경하는 방법을 시연합니다. 또한 강사는 내장 함수인 plot_heat_maps를 사용하여 세 개 이상의 매개변수에 대해 여러 히트맵을 그리는 방법을 보여줍니다.

강사는 매개변수 최적화를 위해 히트맵을 사용하는 방법과 backtesting.py 라이브러리의 resample 적용 기능을 사용하여 다중 시간 프레임 전략을 구현하는 방법을 보여줍니다. 히트맵은 다양한 매개변수의 변화가 거래 전략에 미치는 영향을 시각적으로 보여줍니다. 리샘플 적용 기능을 사용하여 서로 다른 시간 프레임을 결합함으로써 트레이더는 서로 다른 시장 조건을 고려하는 보다 복잡한 전략을 구축할 수 있습니다.

강사는 backtesting.py 라이브러리를 사용하여 거래 전략에서 다양한 시간 프레임을 사용할 수 있는 방법을 설명합니다. 다운샘플링 및 기능 적용을 통해 라이브러리는 정방향 채우기를 수행하고 더 작은 시간 프레임으로 다시 인덱싱하여 다양한 시간 프레임의 분석을 용이하게 할 수 있습니다. 제공된 예에서 전략은 크로스오버가 발생하고 RSI가 특정 임계값보다 높거나 낮을 때만 거래를 트리거하기 위해 일일 및 주간 RSI를 사용하는 것을 포함합니다. 강사는 매개변수를 조정하여 전략을 최적화할 수 있으며 라이브러리가 손절매 및 이익실현과 같은 다양한 주문 유형을 실험할 수 있도록 지원한다고 언급합니다.

발표자는 RSI가 하한선 아래로 내려갈 때 숏 포지션을 시작하는 방법과 매수 시 숏 포지션을 청산하는 방법을 시연합니다. 유사하게, 발표자는 RSI가 상한선 위로 올라가면 롱 포지션을 매도하고 숏 포지션을 개시한다는 것을 보여줍니다. 그러나 발표자는 프로그램이 여러 직책을 맡는 것을 방지하는 코드가 없으며 이로 인해 프로그램이 투자한 지분의 80%를 잃게 된다고 지적합니다. 발표자는 현재 포지션이 없거나 포트폴리오에 롱/숏 포지션이 있는 경우에만 새 거래를 시작하는 조항을 추가하여 이 문제를 해결하는 방법을 설명합니다.

강사는 backtesting.py에서 손절매 및 이익실현 주문을 사용하는 방법을 보여줍니다. 현재 가격보다 낮은 특정 비율로 손절매를 설정함으로써 이 전략은 각 거래에서 손실을 제한할 수 있는 반면 이익실현 수준을 설정하면 특정 이익 수준에서 거래를 종료할 수 있습니다. 강사는 또한 구매 프로세스에서 크기 매개변수를 조정하여 각 거래에 사용 가능한 자금의 특정 비율을 할당하는 방법을 보여줍니다. 예제의 판매 전술에는 몇 가지 문제가 있지만 비디오는 거래 전략을 구축하고 테스트하기 위해 backtesting.py를 사용하는 데 유용한 통찰력을 제공합니다.

이 동영상은 백테스팅에서 포지션 사이징을 구현하는 다양한 방법에 대해 설명합니다. 한 가지 접근 방식은 사용 가능한 현금의 일정 비율이 아닌 한 번에 한 주식을 사고 파는 것입니다. 이 접근 방식은 포지션 또는 달러 비용 평균화에 대한 래더링과 관련된 전략에 유용할 수 있습니다. 비디오는 크로스오버 전략을 RSI 지표에 기반한 전략으로 수정하는 방법을 보여줍니다. 이 수정된 전략에서는 최신 RSI 값이 하한값보다 작을 때 거래가 실행됩니다. 이 비디오는 또한 진입 및 종료 날짜 및 기타 중요한 메트릭을 포함하여 백 테스트에서 pandas 데이터 프레임으로 거래를 추출할 수 있음을 강조합니다. 이러한 거래 데이터는 추가 분석 및 검사를 위해 Excel 또는 기타 Python 스크립트와 같은 다른 시각화 도구로 내보낼 수 있습니다.

backtesting.py의 작성자는 전략을 최적화하고 전날 데이터를 비교하기 위해 수많은 if 문을 작성할 필요가 없도록 하는 강력한 도구인 "bars since" 기능을 도입했습니다. 이 기능을 통해 사용자는 특정 거래 조건이 마지막으로 충족된 이후의 막대 수를 결정할 수 있습니다. 이 기능은 특정 시간 기반 조건을 기반으로 전략을 최적화하는 편리한 방법을 제공합니다. 또한 작성자는 backtesting.py의 오픈 소스 특성을 강조하여 사용자가 특정 요구 사항과 기본 설정에 따라 라이브러리를 사용자 지정하도록 권장합니다.

결론적으로, backtesting.py의 튜토리얼은 시청자에게 질문이나 우려 사항이 있으면 연락하도록 격려하는 강사로 마무리됩니다. 강사는 백테스팅 노력에 행운이 있기를 바라며 백테스팅의 가능성을 탐색하고 backtesting.py를 사용하여 거래 전략을 최적화하는 동안 재미를 상기시켜줍니다. 강사는 백테스팅 인프라 구축 및 최적화에 사용할 수 있는 추가 기능을 발견하고 자세한 내용을 보려면 backtesting.py 문서를 참조하는 것이 중요하다고 강조합니다.

전반적으로 튜토리얼은 backtesting.py의 포괄적인 개요, 이점, 제한 사항 및 다양한 기능을 제공합니다. 백 테스트 환경 생성, 전략 구현, 매개 변수 최적화, 분석을 위한 히트맵 사용, 여러 시간 프레임 통합 및 위치 크기 조정 기술 적용 프로세스를 통해 사용자를 안내합니다. 튜토리얼을 따르면 시청자는 backtesting.py를 사용하여 거래 전략을 효과적으로 테스트하고 개선하는 데 도움이 되는 귀중한 통찰력과 실용적인 지식을 얻을 수 있습니다.

  • 00:00:00 강사가 backtesting.py의 장점과 단점에 대해 설명합니다. 라이브러리는 백테스팅의 필수 요소에만 초점을 맞추고 지표 라이브러리나 브로커 또는 기타 플랫폼과의 통합을 포함하지 않습니다. 문서는 간단하고 이해하기 쉽습니다. 또한 특히 단일 전략을 테스트할 때 매우 빠릅니다. 단점으로는 여러 자산 또는 소수주와의 거래가 허용되지 않습니다. 전반적으로 라이브러리는 가볍고 단순하므로 백테스팅에만 집중하려는 사람들에게 탁월한 선택입니다. 또한 강사는 가상 환경을 만들고 자습서에 필요한 종속 항목을 설치하는 단계를 안내합니다.

  • 00:05:00 우리는 backtesting.py 라이브러리의 작성자가 2006년부터 2013년까지의 Google 주가에 대한 테스트 데이터와 같은 백 테스트를 실행하는 데 필요한 필수 구성 요소를 가져오고 두 가지 기능이 있는 전략 클래스를 생성하는 것을 봅니다. , init 및 next가 정의됩니다. init에서는 RSI의 지표 값을 계산하고 다음 함수는 RSI 값의 계산을 기반으로 구매 기준을 평가하는 데 사용됩니다.

  • 00:10:00 강사가 내년에 공급되는 미리 계산된 값을 사용하여 간단한 교차 전략을 구현하는 방법에 대해 설명합니다. 그들은 backtesting.py에서 크로스오버 라이브러리를 가져와서 RSI를 상한값과 하한값과 비교합니다. RSI가 특정 값을 초과하면 매도하고 아래로 떨어지면 매수합니다. 또한 상한값과 하한값을 정의하고 함수에서 액세스할 수 있도록 클래스에 할당합니다. 그런 다음 강사는 전략에 대한 백 테스트를 설정하고 데이터를 제공하고 현금 금액을 선택하고 통계를 인쇄합니다. 그들은 어떻게 백테스팅을 쉽게 구성할 수 있는지, 화면의 빨간색과 녹색 상자가 월을 어떻게 나타내는지 설명합니다.

  • 00:15:00 발표자는 backtesting.py를 사용하여 백테스팅 결과를 시각화하는 데 사용할 수 있는 대시보드의 개요를 제공합니다. 대시보드는 무엇보다도 거래, 손익, 포트폴리오 가치 및 지표에 대한 정보를 제공합니다. 연사는 또한 backtesting.py를 사용하여 상한 및 하한과 RSI 창에 대한 다양한 값 범위를 정의하여 전략 최적화를 달성할 수 있는 방법을 보여줍니다. 옵티마이저는 샤프 비율과 같은 통계를 생성하고 다양한 조합을 시뮬레이션하여 가장 가치가 높은 함수를 찾습니다. 발표자는 사용자가 더 나은 최적화 결과를 생성하기 위해 제약 조건을 최적화하고 적용하기 위해 사용자 정의 메트릭을 정의할 수 있다고 언급합니다.

  • 00:20:00 강사가 제약 조건을 적용하여 값의 하위 집합을 선택하고 매개 변수에 따라 true 또는 false를 반환하는 람다 함수를 만드는 방법을 설명합니다. 동영상은 전략을 최적화하는 방법, 옵티마이저 함수를 사용하여 샤프 비율을 최대화하는 방법, 최적화 함수를 일반 Python 함수로 정의하는 방법을 보여줍니다. 강사는 또한 최소한의 시간 동안 시장에 머물면서 최대한의 돈을 버는 방법을 알아내는 지표를 만드는 방법에 대해서도 설명합니다.

  • 00:25:00 강사가 과적합을 방지하기 위해 최적화 기능에 최소 거래 필터를 추가하는 방법을 설명합니다. 이 필터를 추가하면 백테스팅 기능이 단일 스윙 기간을 넘어서서 보다 수익성 있는 매개변수 조합을 발견할 가능성이 높아집니다. 강사는 백테스트 결과의 HTML 파일을 생성하는 방법도 보여줍니다. 이는 여러 백테스트를 실행할 때 유용할 수 있으며 사용된 다양한 매개변수 조합을 추적해야 합니다. 마지막으로 강사는 작업 디렉토리가 막히지 않도록 생성된 파일의 이름을 지정하고 구성하는 방법에 대해 설명합니다.

  • 00:30:00 강사가 가능한 모든 조합을 수행하지 않고도 신속하게 전략을 최적화하기 위해 backtesting.py의 최적화 기능을 사용하는 방법을 설명합니다. 최대 시도 횟수를 설정하면 프로그램이 조합의 무작위 그리드 검색을 수행하여 백테스팅에 소요되는 시간과 과적합의 위험을 줄입니다. 강사는 또한 상한값과 하한값을 변경할 때 다양한 값과 전략에 미치는 영향을 시각화하기 위해 히트 맵을 생성하는 방법을 보여줍니다. Pandas group by 문은 상한 및 하한으로 열을 그룹화하는 데 사용되며 평균은 각 조합의 평균값을 계산하는 데 사용됩니다.

  • 00:35:00 화자는 함수가 언급된 열의 모든 고유 조합(예: 상한 및 하한)을 찾는 방법을 설명합니다. 그런 다음 함수는 이러한 조합을 함께 그룹화하고 집계 함수(이 경우 평균)를 적용합니다. 결과 출력은 Seaborn 모듈을 사용하여 그릴 수 있는 히트맵입니다. 연사는 샤프 비율을 최적화하고 히트맵의 컬러맵을 변경하는 방법을 시연합니다. 마지막으로 발표자는 내장 함수인 plot_heat_maps를 사용하여 두 개 이상의 매개변수에 대한 여러 히트맵을 그리는 방법을 보여줍니다.

  • 00:40:00 강사가 파라미터 최적화를 위해 히트 맵을 사용하는 방법과 백테스팅 라이브러리의 리샘플 적용 기능을 사용하여 다중 시간 프레임 전략을 구현하는 방법을 시연합니다. 히트 맵을 사용하여 사용자는 다양한 매개 변수의 변화가 거래 전략에 어떤 영향을 미치는지 시각화할 수 있습니다. 리샘플링 적용 기능을 통해 사용자는 데이터를 여러 시간 프레임 전략에서 함께 사용하기 위해 주간 및 매일과 같은 다른 시간 프레임으로 데이터를 리샘플링할 수 있습니다. 서로 다른 시간 프레임을 결합함으로써 트레이더는 서로 다른 시장 조건을 고려하는 보다 복잡한 전략을 구축할 수 있습니다.

  • 00:45:00 강사가 backtesting.py 라이브러리를 사용하여 거래 전략에서 다양한 시간 프레임을 사용하는 방법을 설명합니다. 다운 샘플링 및 기능 적용을 통해 라이브러리는 정방향 채우기를 수행하고 더 작은 시간 프레임으로 다시 인덱싱할 수 있으므로 다양한 시간 프레임을 보다 쉽게 분석할 수 있습니다. 이 예의 전략은 크로스오버가 발생하고 RSI가 특정 임계값보다 높거나 낮을 때만 거래를 트리거하기 위해 일일 및 주간 RSI를 사용하는 것을 포함합니다. 매개 변수를 조정하여 전략을 최적화할 수 있으며 라이브러리를 사용하여 손절매 및 이익실현과 같은 다양한 주문 유형을 실험할 수 있습니다.

  • 00:50:00 발표자는 RSI가 하한선 아래로 내려갈 때 숏 포지션을 시작하는 방법을 보여주고 매수 시 숏 포지션을 청산합니다. 마찬가지로 그는 RSI가 상한선을 넘어 롱 포지션을 매도하면 프로그램이 숏 포지션도 시작한다는 것을 보여줍니다. 그러나 프로그램이 여러 포지션을 취하는 것을 막을 수 있는 코드가 없으며, 이로 인해 프로그램이 투자되는 지분의 80%를 잃게 됩니다. 발표자는 현재 포지션이 없거나 포트폴리오에 롱/숏 포지션이 있는 경우에만 새 거래를 시작하는 조항을 추가하여 이 문제를 해결하는 방법을 설명합니다.

  • 00:55:00 강사가 backtesting.py에서 손절매 및 이익실현 주문을 사용하는 방법을 보여줍니다. 현재 가격보다 낮은 특정 비율로 손절매를 설정함으로써 이 전략은 각 거래에서 일정 금액 이상의 손실을 피할 수 있는 반면 이익실현을 설정하면 특정 이익 수준에서 거래를 종료할 수 있습니다. 강사는 또한 구매 프로세스에서 크기 매개변수를 조정하여 각 거래에 사용 가능한 자금의 특정 비율을 할당하는 방법을 보여줍니다. 이 예에서 판매 전술에 몇 가지 문제가 있지만 비디오는 거래 전략을 구축하고 테스트하기 위해 backtesting.py를 사용하는 데 유용한 통찰력을 제공합니다.

  • 01:00:00 비디오는 백테스팅에서 포지션 사이징을 구현하는 다양한 방법에 대해 설명합니다. 한 가지 방법은 사용 가능한 현금의 일정 비율이 아닌 한 번에 한 주식을 사고 파는 것인데, 이는 포지션 또는 달러 비용 평균화에 유용할 수 있습니다. 비디오는 최신 RSI 값이 하위 대역보다 작을 때 구매하는 RSI 지표를 기반으로 한 전략으로 교차 전략을 수정하는 것을 보여줍니다. 이 비디오는 또한 진입 및 종료 날짜 및 기타 중요한 메트릭을 포함하여 백 테스트에서 pandas 데이터 프레임으로 거래를 추출할 수 있음을 보여줍니다. 거래는 Excel 또는 기타 Python 스크립트와 같은 다른 시각화 도구로 내보낼 수 있습니다.

  • 01:05:00 작성자는 backtesting.py에서 특정 거래 조건이 마지막으로 충족된 이후의 막대 수를 결정하는 데 사용할 수 있는 "이후 막대" 기능을 도입했습니다. 이 함수는 전략을 최적화하고 전날의 데이터를 비교하기 위해 많은 if 문을 작성할 필요가 없도록 하는 훌륭한 도구가 될 수 있습니다. 제작자는 일일 rsi가 연속 3일 동안 상한선 이상일 때만 매도하는 예를 사용합니다. 또한 추가 분석을 위해 원시 거래 데이터를 추출하는 방법과 backtesting.py의 오픈 소스 특성을 통해 사용자가 특정 요구 사항에 맞게 라이브러리를 쉽게 사용자 지정할 수 있는 방법에 대해 설명합니다. 이 튜토리얼의 결론은 학습자가 backtesting.py 문서를 탐색하여 백테스팅 인프라를 구축하고 최적화하는 데 사용할 수 있는 기능과 세부 정보를 발견하도록 초대합니다.

  • 01:10:00 연사는 시청자들이 질문이나 우려 사항이 있으면 그에게 연락하도록 격려하며 backtesting.py 과정을 마무리합니다. 또한 백테스팅 노력에 행운이 있기를 바라며 즐겁게 지내도록 상기시켜 줍니다.
Backtesting.py - Full course in python
Backtesting.py - Full course in python
  • 2022.04.26
  • www.youtube.com
A full course covering all you need to know about the backtesting.py python library. Backtesting.py is a lightweight backtesting framework in the style of Ba...