English Русский 中文 Español Deutsch 日本語 Português Français Italiano Türkçe
Kagi 차트 지표

Kagi 차트 지표

MetaTrader 5 | 3 9월 2021, 11:23
330 0
Dmitriy Zabudskiy
Dmitriy Zabudskiy

소개

"점 및 그림 차트 지표" 글에서는 점 및 그림 차트를 작성하는 프로그래밍 방법 중 하나를 설명했습니다. 이 차트는 19세기부터 알려져 있습니다. 그러나 이것은 먼 과거의 유일한 차트가 아닙니다. 초기 금융 시장 표현 유형의 또 다른 주목할만한 대표는 Kagi 차트입니다. 이 차트는 이 글에서 논의될 것입니다.

19세기 일본에 익숙하지 않은 금융 기관인 증권 거래소는 1878년 5월에 설립되었습니다. 오늘날 도쿄 증권 거래소로 알려져 있습니다. 이 이벤트는 Kagi 차트를 만들고 후속 개발하는 데 중요한 역할을 했습니다. 유럽과 미국은 1994년 Steve Nison의 "Beyond Candlesticks: New Japanese Charting Techniques Revealed"가 출판된 후 Kagi 차트를 알게 되었습니다.

Kagi는 차트 개발 당시 사용되었던 L자형 키를 의미하는 일본어 단어입니다. 또한 "주요 차트"라는 이름의 수정된 버전이 있습니다. Steve Nison의 "Beyond Candlesticks"에서 차트의 대체 이름인 가격 범위 차트, 후크 차트, 델타 또는 체인 차트도 찾을 수 있습니다.

이 차트의 특별한 점은 무엇인가요? 주요 특징은 (일본 촛대, 바 및 선과 달리) 가격 1만 남기고 시간 척도를 무시한다는 것입니다. 따라서 차트는 중요하지 않은 가격 변동을 숨기고 가장 중요한 변동만 남깁니다.

차트는 시장 상황에 따라 서로 교체되는 두꺼운 양 및 가는 음 라인 세트를 나타냅니다. 시장이 같은 방향으로 움직일 경우 라인이 확장되어 새로운 가격대에 도달합니다. 그러나 시장이 다시 돌아가서 미리 정의된 금액에 도달하면 새 열에 Kagi 라인이 반대 방향으로 그려집니다. 사전 정의된 금액은 포인트(일반적으로 통화 쌍에 사용) 또는 현재 가격의 백분율 값(일반적으로 주식에 사용)으로 설정됩니다. 선 두께는 가장 가까운 높음 또는 낮음 돌파에 따라 다릅니다.


1. 차트 예시

10월 8일부터 11일까지 EURUSD, H1의 히스토리 데이터를 사용합시다.

역 임계값이 15포인트인 표준 이미징의 예가 그림 1에 표시되어 있습니다.

Kagi 차트, EURUSD H1

그림 1. Kagi 차트, EURUSD H1

보시다시피 가격은 17:00부터 떨어지기 시작했습니다. 하락세는 21시까지 계속됐다. 22:00에 가격은 1.3566에서 위로 이동하고 1.3574에서 마감됩니다. 즉, 가격이 11포인트를 넘습니다. 이것은 반전에 충분하지 않지만 새로운 Low에도 도달하지 않았습니다. 다음 2시간 동안 가격이 안정되고 마침내 01:00(10월 9일)에 강력한 상승 움직임을 볼 수 있습니다. 이 움직임은 25포인트(1.3591-1.3566)로 구성된 1.3591에서 마감됩니다. 이는 가격이 역전되었음을 의미합니다.

상승세는 다음 시간에도 계속됩니다. 가격은 두꺼운 양 라인을 강화하는 1.3599에 도달합니다. 03:00에 가격은 이전 고점(1.3599-1.3578)에서 21포인트 상승한 1.3578로 급락했습니다. 이것은 반전에 충분합니다. 라인은 아래로 이동하지만 형태를 유지합니다(두꺼운 양 라인).

16:00까지 가격이 하락하고 마침내 가장 가까운 최소값을 돌파하고 두꺼운 양에서 얇은 음 라인으로 변경됩니다. 이전에 언급한 1.3566의 낮은 값이 여기서 획기적인 가격으로 작용했습니다. 가격은 계속해서 음 라인으로 움직이며 10월 10일 14시에 양으로 변경되어 10월 9일 23시(10월 9일)에 형성된 가장 가까운 고점인 1.3524를 돌파합니다. 이 작은 예는 Kagi 차트가 어떻게 형성되는지 보여줍니다.


2. Kagi 지표 차트 원리

지표를 현재 시간대와 독립적으로 만들기 위해 지표가 형성되어야 했던 시간대의 데이터를 별도로 복사하여 얻은 데이터를 이용하여 지표를 생성하기로 하였다.

이를 통해 Kagi 차트에 대한 기술적 분석의 경계를 확장하는 단일 차트에서 여러 시간대를 동시에 검사할 수 있습니다. 지표 자체는 별도의 창에 있지만 기본 차트에 데이터를 표시하는 것도 가능합니다. 즉, 지표 창에서 기본 포메이션(표준 또는 수정 모양)이 수행됩니다. 지표가 기본 차트에 복사되고 가격 및 시간 표시(설정에 따라 다름)도 그려집니다.

앞서 언급했듯이 지표는 표준 버전과 수정 버전 모두에서 차트를 그립니다. 표준은 위에서 설명했습니다. 이제 수정된 버전을 살펴보겠습니다.

새로운 아이디어인지는 모르겠지만 그런 버전은 들어본 적이 없습니다. 추가 필터의 아이디어는 반전 포인트뿐만 아니라 차트의 각 이동이 이제 필터링된다는 것입니다. 즉, 새로운 High 또는 Low(어깨/허리와 혼동하지 말 것)가 형성되기 위해서는 가격이 일정 거리만큼 움직여야 합니다. 일반적으로 가격이 움직일 때마다 먼저 지정된 거리를 커버해야 합니다. 이후 추세 지속인지 반전인지 정의합니다.

그림 2는 원리가 어떻게 작동하는지 보여줍니다. 수정된 차트 모양은 파란색으로 표시되고 표준 차트 모양은 빨간색으로 표시됩니다. 보시다시피 수정된 모양은 대부분의 사소한 신호를 필터링하여 가격 변동에 더 느리게 반응합니다.

Kagi 차트 생성의 표준 및 수정 버전

그림 2. Kagi 차트 생성의 수정(파란색 선) 및 표준(빨간색 선) 버전

Kagi 차트 외에도 지표는 지표 창과 기본 차트에서 몇 가지 추가 요소를 제공합니다.

설정에 따라 표시창에서 마크를 설정할 수 있습니다. 이 표시는 취소 가격에 대한 데이터를 제공합니다. 동일한 기능이 가격 수준을 사용하여 구현되며(설정에 따라) 지표를 형성하는 데 사용되는 전체 가격 범위 또는 각 차트 반전에서 창을 따라 고르게 분포될 수 있습니다. 색상은 반전 유형(위-아래), 라인 유형(음-양) 또는 색상 변경 없음의 세 가지 버전으로 설정할 수 있습니다.

임시 가격 표시를 포함한 반전 가격 표시는 메인 차트에 제공됩니다. 이 표시(설정에 따라 다름)는 단일 색상이거나 음 또는 양 라인 색상에 따라 색상이 변경될 수 있습니다.

전체 지표 코드는 전역 변수를 통해 서로 통신하는 기능을 사용하여 구현됩니다.

코드는 3개의 주요 기능과 11개의 추가 기능으로 나눌 수 있습니다. 기본 그래픽 구성 및 추가 버퍼 배열의 계산 및 버퍼 채우기의 주요 부담은 지표 창의 Kagi 차트 형성 기능에 있습니다. 다른 두 기능은 데이터 제공을 담당합니다. 첫 번째 기능은 시간 데이터를 복사하고 다른 하나는 선택한 기간의 각 바 가격에 대한 데이터입니다.

나머지 보조 함수는 모든 구성 수행, 객체 삭제, 모든 표시기 객체 삭제에 동반되는 표시기 언로딩, 반전 매개변수 계산, 주 차트 및 표시기 창에 "추세선" 유형의 그래픽 객체 작성, 주 차트에 Kagi 그리기 작업을 담당합니다 (지표 형성을 시작하기 위한 새로운 바의 도착을 정의할할 뿐만 아니라).


3. 지표 코드 및 알고리즘

이제 지표 코드와 그 형성 알고리즘을 자세히 살펴보겠습니다. 코드가 상당히 커서 초보 프로그래머가 이해하기 어려울 수 있습니다. 전역 변수를 통해 서로 통신하는 함수는 코드를 상당히 혼란스럽게 만듭니다. 이 글에서는 각 기능과 코드의 일부를 별도로 설명합니다. 먼저 지표 설정에 대해 설명한 다음 데이터 복사 초기 기능, 반전 매개변수 계산, Kagi 차트 생성 및 계산의 주요 기능 및 기타 보조 기능에 대해 설명합니다.

3.1. 지표 입력 매개변수

코드는 12개의 버퍼와 8개의 지표 그래픽 구성뿐만 아니라 별도의 창에 지표를 선언하는 것으로 시작합니다. 먼저 2개의 "히스토그램"과 6개의 "라인"을 포함하여 8개의 그래픽 구성이 사용된 이유를 정의해 보겠습니다. 각 "히스토그램"은 자체 수직선을 만듭니다. 하나는 음 라인을 담당하고 다른 하나는 양 라인을 담당합니다.

각 라인에 세 개가 있기 때문에 "라인"의 경우는 다소 복잡합니다. 이것은 첫 번째 점 근처에 다른 점이 그려지면 라인이 그려지기 때문에 수행됩니다. 즉, 서로 인접한 두 개의 선을 그리기 위해 회전할 두 개의 "선" 유형의 그래픽 구성만 있으면 됩니다. 그러나 필요한 점을 건너뛰기 위해 이 라인이 필요한 경우 세 번째 구성이 다른 두 구성과 함께 회전해야 합니다.

이것은 그림 3에 설명되어 있습니다. 여기서 두 개의 "선" 유형 그래픽 구성만 사용되는 경우 어떤 일이 발생하는지 확인할 수 있습니다.


 그림 3. 2개 및 3개의 그래픽 "라인" 유형 구성을 사용하여 어깨 및 허리 라인을 표시하는 예

그러면 설정 메뉴가 생성됩니다. 여기에는 5개의 열거가 있습니다(입력 매개변수에서 살펴보겠습니다).

첫 번째 입력 매개변수 "period"는 구성이 수행되는 기간이며 그 뒤에 "period_to_redraw" - 차트 구성 업데이트 기간이 오고 마지막 매개변수는 "start_data" - 구성이 시작되는 시간입니다.

이러한 매개변수 다음에는 차트 구성 및 추가 레이블 지정 매개변수가 있습니다.

  • kagi_type – 사용자가 정의한 차트 구성 유형, 표준 또는 수정됨.
  • price_type – 건설에 사용된 가격 유형: 종가, 시가, 고가 및 저가.
  • type_doorstep – 사용된 반전 유형: 포인트 및 백분율;
  • doorstep – 반전 값(위의 매개변수에 따라 포인트 또는 백분율 값으로 지정);
  • color_yin – 지표 창의 음 라인 색상.
  • color_yang – 지표 창의 양 라인 색상.
  • width_yin – 지표 창의 음 라인 너비.
  • width_yang – 지표 창의 양 라인 너비.
  • levels_on_off – 지표 창에 가격 수준을 그려야 하는지 여부.
  • levels_type – 지표 창의 가격 수준 유형입니다. 선택할 수 있는 두 가지 값이 있습니다.
  • levels_number – 지표 창의 가격 수준 수;
  • levels_change_color – 가격 수준 라인의 색상을 변경할 수 있습니다. 옵션은 상하 반전, 음과 양 라인 또는 변경 없음입니다.
  • levels_first_color – 가격 수준의 첫 번째 색상;
  • levels_second_color – 가격 수준의 두 번째 색상;
  • label_1 - 지표 창에 차트 반전 가격 레이블 그리기;
  • label_1_number – 지표 창에 표시되는 레이블 수;
  • label_1_color – 지표 창의 가격 라벨 색상;
  • label_2 – 기본 차트에 가격 레이블 그리기;
  • label_2_color – 기본 차트의 레이블 색상입니다;
  • time_line_draw - 메인 차트에 반전 타임라인 그리기;
  • time_separate_windows - 메인 차트에서 반전 타임 라인의 연속 그리기;
  • time_line_change_color – Yin 또는 Yang 라인의 반전 레이블에 따라 타임 라인의 색상을 변경합니다.
  • time_first_color – 메인 차트에서 타임라인의 첫 번째 색상;
  • time_second_color – 메인 차트에서 타임 라인의 두 번째 색상;
  • kagi_main_chart - 메인 차트에 Kagi를 그려야 하는지 여부;
  • color_yin_main – 기본 차트의 음 라인 색상;
  • color_yang_main – 메인 차트의 양 라인 색상;
  • width_yin_main – 기본 차트의 음 라인 너비;
  • width_yang_main – 메인 차트의 양 라인 너비;
  • magic_numb – 단일 차트에서 여러 지표를 시작하기 위해 지표 이름뿐만 아니라 개체를 구축하고 삭제하는 데 사용되는 매직 넘버입니다.

표시기 버퍼 선언, 가격 및 시간 값을 저장하기 위한 보조 버퍼, 보조 변수(stop_data, bars_copy_time, copy_history, copy_time), 차트 이동의 변화가 발생한 인 또는 양 라인에 데이터를 저장하기 위한 배열, 시간 및 가격, 중앙 가격 (만약 바에서 인이 양에 의해 대체디거나 그 반대의 경우)은 이러한 매개 변수를 차례로 따르게 됩니다. 마지막으로 "а" 차트 이동 변경 횟수에 대한 데이터를 포함하는 가장 많이 사용되는 전역 변수 중 하나를 선언합니다.

//+------------------------------------------------------------------+
//|                                                         BKCV.mq5 |
//|                                   Azotskiy Aktiniy ICQ:695710750 |
//|                          https://www.mql5.com/ru/users/Aktiniy |
//+------------------------------------------------------------------+
//--- Build Kagi Chart Variable
#property copyright "Azotskiy Aktiniy ICQ:695710750"
#property link      "https://www.mql5.com/en/users/Aktiniy"
#property version   "1.00"
#property description "Build Kagi Chart Variable"
#property description " "
#property description "This indicator makes drawing a chart Kagi as a matter of indicator window, and in the main chart window"
#property indicator_separate_window
#property indicator_buffers 12
#property indicator_plots   8
//--- plot Yin
#property indicator_label1  "Yin"
#property indicator_type1   DRAW_HISTOGRAM2
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot Yin1
#property indicator_label2  "Yin1"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- plot Yin2
#property indicator_label3  "Yin2"
#property indicator_type3   DRAW_LINE
#property indicator_color3  clrRed
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1
//--- plot Yin3
#property indicator_label4  "Yin3"
#property indicator_type4   DRAW_LINE
#property indicator_color4  clrRed
#property indicator_style4  STYLE_SOLID
#property indicator_width4  1
//--- plot Yang
#property indicator_label5  "Yang"
#property indicator_type5   DRAW_HISTOGRAM2
#property indicator_color5  clrRed
#property indicator_style5  STYLE_SOLID
#property indicator_width5  2
//--- plot Yang1
#property indicator_label6  "Yang1"
#property indicator_type6   DRAW_LINE
#property indicator_color6  clrRed
#property indicator_style6  STYLE_SOLID
#property indicator_width6  2
//--- plot Yang2
#property indicator_label7  "Yang2"
#property indicator_type7   DRAW_LINE
#property indicator_color7  clrRed
#property indicator_style7  STYLE_SOLID
#property indicator_width7  2
//--- plot Yang3
#property indicator_label8  "Yang3"
#property indicator_type8   DRAW_LINE
#property indicator_color8  clrRed
#property indicator_style8  STYLE_SOLID
#property indicator_width8  2
//--- Enumerations as input data (for more attractive setting)
//--- Kagi charting type
enum kagi_type_enum
  {
   classic=0,  // Classic
   modified=1, // Modified
  };
//--- Type of the price used for construction
enum price_type_enum
  {
   c=0, // Close
   o=1, // Open
   h=2, // High
   l=3, // Low
  };
//--- Type of the used reversal
enum type_doorstep_enum
  {
   point=0,   // Point
   procent=1, // Percent
  };
//--- Type of levels location
enum levels_type_enum
  {
   cor=0, // Cornering
   equ=1, // Equal distance
  };
//--- Level colors change type (works when "Type of levels location"="Cornering")
enum levels_change_color_enum
  {
   up_down=0,  // Up & Down
   yin_yang=1, // Yin & Yang
   no=2,       // Don't change
  };
//--- input parameters
input ENUM_TIMEFRAMES period=PERIOD_CURRENT;                // Calculation period to build the chart
input ENUM_TIMEFRAMES period_to_redraw=PERIOD_M1;           // Refresh period chart
input datetime start_data=D'2013.07.10 00:00:00';           // Start time to build the chart
input kagi_type_enum kagi_type=classic;                     // The type to build Kagi chart
input price_type_enum price_type=c;                         // Price used to build chart
input type_doorstep_enum type_doorstep=point;               // Type calculate doorstep
input double   doorstep=25;                                 // Doorstep reversal
input color    color_yin=clrRed;                            // Color Yin line (indicator window)
input color    color_yang=clrRed;                           // Color Yang line (indicator window)
input char     width_yin=1;                                 // Width Yin line (indicator window)
input char     width_yang=2;                                // Width Yang line (indicator window)
input bool     levels_on_off=false;                         // Draw level (indicator window)
input levels_type_enum levels_type=cor;                     // Type of drawing levels (indicator window)
input uint     levels_number=6;                             // Number of levels  (indicator window)
input levels_change_color_enum levels_change_color=up_down; // Type change color of levels (indicator window)
input color    levels_first_color=clrBeige;                 // The first color of level (indicator window)
input color    levels_second_color=clrCoral;                // The second color of level (indicator window)
input bool     label_1=true;                                // Draw price label on (indicator window)
input uint     label_1_number=10;                           // The number of labels (indicator window)
input color    label_1_color=clrGreenYellow;                // The color of labels (indicator window)
input bool     label_2=true;                                // Draw price label on (main chart)
input color    label_2_color=clrGreenYellow;                // The color of labels (main chart)
input bool     time_line_draw=true;                         // Draw a timeline reversal (main chart)
input bool     time_separate_windows=false;                 // Draw a timeline reversal on indicator window
input bool     time_line_change_color=true;                 // Different color timeline on the Yin and Yang lines (main chart)
input color    time_first_color=clrRed;                     // The first color of timeline (main chart)
input color    time_second_color=clrGreenYellow;            // The second color of timeline (main chart)
input bool     kagi_main_chart=true;                        // Draw Kagi on main chart (main chart)
input color    color_yin_main=clrRed;                       // Color Yin line (main chart)
input color    color_yang_main=clrRed;                      // Color Yang line (main chart)
input char     width_yin_main=1;                            // Width Yin line (main chart)
input char     width_yang_main=2;                           // Width Yang line (main chart)
input long     magic_numb=65758473787389;                   // The magic number for drawing objects
//--- indicator buffers
double         YinBuffer1[];
double         YinBuffer2[];
double         Yin1Buffer[];
double         Yin2Buffer[];
double         Yin3Buffer[];
double         YangBuffer1[];
double         YangBuffer2[];
double         Yang1Buffer[];
double         Yang2Buffer[];
double         Yang3Buffer[];
//--- additional variables
double Price[]; // Buffer for storing the copied price data
double Time[];  // Buffer for storing the copied time data
//---
datetime stop_data;      // Current time
int bars_copied=0;       // Number of the already copied bars from the initial date
int bars_copied_time;    // Number of the already copied bars having the initial date
bool copy_history=false; // Price history copying result
bool copy_time=false;    // Time history copying result
//---
datetime time_change[];      // Array for writing the time when the chart movement started changing (up or down)
char time_line[];            // Array for storing the data on what line (Yin=0 or Yang=1) direction has changed
double time_change_price[];  // Array for writing the chart movement change price
double time_central_price[]; // Array for writing the average price during the chart movement change

uint a=0; // Variable for building the chart, number of chart reversals is fixed

MetaQuotes 소프트웨어 사를 통해 러시아어가 번역됨.
원본 기고글: https://www.mql5.com/ru/articles/772

파일 첨부됨 |
bkcv.mq5 (44.19 KB)
계량경제학 EURUSD 1단계 예측 계량경제학 EURUSD 1단계 예측
이 글은 EViews 소프트웨어를 사용한 EURUSD에 대한 한 단계 앞선 예측과 EViews의 프로그램을 사용한 예측 결과의 추가 평가에 중점을 둡니다. 예측에는 회귀 모델이 포함되며 MetaTrader 4용으로 개발된 Expert Advisor를 통해 평가됩니다.
다중 통화 다중 시스템 Expert Advisor 만들기 다중 통화 다중 시스템 Expert Advisor 만들기
이 글에서는 여러 기호를 거래하고 여러 거래 시스템을 동시에 사용하는 Expert Advisor의 구조를 소개합니다. 모든 EA에 대한 최적의 입력 매개변수를 이미 식별하고 각각에 대해 개별적으로 좋은 백테스팅 결과를 얻었다면 모든 전략을 함께 사용하여 모든 EA를 동시에 테스트하면 어떤 결과를 얻을 수 있는지 자문해 보십시오.
MQL5 코드용 자동 생성 설명서 MQL5 코드용 자동 생성 설명서
대부분의 Java 코더는 JavaDocs로 작성할 수 있는 자동 생성된 문서에 익숙합니다. 이 아이디어는 코드에 주석을 반구조적인 방식으로 추가한 후 쉽게 탐색할 수 있는 도움말 파일로 추출하는 것입니다. 또한 C++ 월드에는 Microsoft의 SandCastle과 Doxygen이 두 선두 업체인 수많은 문서 자동 생성기가 있습니다. 이 문서에서는 Doxygen을 사용하여 MQL5 코드의 구조화된 주석에서 HTML 도움말 파일을 만드는 방법에 대해 설명합니다. 실험은 매우 잘 진행되었고 Doxygen이 MQL5 코드로 제작한 도움말 문서는 많은 가치를 추가할 것이라고 생각합니다.
MQL5 Coobook: MQL5에서 다중 기호 변동성 지표 개발 MQL5 Coobook: MQL5에서 다중 기호 변동성 지표 개발
이 글에서는 다중 기호 변동성 지표의 개발을 고려해볼 것입니다. 다중 기호 지표의 개발은 이 글에서 명확히 하는 데 도움이 되는 초보 MQL5 개발자에게 몇 가지 어려움을 줄 수 있습니다. 다중 기호 지표 개발 과정에서 발생하는 주요 문제는 현재 기호에 대한 다른 기호 데이터의 동기화, 일부 지표 데이터의 부족 및 주어진 시간 프레임의 '참' 바에 대한 시작 식별과 관련이 있습니다. 이 모든 문제는 글에서 면밀히 고려해보겠습니다.