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

 

Python의 채널 브레이크 아웃 표시기



Python의 채널 브레이크 아웃 표시기

안녕! 오늘은 알고리즘에 의해 생성된 가격 채널 돌파 사례에 대해 자세히 살펴보겠습니다. 나중에 아래 설명의 링크에서 무료로 다운로드할 수 있는 코드를 보여드리겠습니다. 가격 채널 돌파가 무엇인지 이해하는 것부터 시작하겠습니다.

가격 채널 돌파는 가격의 잠재적인 돌파를 식별하기 위해 트레이더가 사용하는 기술 분석 도구입니다. 특정 기간 동안 가격의 최고점과 최저점을 나타내는 가격 행동 주위에 채널을 구성하여 작동합니다. 가격이 이 채널을 벗어나면 잠재적 추세 변화 또는 시장 기회를 나타낼 수 있습니다.

흥미로운 부분은 Python을 사용하여 채널 및 잠재적 탈주를 식별하는 프로세스를 자동화할 수 있다는 것입니다. 이 비디오에서는 알고리즘 단계를 안내하고 코드를 제공하여 거래 기본 설정 및 사용할 자산에 따라 수정하고 미세 조정할 수 있도록 합니다.

차트에 표시된 예를 분석해 보겠습니다. 검은색 별은 알고리즘이 감지한 탈주를 나타냅니다. 캔들 아래의 별은 향후 상승 추세를 나타내고 캔들 위의 별은 향후 하락 추세를 나타냅니다. 이러한 브레이크아웃은 알고리즘에 의해 식별된 채널을 기반으로 합니다.

알고리즘을 설명하기 위해 첫 번째 예를 살펴보겠습니다. 하락세에 이어 특정 채널 아래에서 돌파가 이어집니다. 캔들 아래의 별은 향후 하락 추세를 나타냅니다. 이 특정 채널은 차트에 표시된 것과 다르다는 점에 유의해야 합니다. 알고리즘은 이전 양초를 기반으로 채널을 감지합니다.

또 다른 예는 향후 상승 추세를 나타내는 채널 위의 돌파입니다. 우리는 이러한 탈주와 알고리즘에 의해 감지된 채널과의 관계를 관찰할 수 있습니다. 이 알고리즘은 세 가지 감지 지점(피벗 지점, 채널 감지 및 브레이크아웃 감지)을 사용합니다.

첫째, 인접한 양초에 비해 값이 높거나 이웃 양초에 비해 값이 낮은 양초인 피봇 포인트를 감지합니다. 알고리즘은 각 측면에서 피벗 고점 또는 저점으로 두 개의 양초를 확인합니다. 이러한 피벗점은 채널을 정의하기 위한 맞춤선의 기준점 역할을 합니다.

다음으로 알고리즘은 선을 피벗 최고점과 최저점에 맞추어 채널을 생성합니다. 이 단계는 채널의 상한 및 하한 경계를 식별합니다. 채널은 잠재적인 가격 변동 범위를 나타냅니다.

세 번째 단계는 탈주 감지입니다. 알고리즘은 현재 캔들을 채널과 비교하여 브레이크아웃이 발생했는지 확인합니다. 브레이크 아웃 조건은 채널에 대한 시가 및 종가의 위치를 기준으로 정의됩니다. 이 비디오에서는 채널 위와 아래의 탈주를 고려합니다.

Python에서는 브레이크아웃 조건을 수정하고 거래 기본 설정 및 거래 중인 자산에 따라 고유한 패턴을 정의할 수 있는 유연성이 있습니다. 링크에 제공된 코드는 실험의 시작점 역할을 합니다.

알고리즘은 일일 시간 프레임과 유로/미국 달러 가격을 사용하여 표시된 예를 기반으로 잘 작동하는 것 같습니다. 그러나 추가 테스트 및 분석이 필요합니다. 이제 코드를 살펴보겠습니다.

Jupyter Notebook 파일에서 필요한 라이브러리(pandas, numpy, plotly 및 scipy.stats)를 가져옵니다. 또한 2003년부터 2023년까지 유로/미국 달러 일일 촛대 가격이 포함된 CSV 데이터 파일을 가져옵니다.

코드는 촛불이 피벗 포인트인지 감지하는 함수를 정의하는 것으로 시작합니다. 테스트할 캔들 인덱스와 고려할 인접 캔들의 수를 결정하는 창 매개변수의 두 가지 인수가 필요합니다. 이 함수는 현재 캔들의 고가와 저가가 인접한 캔들의 고가와 저가보다 높거나 낮은지 확인합니다. 피벗 유형(높음, 낮음 또는 둘 다)에 따라 레이블(0, 1, 2 또는 3)을 할당합니다.

캔들스틱 차트에서 가격 채널 돌파를 감지하려면 다음 단계를 따르십시오.

  1. 채널 감지를 위해 고려할 백 캔들 수를 정의하십시오. 이것은 채널의 길이를 결정합니다.
  2. 차트의 양초를 반복합니다.
  3. 각 캔들에 대해 이전 백 캔들의 낮은 값과 높은 값을 수집합니다.
  4. 선형 회귀를 사용하여 피벗 저점과 피벗 고점을 연결하는 선의 기울기와 절편을 계산합니다.
  5. 기울기 값이 NaN(숫자가 아님)이 아닌지 확인하여 유효한 채널을 형성할 수 있음을 나타냅니다.
  6. 유효한 채널이 감지되면 캔들스틱 차트에서 채널 선(파선)과 피벗 포인트(낮은 파란색 점, 높은 빨간색 점)를 플로팅합니다.

일반적인 아이디어는 지정된 수의 백 캔들 내에서 가격 변동을 포함하는 추세선을 식별하는 것입니다. 이러한 채널에서 돌파를 감지하면 잠재적으로 중요한 가격 변동을 식별하고 정보에 입각한 거래 결정을 내릴 수 있습니다.

이전에 제공된 코드는 단순화된 예이며 특정 거래 요구 사항에 따라 필요에 맞게 코드를 수정하고 미세 조정해야 할 수도 있습니다. 또한 실제 거래 목적으로 채널 브레이크아웃 기술을 사용할 때 위험 관리 전략, 기타 지표 및 거래 접근 방식과 관련된 요소를 통합하는 것을 고려하십시오.

Channel Break Out Indicator In Python
Channel Break Out Indicator In Python
  • 2023.02.23
  • www.youtube.com
In this video, you'll learn how to use Python to implement the Price Channel Breakout Indicator and how it can be used to identify profitable trading opportu...
 

ChatGPT 트레이딩 전략 챌린지



ChatGPT 트레이딩 전략 챌린지

안녕하세요. 최신 실험에 오신 것을 환영합니다. 이 비디오에서는 실제 인간 트레이더의 경험과 비교하여 AI의 힘을 보여줄 것입니다. 가격 채널 돌파 전략을 탐구하고 AI 모델인 ChatGPT에 도전하여 성능을 확인합니다. 흥미로운 것을 발견하면 다음 비디오에서 나만의 알고리즘을 작성하고 성능 결과를 비교할 것입니다. 나중에 이 비디오에서 사용할 Python 코드도 공유하겠습니다. 호기심이 있고 전략을 실험하고 확장하려는 경우 아래 설명의 링크에서 다운로드할 수 있습니다. 그러니 편히 앉아 긴장을 풀고 즐기자.

채널 돌파 지표에 대해 이야기할 때 일반적으로 캔들스틱 차트 패턴과 프랙탈 포인트를 고려합니다. 돌파는 일반적으로 가격이 채널을 넘어설 때 발생하며, 돌파 이후에는 추세가 적어도 잠시 동안 같은 방향으로 계속될 것으로 예상합니다. 오늘 우리는 ChatGPT가 특히 가격 채널 돌파 전략을 위해 코드를 생성하도록 노력할 것입니다.

ChatGPT로 실험을 시작하기 전에 다음 비디오에서 동일한 전략인 가격 채널 돌파를 프로그래밍할 것입니다. 이를 통해 결과를 비교하고 프로그램의 모든 세부 사항에 대한 제어를 강조할 수 있습니다. 계속 지켜봐 주시기 바랍니다. 시작하겠습니다.

이제 가격 돌파 전략을 정의하는 것으로 시작하겠습니다. 이 거래 방식에는 추세선 및 차트 패턴과 같은 기술적 분석 도구를 사용하여 주요 수준의 지원 및 저항을 식별하는 것이 포함됩니다. 과거에 여러 번 테스트된 수준에 주의를 기울이고 해당 수준에서 가격 움직임을 관찰하십시오. 주요 수준을 식별하면 진입 및 퇴장 규칙을 설정할 수 있습니다.

진입 및 퇴장 규칙을 설정하는 것은 전략에서 가장 어려운 부분입니다. 여기에는 거래에 들어갈 가격 수준과 이익을 취하거나 잠재적 손실을 제한하기 위해 언제 종료할지 결정하는 것이 포함됩니다. 포지션을 열면 자산의 가격 움직임을 모니터링하는 것이 중요합니다. 우리는 거래가 우리에게 불리하게 작용할 경우 잠재적인 손실을 제한하기 위해 손절매 주문을 사용해야 합니다.

진입 규칙을 설정하고 거래를 관리한 후에는 열린 거래를 모니터링해야 합니다. 가격이 예상 방향으로 계속 움직이면 추가 이익을 얻기 위해 출구 전략을 조정하는 것을 고려할 수 있습니다. 이를 위해서는 변화하는 시장 상황에 따라 지속적인 모니터링과 적응이 필요합니다.

전략의 분석은 다음과 같습니다.

  1. 주요 지지선 및 저항선 식별: 추세선 및 차트 패턴과 같은 기술 분석 도구를 사용하여 과거에 여러 번 테스트된 수준을 식별합니다. 이러한 레벨은 지지 또는 저항 역할을 하며 채널을 형성합니다.

  2. 브레이크아웃 수준 정의: 채널을 식별했으면 브레이크아웃 수준을 결정합니다. 이것은 가격이 채널 경계를 넘어 움직이는 가격 수준입니다. 잠재적 추세 지속을 나타냅니다.

  3. 진입 및 청산 규칙 설정: 돌파가 발생할 때 거래 진입 기준을 결정합니다. 강세 돌파의 경우 가격이 상위 채널 경계 위에서 닫히거나 약세 돌파의 경우 채널 하단 경계 아래에서 마감될 수 있습니다. 또한 특정 목표 수준에서 이익을 얻거나 불리한 가격 변동으로부터 보호하기 위해 후행 손절매를 사용하는 등 거래 종료 기준을 설정하십시오.

  4. 공개 거래 모니터링: 거래가 입력되면 가격 움직임을 면밀히 모니터링합니다. 가격이 계속 호의적으로 움직이면 출구 전략을 조정하십시오. 여기에는 이익을 보호하기 위해 손절매를 추적하거나 추가 이익을 얻기 위해 새로운 목표 수준을 설정하는 것이 포함될 수 있습니다.

  5. 위험 관리: 위험 관리 기술을 구현하여 잠재적 손실을 제한합니다. 여기에는 가격이 예상 추세와 반대로 움직일 경우 거래를 종료하기 위해 사전 결정된 수준에서 손절매 주문을 설정하는 것이 포함될 수 있습니다.

  6. 지속적인 적응: 변화하는 시장 상황에 따라 전략을 조정합니다. 가격 채널 돌파 전략은 최고의 거래 기회를 포착하기 위해 지속적인 모니터링과 조정이 필요합니다.

이러한 단계를 따르고 거래하는 특정 시장 및 기간에 적용함으로써 가격 채널 돌파 전략을 구현할 수 있습니다. 전략의 효과는 다양한 요인에 따라 달라질 수 있으며 실시간 거래에 적용하기 전에 전략을 백테스트하고 검증하는 것이 중요합니다.

ChatGPT Trading Strategy Challenge
ChatGPT Trading Strategy Challenge
  • 2023.02.03
  • www.youtube.com
In this video, we will be exploring the use of ChatGPT in generating a profitable trading strategy. The goal of this strategy is to beat the performance of a...
 

Python을 사용한 자동 헤징 전략으로 FOREX 그리드 트레이딩 마스터하기


Python을 사용한 자동 헤징 전략으로 FOREX 그리드 트레이딩 마스터하기

이전 영상에서 우리는 Forex Market에서 그리드 거래 시스템을 테스트했고 높은 수익률과 뛰어난 샤프 비율로 좋은 결과를 얻었습니다. 그러나 귀하의 의견을 바탕으로 보다 정확한 백 테스트를 수행하기 위해 일부 세부 사항을 수정해야 함을 깨달았습니다. 결과적으로 제안된 변경 사항을 알고리즘에 적용했습니다.

그리드 전략에 대해 자세히 설명한 이전 비디오를 보지 않았다면 전략에 대한 더 깊은 이해를 제공하므로 먼저 확인하는 것이 좋습니다. 아래 설명에서 해당 비디오에 대한 링크를 찾을 수 있습니다. 또한 제공된 링크에서 업데이트된 버전의 Python 코드를 다운로드할 수 있습니다.

코드 변경을 구현한 후에도 사용된 매개변수 세트에 따라 잠재적으로 선호되는 시스템이 있습니다. 매개 변수를 최적화하는 데 많은 시간을 할애하지 않았으므로 코드를 다운로드하고 원하는 대로 조정하여 실험할 수 있습니다. 이렇게 하면 기본 설정에 따라 위험 수준을 조정할 수 있습니다. 예리율을 낮추는 대신 더 많은 위험을 포함하거나 예리율을 높이면서 위험과 수익을 줄일 수 있습니다.

이제 이전 버전의 코드에 적용된 특정 변경 사항에 대해 설명하겠습니다. 먼저 이익실현/손절매 비율과 관련된 매개변수 중 하나를 제거했습니다. 우리는 이 비율이 전략 자체 내에서 수정되어야 하므로 이 시점에서 설정할 필요가 없다는 것을 깨달았습니다. 이전 버전에서 사용된 기능은 동일하게 유지됩니다.

첫 번째 중요한 수정 사항은 로트 크기와 관련이 있습니다. 이전 버전에서는 로트 크기가 현재 자산의 백분율을 나타내는 1 미만의 값으로 설정되었습니다. 그러나 이것은 우리가 서로 다른 로트 크기로 양방향으로 거래했기 때문에 그리드 전략의 규칙을 위반했습니다. 이를 수정하기 위해 로트 크기를 고정 값(이 예에서는 50)으로 설정했습니다.

두 번째 중요한 수정 사항은 백 테스트 기능과 관련이 있습니다. 이전에는 거래를 개시한 다음 반대 거래 또는 반대 방향의 거래를 개시하려고 하면 백테스팅 기능이 이전 거래를 청산했습니다. 이것은 우리가 먼저 매도한 다음 같은 양을 매수하면 백테스팅 기능이 매도 포지션을 청산한다는 것을 의미했습니다. 백테스팅이 반대 방향으로 독립적으로 두 개의 거래를 시작하도록 허용하기 위해 우리는 true로 설정된 헤징 매개변수를 사용했습니다. 이를 통해 동일한 자산에서 동시에 반대 방향의 위치를 지정할 수 있습니다. 또한 배타적 주문 매개변수를 false로 설정하여 한 주문이 이전 주문을 취소하지 않음을 의미합니다.

손절매 값은 그리드 거리의 1.5배로 설정하고 테이크프로핏은 그리드 거리의 0.5배로 설정합니다. 테이크 프로핏/스톱 로스 비율은 0.5로 설정됩니다. 예제에 사용된 임의의 매개변수입니다. 실제 시스템에서는 전략이 이익 창출을 위해 시장 고르기에 의존하기 때문에 손절매가 이익 실현보다 더 멀리 있는지 확인하는 것이 중요합니다.

이러한 매개 변수, $500의 현금 계정 및 1에서 10의 마진을 사용하여 2개월 간의 데이터에서 다음과 같은 결과를 얻었습니다. 수익률은 13.49, 예리한 비율은 3.8, 승률은 72%입니다. 주식 곡선은 일부 감소 영역에서 기울기가 증가하는 것을 보여줍니다.

위험을 줄이고 예리율을 높이려면 추가 현금으로 시작하거나 마진을 조정하는 것을 고려할 수 있습니다. 예를 들어 1,000달러로 시작하여 1대 10의 마진을 유지하면 두 달 동안 수익률은 1.7%로 감소했지만 샤프 비율은 4.9로 증가했습니다. 이는 이 매개변수 변경으로 위험이 감소했음을 나타냅니다.

이 시스템에는 작업할 매개변수가 많으며 올바른 균형을 찾는 것이 중요하다는 점을 명심하십시오. 손절매 비율과 이익 실현 비율을 변경하여 실험해 볼 수도 있습니다.

모든 중개인이 헤징 거래를 허용하는 것은 아니라는 점에 유의하는 것이 중요합니다. 즉, 동일한 자산에 대해 동시에 반대 포지션을 여는 것을 허용하지 않을 수 있습니다. 이것은 중개인과 귀하의 위치에 따라 달라질 수 있습니다. 미국의 일부 시청자는 댓글에서 해당 지역에서 허용되지 않는다고 언급했습니다. 따라서 이 전략을 구현하기 전에 중개인과 논의하여 정책과 일치하는지 확인하는 것이 좋습니다.

마지막으로, 백테스팅은 시스템 연구의 첫 번째 단계이지만 그것만으로는 충분하지 않습니다. 거래되는 통화의 스프레드가 포함되고 예상 결과에 영향을 미칠 수 있으므로 종이 계정을 사용하여 시장에서 실시간으로 전략을 테스트하는 것이 중요합니다.

Master FOREX Grid Trading with Automated Hedging Strategy using Python
Master FOREX Grid Trading with Automated Hedging Strategy using Python
  • 2023.01.19
  • www.youtube.com
Learn how to enhance your FOREX grid trading with an Automated Hedging Strategy using Python!📈💻 In this video, we'll delve into the concept of grid trading...
 

파이썬 거래를 위한 헤징 전략



파이썬 거래를 위한 헤징 전략

안녕하세요 여러분, 오늘 우리는 그리드 거래 전략을 테스트할 것입니다. 이 전략은 단순성으로 유명하며 추세를 결정하기 위해 기술적 지표가 필요하지 않습니다. 즉, 추세를 미리 추측할 필요가 없습니다. 그리드 거래는 긴 방향과 짧은 방향을 동시에 거래하므로 알고리즘 거래에 적합합니다.

이 전략을 평가하기 위해 Python 언어를 사용하여 백 테스트를 수행합니다. 우리는 5분의 기간으로 2개월에 걸친 과거 데이터를 사용할 것입니다. 백 테스트 결과는 테스트 기간 동안 자산의 꾸준한 증가를 보여 주며 전략은 인상적인 성과 비율을 산출합니다. 위험 조정 수익률을 측정하는 샤프 비율은 약 5.7입니다.

코딩 부분이 궁금하신 분들은 아래 설명에 제공된 링크에서 Jupyter Notebook 파일을 다운받으실 수 있습니다. 이 전략은 저자에게 개인적인 의미가 있습니다. 취미로 처음 거래를 시작했을 때 이 시스템을 사용하여 소액 계좌를 상당한 금액으로 전환한 것을 기억하기 때문입니다.

그리드 거래 전략의 기본 개념은 차트에 가격 수준의 그리드를 만드는 것입니다. 가격이 이 격자선을 넘을 때마다 롱 포지션과 숏 포지션을 엽니다. 이익실현 수준은 각 포지션의 다음 그리드 라인에 설정됩니다. 샘플 차트에서 볼 수 있듯이 전략은 초기 롱 포지션과 숏 포지션을 연 다음 다음 그리드 레벨에서 우승 포지션을 마감하는 것입니다. 그런 다음 그리드 라인이 교차할 때마다 두 개의 추가 포지션이 열립니다. 하나는 롱 포지션이고 다른 하나는 숏 포지션입니다.

이 전략의 한 가지 과제는 그리드 가장자리에 열려 있는 손실 거래를 관리하는 것입니다. 일부 포지션은 테이크 프로핏 값에 도달하지 못하여 시스템에 어려움을 초래할 수 있습니다. 이 상황을 처리하기 위해 다양한 접근 방식을 사용할 수 있습니다. 일부 트레이더는 거래일이 끝날 때 나머지 거래를 마감하도록 선택할 수 있는 반면, 다른 트레이더는 몇 시간마다 전반적인 이익 상황에 있는지 계산하고 모든 것을 마감하여 새로운 그리드로 새로 시작하도록 선택할 수 있습니다. 솔루션은 시간 프레임, 허용되는 최대 병렬 거래 수 및 그리드 거리와 같은 추가 매개변수에 따라 달라집니다.

코딩 부분에서 작성자는 ATR(Average True Range)을 사용하여 각 거래에 손절매 값을 적용합니다. 이 손절매 값은 처음에는 그리드 거리를 기준으로 계산되지만 ATR을 사용하여 이를 구체화합니다. ATR은 거래 시점의 시장 변동성을 고려합니다. 저자는 이것이 최선의 접근 방식이 아닐 수 있다고 언급하고 전략에 대한 최적의 시나리오를 찾기 위해 다양한 매개 변수를 사용한 실험을 권장합니다.

이 시스템이 많은 경우에 작동하는 이유는 시장 소음을 이용하기 때문입니다. 시장이 그리드 주변에서 진동하는 한 전략은 가격 변동으로부터 이익을 얻고 장단기 방향 모두에서 포지션을 엽니다. 시스템은 더 낮은 가격 변동이 있는 더 낮은 시간 프레임에서 더 나은 성능을 발휘할 것으로 예상되므로 잠재적으로 더 높은 수익을 올릴 수 있습니다.

이 전략은 두 가지 이점을 제공합니다. 첫째, 특정 추세를 따르지 않기 때문에 추세를 추측할 필요가 없습니다. 둘째, 손실이 난 거래를 관리하는 데 중점을 두어 거래 프로세스를 단순화합니다. 이 전략에는 그리드 거리라는 하나의 조정 가능한 매개변수만 있습니다. 그러나 거래되는 특정 자산에 대한 적절한 시간 프레임과 그리드 거리를 선택하는 것이 중요합니다.

제공된 Jupyter Notebook 파일은 Python에서 전략을 구현하는 방법을 보여줍니다. 이 코드는 데이터 검색을 위한 yfinance, 데이터 조작을 위한 pandas 및 numpy, ATR 계산과 같은 기술 분석 기능을 위한 pandas_ta를 비롯한 다양한 라이브러리를 가져옵니다. EUR/USD 쌍의 데이터는 특정 시간 프레임을 사용하여 다운로드됩니다.

그리드 거리, 이익 실현/손절매 비율, 그리드의 중간 가격이 변수로 정의됩니다. 중간 가격은 그리드가 구축되는 평균 가격 역할을 합니다. generate_grid() 함수는 중간 가격과 그리드 거리를 기반으로 그리드 레벨을 생성하도록 정의됩니다. 이 함수는 루프를 사용하여 그리드의 상위 및 하위 수준을 계산합니다.

다음으로 전략 논리가 구현됩니다. 백 테스트는 초기 잔액, 포지션 크기 및 손절매 수준과 같은 변수를 초기화하는 것으로 시작됩니다. for 루프는 기록 데이터의 각 막대를 반복하는 데 사용됩니다.

루프 내에서 현재 가격을 확인하여 그리드 수준을 교차하는지 확인합니다. 교차가 발생하면 긴 방향과 짧은 방향 모두에서 새로운 위치가 열립니다. 이익 실현 및 손절매 수준은 그리드 수준과 손절매 거리에 따라 설정됩니다.

루프는 또한 열린 포지션이 이익실현 또는 손절매 수준에 도달했는지 확인합니다. 포지션이 어느 수준에 도달하면 닫히고 해당 손익이 기록됩니다.

백 테스트가 끝나면 시간 경과에 따른 계정 잔액의 증가를 보여주는 자산 곡선이 그려집니다. 총 이익, 거래 수, 승률 및 샤프 비율을 포함한 성능 지표가 계산되어 표시됩니다.

그리드 트레이딩 전략이 백 테스트에서 유망한 결과를 보일 수 있지만 실제 트레이딩에 적용하기 전에 모든 트레이딩 전략을 철저하게 평가하고 검증하는 것이 중요합니다. 백테스팅은 과거 실적을 평가하는 데 도움이 되지만 미래의 수익성을 보장하지는 않습니다.

구현 세부 사항을 완전히 이해하고 코드를 탐색하려면 설명에 제공된 Jupyter Notebook 파일을 다운로드하는 것이 좋습니다. 노트북에는 프로세스를 안내하는 자세한 주석이 있는 전체 코드가 포함되어 있습니다.

거래에는 위험이 따르므로 투자 결정을 내리기 전에 항상 전문 재무 고문과 상담하는 것이 좋습니다.

Hedging Strategy For Trading In Python
Hedging Strategy For Trading In Python
  • 2023.01.12
  • www.youtube.com
Welcome ! In this video we test the grid trading strategy, a simple approach that doesn't require any technical indicators. We use python to test and trade, ...
 

Python에서 거래 봇을 구축하는 방법



Python에서 거래 봇을 구축하는 방법

안녕하세요, 이 비디오에서는 Python을 사용하여 거래 전략을 자동화하는 방법을 보여드리겠습니다. 즉, 특정 전략에 따라 자동으로 거래를 실행할 수 있는 나만의 무료 거래 봇을 구축하는 과정을 안내해 드리겠습니다. 제가 사용할 코드는 아래 설명의 링크에서 다운로드 가능하니 영상을 따라 하신 후 파일을 다운받아서 원하시는 대로 사용하시면 됩니다.

이 비디오에서 시연하려는 것은 Python 함수로 구현할 수 있는 모든 거래 전략에 적용할 수 있습니다. 단순히 과거 데이터로 백테스팅하는 대신 실제 시장 데이터로 전략을 테스트하는 훌륭한 방법이 될 수 있습니다. 미래 또는 라이브 데이터에 대한 전략을 테스트하려는 경우 이 비디오에 제시된 기술을 활용할 수 있습니다.

Jupyter Notebook 파일을 열어 시작하겠습니다. 먼저 테스트 목적으로 과거 데이터를 다운로드하겠습니다. 실시간 거래에 이 데이터를 사용하지 않는다는 점에 유의하는 것이 중요합니다. 주로 신호 기능을 테스트하기 위한 것입니다. 데이터를 다운로드하기 위해 저는 YFinance 모듈을 사용하고 있으며 15분의 시간 프레임으로 두 특정 날짜 사이의 유로에서 미국 달러로의 교환 데이터를 가져옵니다.

한 가지 명심해야 할 점은 15분 간격과 같은 짧은 시간 동안 데이터를 다운로드할 때 Yahoo Finance에서는 지난 60일 간의 데이터만 다운로드할 수 있다는 것입니다. 따라서 한 번에 60일 이상을 다운로드할 수 없으며 현재 날짜로부터 마지막 60일이어야 합니다. 다운로드한 파일에 문제가 있는 경우 지정된 시작 날짜와 종료 날짜를 다시 확인하십시오.

데이터를 다운로드하면 다운로드된 행을 확인하여 테스트할 수 있습니다. 코드에서 '-1'을 제거하면 약 3973개의 행으로 구성된 전체 데이터 프레임을 볼 수 있습니다. 데이터 프레임에는 날짜, 시간, 시가, 고가, 저가, 종가 및 조정된 종가에 대한 열이 포함됩니다. 이 비디오에서는 볼륨 데이터를 사용하지 않지만 필요한 경우 전략에 자유롭게 통합할 수 있습니다.

다음 단계는 거래 신호 생성을 담당하는 기능인 신호 생성기를 정의하는 것입니다. 이 함수는 트레이딩 봇에 대한 라이브 데이터를 스트리밍할 때 데이터 프레임을 획득하여 이 함수에 공급하기 때문에 데이터 프레임을 입력으로 사용합니다. 그런 다음 함수는 매수 신호, 매도 신호 또는 명확한 패턴 없음과 같은 신호가 있는지 확인합니다. 이 예에서는 휘몰아치는 캔들스틱 패턴을 감지하는 데 초점을 맞출 것이지만 이것이 완전한 거래 전략은 아니라는 점에 유의하십시오. 이 비디오의 목적에 부합하며 이 함수 내에 고유한 신호 생성기 전략을 삽입할 수 있습니다.

신호 생성기 기능은 인덱스 -1과 -2를 각각 사용하여 현재 캔들과 이전 캔들의 시가와 종가를 읽습니다. Bearish Engulfing 패턴 또는 Bullish Engulfing 패턴을 감지하는 것과 같이 함수에 정의된 조건에 따라 매도의 경우 1, 매수의 경우 2, 신호가 없는 경우 0의 신호 값을 반환합니다. 함수가 올바르게 작동하는지 확인하기 위해 몇 줄의 코드를 사용하여 테스트할 수 있습니다. 데이터 프레임 행을 반복하고 신호 생성기 기능을 사용하여 각 행에 포함된 패턴을 확인함으로써 생성된 신호를 목록에 저장할 수 있습니다. 그런 다음 이 목록을 테스트 데이터 프레임에 추가 열로 추가할 수 있습니다. 데이터 프레임을 인쇄하면 추가된 열이 표시되고 값 카운트를 수행하여 데이터 세트에 있는 각 신호 유형의 수를 볼 수 있습니다.

이것은 이 비디오의 목적을 위한 단순화된 예이며 귀하의 특정 요구에 따라 포괄적인 거래 전략을 개발하는 것이 필수적이라는 점에 유의하십시오.

이제 신호 생성기 기능이 준비되었으므로 다음 단계는 거래 봇을 정의하는 것입니다. 거래 봇은 생성된 신호를 기반으로 거래를 실행할 책임이 있습니다. 이 예에서는 신호 값 2(매수 신호 표시)를 수신하면 구매하고 신호 값 1(매도 신호 표시)을 수신하면 판매하는 간단한 거래 봇을 생성합니다. 다시 말하지만 이것은 기본적인 예일 뿐이며 특정 거래 전략에 따라 거래 봇을 수정할 수 있습니다.

트레이딩 봇 기능은 데이터 프레임과 생성된 신호를 입력으로 사용합니다. 포트폴리오 잔액을 초기화하고 현재 포지션이 열려 있는지 여부를 추적하기 위해 포지션 플래그를 보유합니다. 그런 다음 데이터 프레임의 각 행을 반복하고 신호 값을 확인하고 해당 구매 또는 판매 조치를 수행합니다.

구매 신호가 수신되고 오픈 포지션이 없으면 트레이딩 봇은 자산의 지정된 금액을 구매하고 포트폴리오 잔액에서 비용을 차감합니다. 또한 포지션 플래그를 설정하여 현재 열린 포지션이 있음을 나타냅니다. 매도 신호를 받고 오픈 포지션이 있으면 트레이딩 봇은 전체 포지션을 매도하고 매도 금액을 포트폴리오 잔액에 추가합니다. 그런 다음 포지션 플래그를 재설정하여 열린 포지션이 없음을 나타냅니다.

트레이딩 봇을 테스트하기 위해 테스트 데이터 프레임과 생성된 신호로 함수를 호출할 수 있습니다. 또한 초기 포트폴리오 잔액과 구매 또는 판매할 자산 금액을 지정할 수 있습니다. 트레이딩 봇 기능을 실행한 후 최종 포트폴리오 잔액을 출력하여 결과를 확인할 수 있습니다.

이 예에서는 실제 거래 시나리오에 영향을 미칠 수 있는 거래 비용, 미끄러짐 또는 기타 요인을 고려하지 않습니다. 자신의 거래 봇과 전략을 개발할 때 이러한 요소를 고려하는 것이 중요합니다.

마지막으로 라이브 거래를 위해 이 코드를 구현하는 방법에 대해 논의하겠습니다. 지금까지 개발한 코드는 과거 데이터에 대한 백테스팅 및 전략 테스트에 적합합니다. 실시간 거래를 위해 이를 구현하려면 브로커 또는 거래소에서 제공하는 실시간 데이터 피드 및 거래 API에 연결해야 합니다. 여기에는 거래 봇이 생성한 신호를 기반으로 데이터 스트리밍을 처리하고 실시간 거래 주문을 하는 것이 포함됩니다.

Alpaca, Binance 또는 Interactive Brokers API와 같은 실시간 데이터 피드 및 거래 API에 연결하는 데 도움이 되는 다양한 Python 라이브러리 및 패키지가 있습니다. 요구 사항에 가장 잘 맞고 선택한 교환 또는 브로커와 잘 통합되는 것을 조사하고 선택해야 합니다.

실시간 거래에는 실제 돈이 포함되므로 실시간 거래를 위해 배포하기 전에 시뮬레이션 환경에서 코드와 전략을 철저히 테스트하는 것이 중요합니다. 작은 포지션으로 시작하여 트레이딩 봇의 성능에 대한 자신감을 얻으면서 점차 노출을 늘리십시오.

이번 영상은 여기까지입니다! Python을 사용하여 거래 전략을 자동화하는 방법을 이해하는 데 도움이 되었기를 바랍니다. 설명의 링크에서 코드를 다운로드하고 특정 요구 사항과 전략에 따라 수정하십시오. 질문이 있으시면 아래 의견에 자유롭게 남겨주십시오. 시청해 주셔서 감사합니다. 즐거운 거래 되세요!

How To Build A Trading Bot In Python
How To Build A Trading Bot In Python
  • 2022.12.08
  • www.youtube.com
This video shows how to use APIs in python to build a live trading bot. The market is scanned by the bot and the prices are downloaded for analysis. A simple...
 

Python 백테스트: VWAP, 볼린저 밴드 및 RSI 지표를 사용한 수익성 있는 스캘핑 전략



Python 백테스트: VWAP, 볼린저 밴드 및 RSI 지표를 사용한 수익성 있는 스캘핑 전략

여러분, 안녕하세요! 오늘 저는 당첨자를 발표하게 되어 기쁩니다. 이번 영상에서는 확인을 위해 V-WAP(볼륨 가중 평균 가격) 볼린저 밴드와 RSI(상대 강도 지수)를 사용한 스캘핑 전략을 공유합니다. 이 전략을 공유하기 전에 효과를 보장하기 위해 철저하게 백테스트했습니다.

먼저 이 채널에서 선보이는 첫 번째 스캘핑 전략이라는 점을 말씀드리고 싶습니다. 더 낮은 시간 프레임의 노이즈 데이터로 인해 알고리즘에 스캘핑이 어려울 수 있습니다. 그러나 저는 이 전략이 이러한 어려움을 극복한다고 믿습니다.

이 채널을 처음 사용하는 경우 설명의 링크에서 Python 코드를 다운로드할 수 있습니다. 공유할 아이디어가 포함된 댓글을 구독하고 삭제하여 지원하는 것을 잊지 마십시오. 귀하의 피드백은 소중합니다.

3년간의 백테스팅 후, 이 전략의 총 수익은 약 300%입니다. 이 전략에서 특히 마음에 드는 점은 평균 거래 시간이 약 51분이라는 것입니다. 이것은 우리가 지금까지 보여준 가장 빠른 거래 마감 전략입니다. 빠른 거래 마감의 이점은 실행된 거래의 결과를 즉시 볼 수 있으므로 야간 수수료가 감소하고 스트레스가 줄어든다는 것입니다.

댓글 섹션에서 누군가 샤프 비율에 대해 질문했습니다. 이 전략에 포함시켰으며 대략 1.65입니다. 그러나 이 값은 Python 코드의 매개변수를 수정하면 변경될 수 있습니다. 다양한 매개변수 값을 실험하여 샤프 비율을 최대화할 수 있습니다.

전략의 세부 사항을 살펴보겠습니다. 저는 5분 주기와 V-WAP 곡선을 사용하고 있습니다. 추세를 확인하기 위해 파란색 선으로 표시되는 V-WAP 곡선 위 또는 아래에 지속적으로 있는 15개의 캔들을 찾습니다. 15개의 캔들이 V-WAP 곡선 위에 있으면 상승 추세를 나타냅니다. V-WAP 곡선 아래에 있으면 하락세라고 생각합니다.

진입 포지션의 경우 길이가 14이고 표준편차가 2인 볼린저 밴드를 사용합니다. V-WAP 곡선 위의 상승 추세에서 캔들이 낮은 볼린저 밴드 아래에서 마감될 때 매수 포지션을 찾습니다. V-WAP 곡선 아래의 하락추세에서는 매도 신호로 볼린저 밴드 상단에서 캔들이 마감될 때까지 기다립니다.

신호를 확인하기 위해 RSI를 사용합니다. RSI가 45 미만이면 구매 신호를 확인합니다. RSI가 55 이상이면 매도 신호를 확인한 것입니다.

테이크 프로핏과 스톱 로스 레벨을 설정하기 위해 저는 ATR(Average True Range)을 활용합니다. 마지막 7개의 캔들을 돌아보고 ATR 값을 계산한 다음 여기에 계수를 곱하여 손절매 거리를 결정합니다. 테이크 프로핏은 손절 거리에 위험 보상 비율을 나타내는 손절 손절 비율을 곱하여 계산합니다.

보시다시피 Python 코드에서 조정할 수 있는 여러 매개변수가 있습니다. ATR 길이, 계수, 이익 손절매 비율 및 기타 지표 매개변수를 수정하여 3년 백테스팅 기간 동안 전략 성과에 어떤 영향을 미치는지 확인할 수 있습니다. 자유롭게 코드를 다운로드하고 직접 실험해 보세요.

Python 코드에서 데이터 로드, 정리, 기술 지표(V-WAP, RSI, Bollinger Bands) 추가, 전체 신호 계산 및 가격 차트에서 신호 시각화에 필요한 모든 단계를 제공했습니다. 이 코드에는 ATR을 계산하고 손절매를 설정하고 이익실현 수준을 설정하고 거래를 실행하는 백테스팅 부분도 포함되어 있습니다.

백테스팅 결과, 나는 197%의 수익률과 313달러의 최대 자기자본을 달성했습니다. $10,000의 초기 자본금으로 시작하여 이 전략은 $19,700의 이익을 창출하여 $29,700의 최종 자산에 도달했습니다.

이제 이 전략의 핵심 성과 지표에 대해 논의해 보겠습니다. 수익성 있는 거래의 비율을 나타내는 승률은 약 56%입니다. 이는 실행된 모든 거래 중 56%가 수익을 냈다는 것을 의미합니다. 거래당 평균 이익은 약 $33.10인 반면 거래당 평균 손실은 약 $23.45입니다.

이 전략과 관련된 위험을 평가하기 위해 백테스팅 기간 동안 자산의 최고점에서 최저점까지 가장 큰 감소를 측정하는 최대 하락폭을 살펴볼 수 있습니다. 이 전략의 최대 손실률은 약 9%로 중간 수준의 위험을 나타냅니다.

이러한 성능 메트릭은 과거 데이터를 기반으로 하며 과거 성능이 미래 결과를 보장하지 않는다는 점에 유의해야 합니다. 시장 상황은 변할 수 있으며, 현재 시장 역학에 맞게 전략을 지속적으로 모니터링하고 조정하는 것이 중요합니다.

요약하면, V-WAP, Bollinger Bands 및 RSI를 활용한 이 스캘핑 전략은 백테스팅 기간 동안 300%의 총 수익과 51분의 평균 거래 시간으로 유망한 결과를 보여주었습니다. 그러나 실제 거래에 적용하기 전에 모든 전략을 철저히 테스트하고 검증하고 거래 비용, 슬리피지 및 시장 조건과 같은 요소를 고려하는 것이 필수적입니다.

거래에는 내재된 위험이 내재되어 있으므로 실시간 거래에 참여하기 전에 항상 자신을 교육하고 위험 관리를 연습하고 전문적인 조언을 구하는 것이 좋습니다. 이 전략이 통찰력이 있기를 바라며, 설명에 제공된 Python 코드를 자유롭게 다운로드하여 원하는 대로 추가로 탐색하고 사용자 정의할 수 있기를 바랍니다.

질문이 있거나 추가 설명이 필요한 경우 주저하지 말고 문의하십시오. 행복한 거래!

Python Backtest: Profitable Scalping Strategy with VWAP, Bollinger Bands and RSI Indicators
Python Backtest: Profitable Scalping Strategy with VWAP, Bollinger Bands and RSI Indicators
  • 2022.10.13
  • www.youtube.com
This video shows a profitable scalping strategy fully backtested in python, this strategy uses the VWAP, Bollinger Bands and the RSI indicators for confirmat...
 

거래 시스템을 위한 Python의 Heiken Ashi 양초


거래 시스템을 위한 Python의 Heiken Ashi 양초

오늘은 Python에서 Hiken Ashi 양초를 추가하는 과정을 자세히 살펴보고 이러한 양초를 사용하는 두 가지 관련 전략을 탐색합니다. Hiken Ashi 양초는 일반적으로 거래에 사용되는 일반 촛대에서 파생됩니다. 각 Hiken Ashi 양초는 특정 공식을 사용하여 계산됩니다. Heiken Ashi 종가는 현재 캔들의 시가, 고가, 저가 및 종가를 평균하여 구합니다. Heiken Ashi 시가는 이전에 계산된 Heiken Ashi 양초의 종가에서 얻습니다. 하이켄 아시 고가는 일반 캔들의 고가, 하이켄 아시 캔들의 시가 또는 하이켄 아시 캔들의 종가 중 최대값입니다. 마찬가지로 하이켄 아시의 저가는 현재 양초의 최저가, 현재 하이켄 아시 양초의 시가 또는 현재 하이켄 아시 양초의 종가 중 최소값입니다.

요약하면, 높은 값과 낮은 값을 제외하고 Heiken Ashi 캔들은 평균 값으로 구성되어 Hiken Ashi 차트가 일부 트레이더가 덜 시끄럽다고 느낄 수 있는 일반 캔들에 비해 부드러운 모양을 제공합니다. 그러나 Heiken Ashi 양초는 시장의 실제 가치가 아니며 실제 시장 가치를 기반으로 한 거래 또는 백테스팅 전략에 사용해서는 안 된다는 점에 유의해야 합니다.

이 튜토리얼의 목적은 성공적인 Heiken Ashi 시스템을 제시하는 것이 아니라 Python에서 이러한 양초를 구축하고 결과를 백테스트하기 위한 알고리즘 전략을 개발하는 방법을 시연하는 것입니다. Heiken Ashi 양초를 사용하여 두 가지 전략을 살펴보겠습니다.

첫 번째 전략은 빠른 이동 평균과 느린 이동 평균이라는 두 가지 이동 평균을 사용합니다. 추세는 이러한 이동 평균의 상대적인 위치에 따라 결정됩니다. 빠른 이동 평균이 느린 이동 평균 위에 있으면 상승 추세를 나타내고 빠른 이동 평균이 느린 이동 평균 아래에 있으면 하락 추세를 나타냅니다. 이 전략은 Heiken Ashi 캔들이 추세 방향으로 빠른 이동 평균을 교차할 때 거래 신호를 생성합니다. 예를 들어 빠른 이동 평균이 느린 이동 평균 아래에 있고 Heiken Ashi 캔들이 빠른 이동 평균 위에서 아래로 교차하면 매도 신호가 발생합니다. 반대로, 상승 추세에서 빠른 이동 평균선 아래에서 위로 교차하는 녹색 Heiken Ashi 캔들은 매수 신호를 유발합니다.

이 전략의 두 번째 변형은 추가 조건을 추가합니다. 추세 방향에서 짧은 꼬리 양봉이 뒤따르는 도지 양초를 찾습니다. 예를 들어, 하락추세에서 도지 양초 다음에 빠른 이동 평균 위에서 시작하여 그 아래에서 종가가 짧은 꼬리 양초가 나타나면 매도 신호가 발생합니다. 이 양초에 긴 심지나 꼬리가 없다는 것은 분석 중인 추세에 따라 강한 하향 또는 상향 모멘텀을 나타냅니다.

두 전략 모두 최적의 기간 결정, 적절한 손절매 위치 정의, 효과적인 출구 전략 설계와 같은 고유한 문제가 있습니다. 이러한 측면은 전략의 수익성과 성공에 상당한 영향을 미칠 수 있습니다.

Python에서 이러한 전략을 구현하기 위해 Jupyter Notebook을 사용합니다. 필요한 라이브러리를 가져오고 2012년부터 2022년까지 Russell 1000 지수의 주식 데이터를 다운로드하는 것으로 시작합니다. 불필요한 열을 제거한 후 Hiken Ashi 종가 및 시가, Heiken Ashi 고가 및 저가를 계산합니다. 앞에서 설명한 공식. 이러한 열을 데이터 프레임에 추가합니다.

다음으로, pandas 기술 분석 패키지를 사용하여 이동 평균 및 상대 강도 지수(RSI)와 같은 추가 기술 지표를 추가할 수 있습니다. 이를 통해 차트에서 Heiken Ashi 캔들 및 관련 지표를 시각화할 수 있습니다. 이제 거래 신호와 손절매 수준을 정의했으므로 백테스팅 프로세스를 진행할 수 있습니다. 다음 단계는 진입점과 퇴장점을 기준으로 각 거래의 수익을 계산하는 것입니다.

수익을 계산하려면 먼저 각 거래의 진입 및 청산 가격을 결정해야 합니다. 구매 포지션의 경우 진입가는 구매 신호가 발생했을 때 캔들의 종가입니다. 종료 가격은 손절매 수준에 따라 현재 캔들과 이전 두 캔들 사이의 최저 가격입니다.

마찬가지로 매도 포지션의 경우 진입가는 매도 신호가 발생했을 때의 종가이고 종료가는 현재 캔들과 이전 두 캔들 사이의 최고 가격입니다.

진입 및 청산 가격이 있으면 다음 공식을 사용하여 수익을 계산할 수 있습니다.

수익 = (출시 가격 - 진입 가격) / 진입 가격

추가 분석을 위해 "trade_returns"라는 목록에 반품을 저장합니다. 다음으로 시간 경과에 따른 전략의 전반적인 성과를 추적하기 위해 누적 수익을 계산해야 합니다. 이는 각 거래의 수익에 이전 누적 수익을 곱하고 1을 더함으로써 이루어집니다. 누적 수익을 계산하는 공식은 다음과 같습니다.

누적 수익률 = 누적 수익률 * (1 + 수익률)

누적 수익을 "cumulative_returns"라는 목록에 저장할 것입니다. 마지막으로 백테스팅 기간 동안 전략의 성과를 시각화하기 위해 누적 수익을 도표화할 수 있습니다.

백 테스팅 프로세스를 수행하고 거래 수익 및 누적 수익을 계산한 후 결과를 분석하여 거래 전략의 성과를 평가할 수 있습니다. 고려해야 할 중요한 지표 중 하나는 전략의 전반적인 수익성입니다. 최종 누적수익률에서 1을 빼서 총수익률을 계산할 수 있습니다. 예를 들어 누적 수익률이 1.2라면 초기 투자 대비 20%의 수익률을 의미한다.

또한 거래당 평균 수익, 거래 성공 횟수, 거래 실패 횟수, 거래 성공률, 최대 하락률과 같은 다른 성과 지표를 계산할 수도 있습니다. 거래당 평균 수익은 모든 거래 수익의 합계를 총 거래 수로 나누어 얻을 수 있습니다. 이 지표는 각 거래의 평균 수익성을 나타냅니다.

이기고지는 거래의 수를 계산하려면 0보다 크거나 같은 거래 수익의 수(거래 성공)와 0보다 작은 거래 수익의 수(지는 거래)를 계산할 수 있습니다. 이기는 거래의 비율은 이기는 거래 수를 총 거래 수로 나누고 100을 곱하여 계산할 수 있습니다.

최대 낙폭은 백테스팅 기간 동안 누적 수익률의 최고점에서 최저점까지 가장 큰 감소를 측정합니다. 전략의 잠재적 위험과 하향 변동성에 대한 통찰력을 제공합니다. 이러한 성능 메트릭을 분석하여 거래 전략의 효과에 대한 귀중한 통찰력을 얻고 향후 사용 또는 잠재적 수정에 대해 정보에 입각한 결정을 내릴 수 있습니다.

백테스팅은 과거 시뮬레이션이며 미래의 결과를 보장하지 않는다는 점을 기억하십시오. 실제 시나리오에서 거래 전략을 적용하기 전에 다양한 요소를 고려하고 철저한 분석을 수행하는 것이 필수적입니다.

Heiken Ashi Candles In Python For Trading Systems
Heiken Ashi Candles In Python For Trading Systems
  • 2022.09.24
  • www.youtube.com
Heiken Ashi candlesticks are popular candlestick in technical analysis. In this video, I will show you how to use Heiken Ashi candles for trading systems in ...
 

Python의 자동 거래로 주식 거래 전략을 혁신하십시오.



Python의 자동 거래로 주식 거래 전략을 혁신하십시오.

오늘은 상대 강도 지수(RSI)와 평균 방향성 지수(ADX)를 사용하여 롱 포지션을 위해 특별히 고안된 거래 전략을 살펴보겠습니다. 단순함에도 불구하고 이 전략은 유망한 결과를 보여주었습니다. 이 아이디어는 댓글 섹션의 누군가가 제안했으며 매개 변수는 친숙하고 설득력이 있어 보였습니다. 그래서 테스트를 해보고 결과를 공유하기로 했고 꽤 만족스러운 결과를 얻었습니다.

백 테스트에 의해 생성된 에쿼티 커브는 테스트 기간 내내 거의 일관된 증가를 나타내어 최고 수익률 360에 도달했습니다. 이 채널을 처음 사용하는 경우 설명에서 다운로드할 수 있는 코드를 찾을 수 있습니다. 구독과 댓글을 남겨 우리를 지원하는 것을 잊지 마십시오. 이 비디오의 주제와 같은 새로운 아이디어를 들어주셔서 감사합니다.

이제 전략 자체에 대해 살펴보겠습니다. 우리는 두 가지 조건이 충족될 때 일일 기간을 사용하고 롱 포지션에 진입할 것입니다. 첫 번째는 2일 RSI가 25 미만일 때 과매도 조건을 나타내고 두 번째는 ADX(14)가 20 이상일 때 제안합니다. 유행하는 시장. RSI가 75를 넘어서면 롱 포지션을 청산합니다.

잘못된 신호를 피하고 RSI가 75 임계값 아래에서 어려움을 겪을 때 너무 오랫동안 거래가 열린 상태로 유지되는 것을 방지하기 위해 두 가지 추가 조건을 추가했습니다. 첫 번째 조건은 양초가 상승 추세를 나타내는 단순 이동 평균 곡선 위에서 거래되고 있는지 확인하는 것입니다. 이 경우에만 롱 포지션을 취할 수 있습니다. 두 번째 조건은 손절매 값을 설정하는 것인데, 이는 마지막 두 개의 캔들 중 가장 낮은 가격에서 일정 비율을 뺀 가격으로 간주됩니다. 이 백테스트에서는 손절매 비율을 2%로 설정했습니다. 기본 설정에 따라 또는 다른 데이터로 테스트할 때 이 값을 조정할 수 있습니다.

이러한 조건을 Python에서 구현하기 위해 필요한 코드를 작성하고 백테스트를 진행했습니다. 코드에서 데이터를 로드하고 움직임이 없는 날짜를 제거하여 정리하고 데이터 프레임을 인쇄하여 내용을 확인합니다. 그런 다음 추세 감지를 위해 길이가 200인 지수 이동 평균(EMA)과 길이가 2인 RSI 및 길이가 14인 ADX를 계산합니다. 데이터 프레임을 다시 정리하고 슬라이스를 인쇄합니다. 사용할 열을 확인하십시오.

다음으로 이동 평균 곡선 위 또는 아래에서 거래되는 양초 수를 기반으로 추세를 결정하는 add_ema_signal이라는 함수를 구현했습니다. 이전 비디오에서 잘 작동했기 때문에 이 숫자를 6으로 설정했습니다. 그런 다음 long position에 진입하기 위한 신호를 계산하는 total_signal이라는 함수를 만들었습니다. 데이터 프레임의 각 행을 반복하고 RSI가 25 이하인지, ADX가 20 이상인지, EMA 신호가 2인지(상승 추세를 나타냄) 확인합니다. 이러한 조건이 충족되면 데이터 프레임에 신호 값 2를 저장합니다.

데이터 프레임을 인쇄하면 막대 차트에서 신호를 시각화할 수 있습니다. 보라색 점은 매수 신호를 나타냅니다. 코드의 모든 줄에 대해 자세히 다루지는 않겠지만 이 채널의 이전 동영상, 특히 Python for Algorithmic Trading 재생 목록에서 포괄적인 설명을 찾을 수 있습니다.

백 테스팅 부분으로 이동하여 backtesting.py 패키지를 사용했습니다. 세부 사항에 들어가지 않고 손절매 비율을 2%로 설정하고 특정 일수 동안 열려 있거나 RSI가 75를 초과하는 경우 거래를 청산하기 위한 추가 조건을 포함했습니다. 코드에 여전히 관련 라인이 포함되어 있다는 점은 주목할 가치가 있습니다. 이 전략은 롱 포지션에만 초점을 맞추고 있음에도 불구하고 숏 포지션으로 전환합니다. 숏 포지션을 포함하도록 전략을 확장하기로 결정한 경우 이 라인을 수정하거나 제거할 수 있습니다.

신호가 2이고 공개 거래가 없는 경우 손절매 값을 사용하여 롱 포지션으로 시장에 진입합니다. 거래 규모는 현재 자산의 99%로 설정됩니다. 백테스트는 $1,000의 현금과 1:5의 레버리지(마진 1/5)로 시작합니다. 이전 전략과의 비교를 위해 커미션을 고려하지 않았습니다.

백 테스트 결과는 $200의 수익과 $3,595의 최고 자산을 나타냅니다. 승률은 73%이며 10년의 테스트 기간 동안 총 102건의 거래가 실행되었습니다. 이것은 매일 평균적으로 연간 평균 10회의 거래로 해석됩니다. 주식 곡선을 그리면 특정 기간 동안 약간의 하락과 함께 가치가 지속적으로 증가하는 것을 볼 수 있습니다.

주석 섹션에서 제안된 매개변수를 수정하지 않았다는 점에 유의해야 합니다. RSI 길이는 2, ADX 길이는 14, EMA 길이는 200으로 유지됩니다. 그러나 이러한 값을 미세 조정하고 다른 주식이나 시장을 실험하여 잠재적으로 결과를 개선하고 더 만족스러운 구성을 찾을 수 있습니다.

이 전략은 롱 포지션에 대해 간단하면서도 효과적인 접근 방식을 제공합니다. 설명에 있는 링크에서 코드를 다운로드하여 실험해 보시기 바랍니다. 코드는 비교적 짧고 초보자에게 친숙합니다. 이 전략을 살펴보고 다음 비디오를 계속 지켜봐 주십시오. 안전하게 거래하시고 다음에 뵙겠습니다!

Revolutionize Your Stock Trading Strategy with Automated Trading in Python
Revolutionize Your Stock Trading Strategy with Automated Trading in Python
  • 2022.09.08
  • www.youtube.com
This video tests an automated trading strategy backtest for long positions on stocks, the rules are simple using RSI and the ADX indicators on stock market v...
 

고수익에 최적화된 자동 Rayner Teo 볼린저 밴드 전략



고수익에 최적화된 자동 Rayner Teo 볼린저 밴드 전략

여러분, 안녕하세요! 이 비디오에서 우리는 특정 매개 변수가 거래 시스템에 미치는 영향을 보여주는 극단적인 최적화 접근 방식을 제시하게 되어 기쁩니다. 우리는 이것이 지금까지 우리가 달성한 최고의 최적화라고 믿습니다. 보시다시피, 우리는 지속적으로 증가하는 자기자본 곡선과 함께 약 3,000%의 인상적인 수익을 달성했습니다. 거래내역도 그래프로 표시되며, 이 영상에서 설명드리겠습니다. 우리는 가격 차트에 모든 거래를 표시했으며 이에 대해서도 살펴볼 것입니다. 계속 지켜봐주세요!

진행하기 전에 이 전략으로 30,000%의 수익을 달성한 방식이 실제 거래에서 가장 안전한 접근 방식이 아니라는 점을 강조하고 싶습니다. 실제 거래 시나리오에서는 이러한 매개변수를 사용하지 않는 것이 좋습니다. 그러나 우리는 전략 자체가 탄탄하고 잠재력이 크다고 생각합니다. 당신이 여기 처음이라면 전략은 추세 시장에 대한 Rhino Theo Bollinger Band 전략에 의존합니다. 우리는 이전에 우수한 결과와 최소한의 위험으로 비디오에서 테스트했습니다. 아직 보지 못했다면 설명에서 첫 번째 백테스트 비디오 링크와 필요한 경우 Python 코드를 찾을 수 있습니다.

이 비디오에서는 상대적으로 큰 수익을 창출하기 위해 극한의 매개변수를 적용하려고 시도합니다. 우리는 주로 Python 코드를 테스트하고 가지고 노는 재미를 위해 이 작업을 수행합니다. 또한 프로세스 중에 귀중한 통찰력을 얻고 현실적인 높은 수익으로 이어질 수 있는 설정을 발견할 수 있기를 바랍니다.

이제 코드로 이동하여 모든 것이 어떻게 전개되는지 살펴보겠습니다. Jupyter 노트북 파일의 첫 번째 셀은 데이터 로드 전용입니다. 우리는 데이터베이스에서 일일 기록 데이터를 로드하는 편리한 방법인 "yfinance" 모듈을 사용하고 있습니다. 단 한 줄의 코드로 예를 들어 2011년에서 2021년 사이의 러셀 1000 지수와 같은 특정 주식에 대한 데이터를 로드할 수 있습니다. 주말 및 공휴일과 같이 가격 변동이 없는 날을 제거하여 데이터를 정리합니다. 그런 다음 인덱스를 재설정하고 데이터 형식이 올바른지 확인하기 위해 데이터 프레임의 헤드를 인쇄합니다.

다음으로 "pandas_ta"(pandas 기술 분석) 모듈을 활용하여 다양한 기술 지표를 계산합니다. 이 경우 200일 지수 이동 평균(EMA)과 150일 단순 이동 평균(SMA)의 두 가지 이동 평균을 계산합니다. 빠른 이동 평균(EMA2)과 느린 이동 평균(EMA)을 비교하여 시장이 상승 추세인지 하락 추세인지 확인할 수 있습니다. 또한 동일한 모듈을 사용하여 12일 상대 강도 지수(RSI)를 계산합니다. 또한 길이를 14(20 대신)로 설정하고 표준 편차를 2.0(2.5 대신)으로 설정하여 볼린저 밴드의 매개변수를 수정합니다. 이러한 수정은 시스템을 덜 선택적으로 만드는 것을 목표로 하여 백테스트 동안 거래 신호가 더 자주 발생하고 거래 수가 더 많아집니다.

이전 비디오에서 설명한 RDMI 신호 또는 지수 이동 평균 신호를 사용하는 대신 두 개의 EMA 신호를 사용합니다. 이것은 우리가 하나는 더 빠르고 하나는 더 느린 두 개의 이동 평균을 고려한다는 것을 의미합니다. 빠른 이동 평균이 느린 이동 평균보다 높으면 상승 추세를 식별합니다. 반대로 빠른 이동 평균이 느린 이동 평균 아래에 있으면 하락 추세를 인식합니다. EMA 신호라고 하는 이 신호를 데이터 프레임의 새 열로 추가합니다.

거래 신호를 생성하는 기능은 이전 동영상과 유사합니다. 종가가 볼린저 밴드 하한선 아래에 있는지, EMA 신호가 상승 추세(2와 같음)를 나타내는지 확인하여 구매 신호를 트리거합니다.

이 비디오에서 발표자는 다양한 매개 변수가 거래 시스템에 미치는 영향을 보여주는 극단적인 최적화 접근 방식을 시연합니다. 목표는 극단적인 매개변수를 적용하여 높은 수익을 달성하는 것이지만 이러한 매개변수는 관련 위험으로 인해 실제 거래에는 권장되지 않는다는 점에 유의해야 합니다. 그러나 발표자는 신중하게 사용하면 전략 자체가 큰 잠재력을 가지고 있다고 믿습니다.

사용되는 전략은 추세 시장에 대한 Rhino Theo Bollinger Band 전략을 기반으로 합니다. 발표자는 우수한 결과와 상대적으로 낮은 위험으로 이 전략을 테스트한 이전 비디오를 참조합니다. 최적화 프로세스의 첫 번째 단계는 Y Finance 모듈을 사용하여 필요한 데이터를 로드하는 것입니다. 발표자는 2011년부터 2021년까지 10년 동안의 Russell 1000 지수 데이터를 로드합니다.

데이터가 로드되면 발표자는 주말 및 공휴일과 같이 가격 변동이 없는 날을 제거하여 데이터를 정리합니다. 그런 다음 pandas_ta(pandas 기술 분석) 모듈을 사용하여 기술 지표를 계산하여 데이터를 준비합니다. 200일 지수 이동 평균(EMA)과 150일 단순 이동 평균(SMA)의 두 가지 이동 평균이 계산됩니다. 이러한 이동 평균은 추세를 결정하는 데 도움이 됩니다. 더 빠른 EMA가 더 느린 SMA보다 높으면 상승 추세를 나타내고 그 반대도 마찬가지입니다.

또한 발표자는 pandas_ta 모듈을 사용하여 12일 RSI(상대 강도 지수)를 계산합니다. 또한 볼린저 밴드의 길이 및 표준편차 매개변수가 수정됩니다. 발표자는 이전 비디오에서와 같이 길이 20과 표준편차 2.5를 사용하는 대신 길이 14와 표준편차 2.0을 사용합니다. 이 수정은 시스템을 덜 선택적으로 만들어 더 빈번한 거래 신호를 만드는 것을 목표로 합니다.

발표자는 이전 비디오에서와 같이 RSI 또는 EMA 신호를 사용하는 대신 EMA 신호라는 새로운 신호를 도입합니다. 두 이동 평균 간의 관계를 기반으로 합니다. 더 빠른 EMA가 더 느린 SMA보다 높으면 EMA 신호가 2로 설정되어 상승 추세를 나타냅니다. 더 빠른 EMA가 더 느린 SMA보다 낮으면 EMA 신호가 1로 설정되어 하락 추세를 나타냅니다.

진입 전략은 이전 비디오와 유사합니다. 발표자는 종가가 볼린저 밴드 하한선 아래에 있는지, EMA 신호가 상승 추세를 나타내는지(EMA 신호 = 2) 확인합니다. 이 경우 현재 캔들의 종가에서 매수 신호가 발생합니다. 종가가 상위 볼린저 밴드 위에 있고 EMA 신호가 하락세를 나타내면(EMA 신호 = 1) 현재 캔들의 종가에서 매도 신호가 생성됩니다.

거래를 종료하기 위해 발표자는 추가 기준을 도입합니다. 장기 거래가 바람직하지 않기 때문에 10일 이상 열린 경우 거래가 마감됩니다. 또한 롱 거래이고 RSI가 75를 초과하거나 숏 거래이고 RSI가 25 미만이면 거래가 종료됩니다. RSI 조건만으로는 청산을 트리거하기에 충분하지 않은 경우 손절매 메커니즘이 구현됩니다.

손절매는 양초의 현재 저점과 이전 양초의 저점 사이의 최소값에 (1 - 특정 비율)을 곱한 값으로 계산됩니다. 백분율은 사용자가 결정하며 손절매를 트리거하기 전에 허용 가능한 손실을 나타냅니다. 예를 들어, 백분율 2는 손절매가 마지막 두 캔들 사이의 최저점 아래 2% 아래에 설정되었음을 의미합니다. 또한 이익실현 수준은 손절매 거리의 두 배로 설정됩니다.

발표자는 최적화된 매개변수를 사용하여 백테스트를 실행하여 전략을 평가합니다. 가격 차트에 거래를 표시하고 각 거래에 대한 자세한 설명을 제공합니다. 백테스트 결과는 지속적으로 증가하는 자기자본 곡선과 함께 약 3,000%의 인상적인 수익률을 보여줍니다.

마지막으로 발표자는 이 극단적인 최적화 접근 방식이 백 테스트에서 높은 수익을 내지만 관련 위험으로 인해 실제 거래에는 권장되지 않는다고 강조합니다. 이 연습의 목적은 다양한 매개변수의 효과를 탐색하고 전략의 동작에 대한 통찰력을 얻는 것입니다.

Automated Rayner Teo Bollinger Bands Strategy Optimized For High Return
Automated Rayner Teo Bollinger Bands Strategy Optimized For High Return
  • 2022.07.22
  • www.youtube.com
This video is a continuation of the previous 2 videos describing the Rayner Teo Bollinger Bands Strategy. Here we present an optimized version leading to hig...
 

더 나은 결과를 위한 Rayner Teo의 Bollinger Bands 전략 최적화



더 나은 결과를 위한 Rayner Teo의 Bollinger Bands 전략 최적화

오늘은 이전에 비디오에서 백테스트된 Reiner Theo Bollinger Band 전략의 최적화에 대해 알아보겠습니다. 이전 영상을 아직 시청하지 않으셨다면 이 최적화 부분을 진행하시기 전에 시청을 권장합니다. 비디오는 쉽게 액세스할 수 있도록 설명에 링크를 제공합니다. 또한 코딩 측면에 관심이 있는 사용자를 위해 설명의 링크를 통해 Python 코드를 다운로드할 수도 있습니다.

최적화되고 있는 전략은 91%의 승률과 10년 백테스트 동안 지속적으로 증가하는 자산 곡선으로 유망한 잠재력을 보여주었습니다. 그러나이 최적화의 동기 중 하나는 백 테스트 중에 관찰되는 거래 수가 적다는 것입니다. 10년 동안 단 23건의 거래만 실행되었으며 평균적으로 연간 약 2건의 거래가 이루어졌습니다. 이를 해결하기 위해 두 가지 가능한 솔루션이 제시됩니다. 첫 번째는 연간 약 20건의 거래를 목표로 여러 주식에 대해 동시에 프로그램을 실행하는 것입니다. 그러나 이 접근 방식은 상관관계가 있는 시장 및 기타 관련 문제에 대한 우려를 제기합니다. 두 번째 솔루션은 거래 횟수를 늘리기 위해 시간 프레임을 낮추는 것입니다.

이 전략은 진입 및 퇴장 신호를 생성하기 위한 몇 가지 기술 지표를 통합합니다. 진입 신호에는 이동 평균 지표(코드에서 EMA, 지수 이동 평균이라고 함)와 Bollinger Bands를 사용하고 종료 신호에는 상대 강도 지수(RSI)를 사용합니다. 비디오는 여기에서 반복되지 않는 실행 프로세스에 대한 추가 세부 정보를 제공합니다.

프로그램 자체로 이동하면 데이터가 분석을 위한 4시간 프레임에 초점을 맞춰 첫 번째 셀에 로드됩니다. 두 개의 서로 다른 스톡이 최적화에 사용됩니다. 고가와 저가가 동일한 곳에서 움직임이 없는 캔들을 제거하여 데이터를 정리합니다. 이동 평균(지수 또는 단순) 및 RSI와 같은 기술 지표가 추가되고 길이를 수정할 수 있습니다. 이 특별한 경우 이동 평균 길이는 900개 캔들로 설정되고 RSI 길이는 12로 설정됩니다. 일별 차트의 경우 종료 신호로 200일 EMA와 2일 RSI가 사용됩니다. Bollinger Bands 매개 변수는 길이가 20이고 표준 편차가 2.5인 일일 차트와 동일하게 유지됩니다.

이 프로그램에는 양초가 이동 평균 위 또는 아래에서 거래되고 있는지 확인하는 기능도 포함되어 있습니다. 이 경우 숫자는 6으로 설정되어 이동 평균 곡선 위 또는 아래에 있는 6개의 연속 캔들을 나타냅니다. 우리는 4시간 단위로 작업하고 있으므로 6 곱하기 4는 24시간입니다. 따라서 가격이 24시간 연속 이동 평균 위 또는 아래에서 거래되면 상승 추세 또는 하락 추세로 결론을 내릴 수 있습니다. 시장에서 주문의 백분율 위치에 대한 매개 변수는 실행된 거래 수를 늘리기 위해 0%로 설정됩니다.

프로그램의 시각화 부분에는 Bollinger Bands, 이동 평균 곡선 및 상승 추세로 결정되는 추세 방향이 표시됩니다. 진입 신호는 차트에서 구매 신호를 나타내는 보라색 점으로 표시됩니다. 비디오는 이러한 진입점 중 일부를 보여주면서 유행하는 시장에서의 효율성을 강조합니다. 차트 내에서 임의의 다른 위치를 선택하면 다양한 진입점을 검사하여 실행 가능성을 분석할 수 있습니다.

발표자는 입장 신호와 관련된 볼린저 밴드 파라미터가 잘 작동하고 있어 현 시점에서 수정할 필요가 없다고 지적한다. 최적화의 초점은 알고리즘의 다른 부분에 있습니다. 비디오에서 백테스팅 프로세스의 모든 세부 사항을 다루지는 않지만 특정 매개변수는 주목할 가치가 있습니다.

이 최적화 프로세스에서 종료에 대한 RSI 임계값은 45로 설정됩니다. 이 낮은 임계값 값은 더 빠른 종료를 허용하여 더 짧고 빈번한 거래를 포착하는 것을 목표로 합니다. 발표자는 RSI 임계값의 선택이 주관적이며 개인 선호도 및 위험 허용 범위에 따라 조정될 수 있다고 언급합니다.

전략의 성과를 평가하기 위해 프로그램은 총 거래 수, 승률, 평균 거래 기간 및 자기자본 곡선을 포함한 다양한 지표를 계산합니다. 이러한 메트릭은 전략의 효율성과 수익성에 대한 통찰력을 제공합니다.

최적화 프로세스에는 높은 승률을 유지하면서 거래 수를 최대화하는 최적의 조합을 찾기 위해 전략의 매개 변수를 조정하는 작업이 포함됩니다. 최적화되는 매개변수에는 이동 평균 길이, RSI 길이 및 RSI 종료 임계값이 포함됩니다.

동영상은 중첩 루프를 사용하여 다양한 매개변수 조합을 반복하고 각 조합에 대한 전략의 성능을 평가하는 방법을 보여줍니다. 이 프로그램은 최고 성능의 매개변수 조합을 추적하고 해당 메트릭과 자산 곡선을 표시합니다.

발표자는 최적화 프로세스를 실행하여 이동 평균 길이 700, RSI 길이 4, RSI 종료 임계값 45를 사용하여 최상의 결과를 얻을 수 있음을 확인합니다. 이러한 매개변수 값은 여전히 높은 승률을 유지하면서 거래 수를 증가시킵니다. 이 비디오는 최적화된 전략에 의해 생성된 자산 곡선을 보여주며, 원래 버전에 비해 더 빈번한 거래와 함께 더 부드러운 상승 궤적을 보여줍니다.

발표자는 거래 전략의 성과를 개선하는 데 있어 최적화의 중요성을 강조하면서 결론을 내립니다. 체계적인 테스트와 매개변수 조정을 통해 전략의 수익성과 효율성을 높일 수 있습니다. 그러나 주의를 기울이고 과거 데이터에 대한 과적합과 같은 최적화와 관련된 제한 및 위험을 고려하는 것이 중요합니다.

여기에 제공된 세부 정보는 비디오의 요약이며 보다 포괄적인 이해를 위해 시각적 데모와 최적화 프로세스에 대한 추가 설명이 포함된 원본 비디오를 시청하는 것이 좋습니다.

Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
Optimizing Rayner Teo's Bollinger Bands Strategy for Better Results
  • 2022.07.08
  • www.youtube.com
This is a continuation of the previous video on the Bollinger Bands Winning Trading Strategy published by Rayner Teo. The backtest optimization is done in Py...
사유: