작성자:
maj1es2tic (팀 웰치)
이 지표는 현재 볼린저 밴드의 폭을 측정하여, N 기간(WidthCalcPeriod) 동안의 최대 및 최소 폭과 비교합니다.
계산된 비율이 MinRangePercent 이하일 경우, 히스토그램은 녹색으로 표시됩니다. 계산된 비율이 MinRangePercent의 2배가 되면, 히스토그램은 노란색으로 표시됩니다. 이외의 경우, 히스토그램은 빨간색으로 표시됩니다.
이 지표는 통화 쌍이 범위에 있는지, 아니면 범위를 돌파할 준비가 되었는지를 빠르게 파악하는 데 유용합니다. ShowWidthLine을 true로 설정하면, 볼린저 밴드의 실제 폭을 PIPS로 보여주는 선도 표시됩니다. 이 지표는 4자리 및 5자리 브로커에서 모두 작동하며, 모든 통화 쌍에서 사용할 수 있습니다.
EA나 다른 커스텀 지표의 값을 가져오기 위해 iCustom 사용하기:
다음 코드를 사용하여 외부에서 값을 가져올 수 있습니다:
int period=0; // 얼마나 과거를 보고 싶으신가요? 0 == 현재 바, 1 == 이전 바 등. // 주어진 시점에 이 세 가지 중 하나만 0보다 큰 값을 가집니다. 그 값은 300입니다. double WelchBBWidth_Green = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 0, period); double WelchBBWidth_Yellow = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 1, period); double WelchBBWidth_Red = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 2, period); // 볼린저 밴드의 실제 폭을 PIPS로 가져옵니다. double WelchBBWidth = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 3, period); // 다음은 실제 볼린저 밴드 라인 값을 제공합니다. 이 값은 메인 차트에 플로팅되며, 차트의 가격을 기준으로 합니다. double WelchBBWidth_MiddleLine = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 4, period); double WelchBBWidth_UpperLine = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 5, period); double WelchBBWidth_LoweLine = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 6, period);
다음과 같은 코드를 EA에 넣을 수 있습니다:
/* * int areWeRanging(int period=0) * * GREEN(범위)일 경우 1 반환 * YELLOW(범위 시작/종료)일 경우 -1 반환 * 그 외의 경우(영역 없음) 0 반환 */ int areWeRanging(int period=0) { double WelchBBWidth_Green = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 0, period); double WelchBBWidth_Yellow = iCustom(NULL, 0, "WelchBBWidth", 20, 0, 2.0, 20, "x", 100, "x", false, 1, period); if ( WelchBBWidth_Green > 0 ) { return (1); } else if ( WelchBBWidth_Yellow > 0) { return (-1); } return (0); } // 범위 밖으로 나오는지 확인합니다. // 이는 마지막 캔들이 여전히 범위 내에 있었던 것을 나타내며, // 현재 캔들이 이제 범위를 벗어난 것입니다. if ( areWeRanging(1)==1 && (areWeRanging(0)==-1 || areWeRanging(0)==0) ) { Print("우리는 범위에 있었지만 이제 범위를 벗어났습니다! 다른 지표가 돌파를 확인할 경우 거래하세요!"); }
** 모든 코드는 사용자의 재량에 따라 사용하시고, 다른 지표의 확인이 있을 때만 실제 거래를 진행하세요. **
이미지:

*참고: 어두운 회색 세로선과 빨간 화살표는 지표와 볼린저 밴드의 상관관계를 보여주기 위해 추가된 것이며, 차트에는 표시되지 않습니다.
즐거운 트레이딩 되세요!
-팀