커뮤니티
지표수식 검토 부탁드립니다.
아래 내용의 수식으로 지표 적용시 의도한 내용으로 지표가 표시되지 않습니다.
제 의도는,
조건이 완성되면 2일전의 L값에 라인을 표시하고 그 값을 유지하면서 5일동안 표시된 후 사라지도록 의도하고 작성하였으나
일자가 변동되면 해당일 L값으로 변동되어 표시되고 있고, 신호 수식도 최초 완성된 일자의 2일전 L값에만 표시되도록 하고 싶은데
잘 안되고 있습니다.
원인이 무엇이고 필요한 부분을 수정 부탁드립니다.
var: Ln1_Flag(0), Ln1_Count(0), Ln1_Cross(0);
var: Ln2_Flag(0), Ln2_Count(0), Ln2_Cross(0);
// Ln1 조건: 2봉전 고가 < 현재 저가, 최근 3봉 연속 양봉
Ln1_Flag = iff(H[2] < L and C[2] > O[2] and C[1] > O[1] and C > O, 1, 0);
// 새로운 Ln1 신호 발생
if Ln1_Flag = 1 then begin
Value1 = L;
Ln1_Count = -2; // -2부터 시작 (2일 전부터 표시)
end;
// 카운트 증가
if Ln1_Count >= -2 then begin
if Ln1_Count < 2 then begin
Ln1_Count = Ln1_Count + 1;
end
else begin
Ln1_Count = -999; // 5일 완료 후 비활성화
Value1 = 0;
end;
end;
// Ln1 라인 표시 (-2 ~ 2봉 동안, 총 5일) - 레드
if Ln1_Count >= -2 then begin
if Ln1_Count <= 2 then
Plot1(Value1, "Ln1 Line", Red);
end
else
Plot1(NoValue);
// Ln1 크로스업 신호 체크
Ln1_Cross = iff(CrossUp(C, Value1) and Value1 > 0, 1, 0);
if Ln1_Cross = 1 then
Plot3(Value1, "Ln1 Signal", Red);
else
Plot3(NoValue);
// Ln2 조건: 현재 고가 < 2봉전 저가, 최근 3봉 연속 음봉
Ln2_Flag = iff(H < L[2] and C[2] < O[2] and C[1] < O[1] and C < O, 1, 0);
// 새로운 Ln2 신호 발생
if Ln2_Flag = 1 then begin
Value2 = L[2];
Ln2_Count = -2; // -2부터 시작 (2일 전부터 표시)
end;
// 카운트 증가
if Ln2_Count >= -2 then begin
if Ln2_Count < 2 then begin
Ln2_Count = Ln2_Count + 1;
end
else begin
Ln2_Count = -999; // 5일 완료 후 비활성화
Value2 = 0;
end;
end;
// Ln2 라인 표시 (-2 ~ 2봉 동안, 총 5일) - 블루
if Ln2_Count >= -2 then begin
if Ln2_Count <= 2 then
Plot2(Value2, "Ln2 Line", Blue);
end
else
Plot2(NoValue);
// Ln2 크로스업 신호 체크
Ln2_Cross = iff(CrossUp(C, Value2) and Value2 > 0, 1, 0);
if Ln2_Cross = 1 then
Plot4(Value2, "Ln2 Signal", Blue);
else
Plot4(NoValue);
부탁드립니다.
- 1. sample.jpg (0.14 MB)
답변 3
예스스탁 예스스탁 답변
2026-01-21 18:00:24
charlesj
2026-01-21 20:20:47
charlesj
2026-01-21 20:32:44