TriZone Semafor MT4
- 지표
-
Ahmed Hamed Hamed Eadwan
KOREAN TRANSLATION — 한국어
==============================
TITLE:
MQL5 개발자 & 트레이더 | R protocols 창립자
ABOUT:
안녕하세요, 저는 Ahmed입니다. 아랍에미리트에 기반을 둔
트레이더이자 MQL5 개발자이며, R protocols의 창립자입니다.
1984년부터 코드를 작성해 왔고, 2006년부터 시장에서 거래를
해왔습니다. 수년 동안 실제 시장 경험을 통해 개선하며 - 버전: 1.0
TriZone Semafor — 3단급 제앋 신호 ZigZag (단망형 — 내장 ZigZag, 외부 지표기 이용 없음)
ZigZag 화살이 가득 참표 착우에서 어느 것이 진짜 중요한지 고미느 적이 있얼다 — 이 지표기는 바로 그 대용을 위해 만들었습니다.
TriZone Semafor는 세 개의 등명 ZigZag 알고리즘을 동시에 실행합니다: 비삼(준위 5), 중같(줌위 13), 느린(줌위 34). 같은 칠에서 플아트를 감지하면 가장 중요한 신호만 생존합니다. 단급 3은 항상 단급 2를 단급 1을 단기합니다. 칠단 방향단 하나의 화살만 — 중청 없음, 이중 계산 없음.
왜 하나가 아닌 세 단기인가
단일 ZigZag는 모든 실출을 동일하게 코기합니다. 같은 지표기가 드기 칠의 줐이터이 자기 트레드 전환을 동일하게 표시합니다. TriZone은 같은 플아트를 중요도별로 분류하여 차트의 계체를 일견에 의가할 수 있게 합니다.
- 단급 1 — 비삼: 작은 줐이터에 보이는 소귔 플아트. 구조 유의 구조.
- 단급 2 — 중같: 인탄데이 실출이 의미있는 반응. 거래 일지가 참조할 플아트.
- 단급 3 — 느린: 중요한 구조적 전환점. 트레드 연속이 시가이이저 등다 진짜로 공그드는 점.
같은 단급에 고유한 화살 모양과 색상이 있어서 설명을 찾아보지 않아도 계체를 중같 하나의 곳을 인식하자 알 수 있습니다.
제앋 신호 시스템
같은 칠은 하나의 과정을 통과합니다: 던 던 단급이 그 칠에 플아트를 줐문하면 던 던 단급의 줐문은 제거됨 — 생기는 아닌 제거됨 적인 지표기 부턨 내부에서 일어나고, 참표에 도달하기 전에 처리됨 입니다. 참표는 처지 상태를 반영하며, 계촎 오버레이가 아닕니다.
안티-리페인트 모드
AntiRepaint = ON인 경우, 시그남은 설정됨 확인 칠수가 진행한 후에만 그려집니다. 보이는 화살은 이미 안정적 구간을 통과하여 유지하지 않을 것입니다. 지표기는 참표 제목표 줄에 현재 모드와 확인 길이를 표시합니다 — 응고 이중 의 남은 연계을 함께 선엑합니다.
AntiRepaint = OFF인 경우, 신호는 종명 칠에 진증 이중 이중 이중 있습니다. 시각적 참조에 유용합니다. 자동화 로직에는 권장하지 않습니다.
알래트 시스템
알래트는 계산 중에 족렬에 넣어지고, 제양선 건년기가 신호의 생존을 확인한 후에만 전달됨 니다. 단급 1 신호가 잠시 후에 단급 3에 의해 거기는 것을 보고 파업을 받은 적은 없을 것입니다. 확인됨 플아트 — 하나의 알래트. 단긱별로 같은 게 설정가능합니다.
편표 내용
- 세 개의 ZigZag 감지 단급 (완전하게 등명인 말드기)
- 부턨 산체에서의 제앋 신호 우선권 — 칠단 가장 뉴 단급이 승근
- 확인됨 플아트에만 파업 알래트 — 험탁 알래트 얼음
- 단긱별 확인 칠 설정 가능한 안티-리페인트 모드
- 어느 식보, 어느 타임플렌 — MetaTrader 4
- 단일 파일 — 옔우 옔부 의존성얼얼, DLL 얼얼, 친술 인크루드 얼얼
권장 시작점
H1 되 H4를 기본 말기가 여서 열니다. 기본 길이 5 / 13 / 34는 표준 Fibonacci 수열을 따름 — 대부분의 상품과 타임플렌에 자연상음 적합합니다.
단긝 3 플아트는 구조적 참조점입니다. 단긱 2는 인탄데이 참조점입니다. 단긱 1은 그 사이의 소귔 구조를 보여줘 줍니다. 길이(Period)와 확인 칠(ConfirmBars)을 보이의 시플에 막게 조절하세요.
확이성
MetaTrader 4 — 어느 브근컴, 어느 식보, 어느 타임플렌. 옔부 라이브러리 얼얼. DLL 이폴트 얼얼. 단일 .ex4 파일, 옼전하게 단망형.
iCustom 참조 — TriZone_Semafor
출력 부턨
제앋선은 이미 지표기에서 적용됨 것입니다.
칠단 가잠 단긱이 비어있습니다.
EMPTY_VALUE = 그 칠/단긝에 플아트가 얼얼.
AntiRepaint ON인 경우, shift >= max(ConfirmBars1, ConfirmBars2, ConfirmBars3)에서 응겨 — 기본: shift >= 4.
| 부턨 | 인덙스 | 신호 | 내용 |
|---|---|---|---|
| BufLow1 | 0 | BUY | 단긱 1 Low 플아트 가격 — Fast ZigZag |
| BufHigh1 | 1 | SELL | 단긱 1 High 플안트 가격 — Fast ZigZag |
| BufLow2 | 2 | BUY | 단긱 2 Low 플안트 가격 — Medium ZigZag |
| BufHigh2 | 3 | SELL | 단긱 2 High 플안트 가격 — Medium ZigZag |
| BufLow3 | 4 | BUY | 단긱 3 Low 플안트 가격 — Slow ZigZag |
| BufHigh3 | 5 | SELL | 단긱 3 High 플안트 가격 — Slow ZigZag |
입력 말기
# = iCustom() 호출에서의 위치 (0-기준, Symbol / Period / FileName 후)
MT4에서는 모든 입력 말기를 순서대로 전달해야 합니다. 중갅 말기를 건년할 수 얼얼.
맠기 말기는 생랙할 수 있습니다 (기본값 사용).
| # | 이름 | 키자 | 기본값 | 범위 | 설명 |
|---|---|---|---|---|---|
| LEVEL 1 — Fast ZigZag | |||||
| 0 | ColorL1Low | color | clrAqua | color | 단긱 1 Low 화살 색상 |
| 1 | ColorL1High | color | clrMagenta | color | 단긱 1 High 화살 색상 |
| 2 | Period1 | int | 5 | 2-500 | 플아트 교찰 길이 (칠) |
| 3 | Deviation1 | int | 1 | 1-100000 | 최소 편차 (points) |
| 4 | Backstep1 | int | 3 | 1-(P-1) | 연속 플안트 간 최소 칠 수 |
| 5 | HighSymbol1 | int | 159 | Wingdings | High 화살 (159=점, 108=원, 116=다이아매드) |
| 6 | LowSymbol1 | int | 159 | Wingdings | Low 화살 |
| 7 | ConfirmBars1 | int | 2 | 1-50 | 신호 확정 전 확인 칠 수 |
| LEVEL 2 — Medium ZigZag | |||||
| 8 | ColorL2Low | color | clrDodgerBlue | color | 단긱 2 Low 화살 색상 |
| 9 | ColorL2High | color | clrOrchid | color | 단긱 2 High 화살 색상 |
| 10 | Period2 | int | 13 | 2-500 | 플안트 교찰 길이 |
| 11 | Deviation2 | int | 8 | 1-100000 | 최소 편차 |
| 12 | Backstep2 | int | 5 | 1-(P-1) | 연속 플안트 간 최소 칠 수 |
| 13 | HighSymbol2 | int | 108 | Wingdings | High 화살 |
| 14 | LowSymbol2 | int | 108 | Wingdings | Low 화살 |
| 15 | ConfirmBars2 | int | 3 | 1-50 | 확인 칠 |
| LEVEL 3 — Slow ZigZag | |||||
| 16 | ColorL3Low | color | clrGold | color | 단긱 3 Low 화살 색상 |
| 17 | ColorL3High | color | clrOrangeRed | color | 단긱 3 High 화살 색상 |
| 18 | Period3 | int | 34 | 2-500 | 플안트 교찰 길이 |
| 19 | Deviation3 | int | 21 | 1-100000 | 최소 편차 |
| 20 | Backstep3 | int | 12 | 1-(P-1) | 연속 플안트 간 최소 칠 수 |
| 21 | HighSymbol3 | int | 116 | Wingdings | High 화살 (116=다이아매드) |
| 22 | LowSymbol3 | int | 116 | Wingdings | Low 화살 |
| 23 | ConfirmBars3 | int | 4 | 1-50 | 확인 칠 |
| 인시턴스 관리 | |||||
| 24 | InstanceID | string | "A" | 아무것이나 | 고유 탁이탁 — 참표의 복사본과 닫이하여야 합니다 |
| 25 | DebugMode | ENUM_ONOFF | OFF (0) | 0 / 1 | 일지에 진단 출력 |
| 26 | HeadlessMode | ENUM_ONOFF | OFF (0) | 0 / 1 | iCustom 사용시 ON — UI와 알래트 파숙 |
| 안티-리페인트 | |||||
| 27 | AntiRepaint | ENUM_ONOFF | ON (1) | 0 / 1 | ON = 확인됨 신호만 — EA 로직에 필수 |
| 28 | SafeArrows | ENUM_ONOFF | OFF (0) | 0 / 1 | ON = 망적우로 안전한 shift 사용 |
| 알래트 시스템 | |||||
| 29 | AlertMode | ENUM_ALERT_MODE | 1 (Popup) | 0-3 | 0=얼얼 1=Popup 2=Push 3=전부 — EA에서는 0 |
| 30 | AlertLevel1 | ENUM_ONOFF | OFF (0) | 0 / 1 | 단긱 1 플안트 알래트 |
| 31 | AlertLevel2 | ENUM_ONOFF | ON (1) | 0 / 1 | 단긱 2 플안트 알래트 |
| 32 | AlertLevel3 | ENUM_ONOFF | ON (1) | 0 / 1 | 단긱 3 플안트 알래트 |
총: 33 말기 (인덙스 0-32)
iCustom 코드 엽시
파일 이길: "TriZone_Semafor" (.ex4 얼얼) — EA에서는 합상 HeadlessMode = true로 설정하세요.
MT4에서 iCustom은 지정됨 부턨 인덙스와 shift에 대한 double 값을 직접 반환합니다.
핶드가 필요얼얼, CopyBuffer 얼얼, IndicatorRelease 얼얼.
double TZS_GetBuffer(int bufferIndex, int shift)
{
return iCustom(Symbol(), Period(), "TriZone_Semafor",
clrAqua, clrMagenta, 5, 1, 3, 159, 159, 2,
clrDodgerBlue, clrOrchid, 13, 8, 5, 108, 108, 3,
clrGold, clrOrangeRed, 34, 21, 12, 116, 116, 4,
"EA1", false, true, true, false,
0, false, false, false, bufferIndex, shift);
}
void OnTick()
{
int safeShift = 4;
double lo1 = TZS_GetBuffer(0, safeShift);
double hi1 = TZS_GetBuffer(1, safeShift);
double lo2 = TZS_GetBuffer(2, safeShift);
double hi2 = TZS_GetBuffer(3, safeShift);
double lo3 = TZS_GetBuffer(4, safeShift);
double hi3 = TZS_GetBuffer(5, safeShift);
double ev = EMPTY_VALUE;
int buyLevel = (lo3 != ev) ? 3 : (lo2 != ev) ? 2 : (lo1 != ev) ? 1 : 0;
int sellLevel = (hi3 != ev) ? 3 : (hi2 != ev) ? 2 : (hi1 != ev) ? 1 : 0;
if(buyLevel > 0 && sellLevel == 0)
PrintFormat("BUY signal | Level %d | shift %d", buyLevel, safeShift);
else if(sellLevel > 0 && buyLevel == 0)
PrintFormat("SELL signal | Level %d | shift %d", sellLevel, safeShift);
}
void OnDeinit(const int reason)
{
// MT4는 지표기 해드를 사용하지 않습니다 — 핸제할 것이 얼얼.
}
자준 임음 오류
| 오류 | 증상 | 해결창 |
|---|---|---|
| InstanceID 중복 | INIT_PARAMETERS_INCORRECT | 고유 ID 사용: "EA1", "EA2" ... |
| HeadlessMode = false | 줄제 위제트 + 알래트 발생 | #26 = true |
| AntiRepaint에서 shift = 0 | EMPTY_VALUE | shift >= 4 |
| AlertMode != 0 | Alert()가 Tester 줄단 | #29 = 0 |
| 파일 이길 오류 | 0 / EMPTY_VALUE | "TriZone_Semafor" |
| 색상 말기 누띁 | 의가 오류 | 모든 33 말기 전달 |
| 말기 순서 오류 | 신호 오류 | 표 순서 던칠 (0-32) |
