커뮤니티
부탁드립니다
2019-06-09 14:52:30
334
글번호 129282
안녕하세요
아래지표 수식을 블로그에서 보았습니다
그분께 감사드립니다
제가 초보라서 아래수식 지표에 입력이 안되서 입력 가능하게 부탁드려봅니다
감사합니다
Input:length(5),목선두께(2);
Var:TL1(0),TL2(0),TL3(0),
TL_NewBit(0); // 1:NewLine 2:SetEndLine
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = HiLoLineZigZag(length,0,고,저,TL_NewBit);
If Value1 == 1 Then { // 고점
If TL_NewBit == 1 Then { // 신규 고점
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 저[4,1] > 저[3,1] and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] and 고[4,1] > 고[3,1] and
abs(고[2,1] - 고[3,1])/고[3,1] <= 목선두께/100 Then { // 역머리어깨형
TL2 = TL_New(고[3,3],고[3,4],고[3,1],sDate,sTime,(고[2,1]-고[3,1])/(고[2,2]-고[3,2])*(Index-고[3,2])+고[3,1]);
TL_SetColor(TL2,RED);
TL_SetSize(TL2,3);
}
} Else { // 고점 진행 중, 즉 상승중
If 저[4,1] > 저[3,1] and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] and 고[4,1] > 고[3,1] and
abs(고[2,1] - 고[3,1])/고[3,1] <= 목선두께/100 Then {
TL_SetEnd(TL2,sDate,sTime,(고[2,1]-고[3,1])/(고[2,2]-고[3,2])*(Index-고[3,2])+고[3,1]);
}
}
If TL_NewBit == 2 Then {
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
} Else If Value1 == -1 Then { // 저점
If TL_NewBit == 1 Then { // 신규 저점
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 고[4,1] < 고[3,1] and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] and 저[4,1] < 저[3,1] and
abs(저[2,1] - 저[3,1])/저[3,1] <= 목선두께/100 Then { // 머리어깨형
TL3 = TL_New(저[3,3],저[3,4],저[3,1],sDate,sTime,(저[2,1]-저[3,1])/(저[2,2]-저[3,2])*(Index-저[3,2])+저[3,1]);
TL_SetColor(TL3,BLUE);
TL_SetSize(TL3,3);
}
} Else { // 저점 진행 중, 즉 하락중
If 고[4,1] < 고[3,1] and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] and 저[4,1] < 저[3,1] and
abs(저[2,1] - 저[3,1])/저[3,1] <= 목선두께/100 Then {
TL_SetEnd(TL3,sDate,sTime,(저[2,1]-저[3,1])/(저[2,2]-저[3,2])*(Index-저[3,2])+저[3,1]);
}
}
If TL_NewBit == 2 Then {
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
}
답변 1
예스스탁 예스스탁 답변
2019-06-10 13:55:00
안녕하세요
예스스탁입니다.
올려주신 수식에 문제가 없습니다.
그대로 지표식으로 작성해 사용하시면 되는 내용입니다.
어떤 이유로 입력이 안되시는지 알수가 없습니다.
해당 수식은 사용자함수가 필요합니다.
해당 사용자함수가 없으시면 해당 블러그에서 사용자함수 다운받으시거나
아래 내용으로 사용자함수를 만드신 후에 사용하시면 됩니다.
사용자함수명 : HiLoLineZigZag
반환값형 : 숫자형
Input:Length(NumericSimple),useCLprice(NumericSimple),
oHiZZ[MaxSize1,MaxSize2](NumericArrayRef), // 열번호 1:가격,2:Index,3:sDate,4:sTime
oLoZZ[MaxSize3,MaxSize4](NumericArrayRef),
oTL_NewBit(NumericRef); // 1:NewLine 2:SetEndLine
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분("");
#==========================================#
HH = IFF(useCLprice==1,C,H);
LL = IFF(useCLprice==1,C,L);
If Index == 0 Then {
oHiZZ[1,1] = HH;
oLoZZ[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then { // 기간고점과 기간저점 동시 발생
If 최종꼭지점 == "저점" Then {
If oLoZZ[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
} Else If 최종꼭지점 == "고점" Then {
If oHiZZ[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
} Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
oTL_NewBit = 0;
#==========================================#
If 처리구분 == "고점처리" Then {
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then {
For j = 10 DownTo 2 {
For jj = 1 To 4 {
oHiZZ[j,jj] = oHiZZ[j-1,jj];
}
}
oHiZZ[1,1] = HH;
oHiZZ[1,2] = Index;
oHiZZ[1,3] = sDate;
oHiZZ[1,4] = sTime;
oTL_NewBit = 1;
} Else If oHiZZ[1,1] < HH Then { // 1번 고점보다 높은 고가 출현
oHiZZ[1,1] = HH;
oHiZZ[1,2] = Index;
oHiZZ[1,3] = sDate;
oHiZZ[1,4] = sTime;
oTL_NewBit = 2;
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then {
최종저가 = LL;
If 최종꼭지점 == "고점" then {
For j = 10 DownTo 2 {
For jj = 1 To 4 {
oLoZZ[j,jj] = oLoZZ[j-1,jj];
}
}
oLoZZ[1,1] = LL;
oLoZZ[1,2] = Index;
oLoZZ[1,3] = sDate;
oLoZZ[1,4] = sTime;
oTL_NewBit = 1;
} Else If oLoZZ[1,1] > LL then {
oLoZZ[1,1] = LL;
oLoZZ[1,2] = Index;
oLoZZ[1,3] = sDate;
oLoZZ[1,4] = sTime;
oTL_NewBit = 2;
}
최종꼭지점 = "저점";
}
If 최종꼭지점 == "고점" Then HiLoLineZigZag = 1;
Else If 최종꼭지점 == "저점" Then HiLoLineZigZag = -1;
Else HiLoLineZigZag = 0;
즐거운 하루되세요
> 유로정복자 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> 안녕하세요
아래지표 수식을 블로그에서 보았습니다
그분께 감사드립니다
제가 초보라서 아래수식 지표에 입력이 안되서 입력 가능하게 부탁드려봅니다
감사합니다
Input:length(5),목선두께(2);
Var:TL1(0),TL2(0),TL3(0),
TL_NewBit(0); // 1:NewLine 2:SetEndLine
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
Value1 = HiLoLineZigZag(length,0,고,저,TL_NewBit);
If Value1 == 1 Then { // 고점
If TL_NewBit == 1 Then { // 신규 고점
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 저[4,1] > 저[3,1] and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] and 고[4,1] > 고[3,1] and
abs(고[2,1] - 고[3,1])/고[3,1] <= 목선두께/100 Then { // 역머리어깨형
TL2 = TL_New(고[3,3],고[3,4],고[3,1],sDate,sTime,(고[2,1]-고[3,1])/(고[2,2]-고[3,2])*(Index-고[3,2])+고[3,1]);
TL_SetColor(TL2,RED);
TL_SetSize(TL2,3);
}
} Else { // 고점 진행 중, 즉 상승중
If 저[4,1] > 저[3,1] and 저[3,1] > 저[2,1] and 저[2,1] < 저[1,1] and 고[4,1] > 고[3,1] and
abs(고[2,1] - 고[3,1])/고[3,1] <= 목선두께/100 Then {
TL_SetEnd(TL2,sDate,sTime,(고[2,1]-고[3,1])/(고[2,2]-고[3,2])*(Index-고[3,2])+고[3,1]);
}
}
If TL_NewBit == 2 Then {
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
}
} Else If Value1 == -1 Then { // 저점
If TL_NewBit == 1 Then { // 신규 저점
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 고[4,1] < 고[3,1] and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] and 저[4,1] < 저[3,1] and
abs(저[2,1] - 저[3,1])/저[3,1] <= 목선두께/100 Then { // 머리어깨형
TL3 = TL_New(저[3,3],저[3,4],저[3,1],sDate,sTime,(저[2,1]-저[3,1])/(저[2,2]-저[3,2])*(Index-저[3,2])+저[3,1]);
TL_SetColor(TL3,BLUE);
TL_SetSize(TL3,3);
}
} Else { // 저점 진행 중, 즉 하락중
If 고[4,1] < 고[3,1] and 고[3,1] < 고[2,1] and 고[2,1] > 고[1,1] and 저[4,1] < 저[3,1] and
abs(저[2,1] - 저[3,1])/저[3,1] <= 목선두께/100 Then {
TL_SetEnd(TL3,sDate,sTime,(저[2,1]-저[3,1])/(저[2,2]-저[3,2])*(Index-저[3,2])+저[3,1]);
}
}
If TL_NewBit == 2 Then {
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
}
}
다음글
이전글