안녕하세요.
추석 연휴전에 저의 궁금증 해소차원에서 추가적인 답변 부탁드립니다.
즐거운 명절 연휴되시길. 감사합니다.
답변 2
예스스탁
예스스탁 답변
2024-09-12 18:44:17
안녕하세요
예스스탁입니다.
1
기준값으로 지정하는 값이
데이터예약어(c,H,L,O과 같은 예약어)나 일반변수(var로 선언된 변수)이면
스윙하이,스윙로우의 기준값에 그대로 지정하시면 됩니다.
2
array변수를 함수의 기준값으로 지정한다면
랭귀지는 특정 몇몇함수가 아닌이상 배열변수의 이름만 지정 할 수가 없습니다.
항상 배열명과 함께 특정방번호를 지정해 주어야 합니다.
지정하지 않으면 프로그램이 다운되게 됩니다.
array : AA[20](0);
if swinghigh(1,AA[0],3,3,7) != -1 then
스윙하이나 스윙함수는 위와 같이 방번호를 지정해 주셔야 합니다.
위와 같이 지정하면 최근 7개 봉의 0번방의 값을 대상으로만
스윙하이 만족을 판단하게 됩니다.
4
만약 배열 값들을 대상으로 스윙하이와 스윙로우를 판단하고자 하시면
아래와 같이 풀어서 조건체크하셔야 합니다.
아래는 AA배열변수의 AA[0] ~ AA[6] 대상으로
스윙하이 스윙로우 충족여부를 체크하는 내용입니다.
input : left(3),right(3);
var : ii(0);
var : rightH(0),leftH(0),SWH(0);
var : rightL(0),leftL(0),SWL(0);
Array : AA[20](0);
#SwingHigh
if AA[left+right] > 0 then
{
rightH = 0;
leftH = 0;
For ii = 0 to left+right
{
if ii < right and (rightH == 0 or (rightH > 0 and AA[ii] > rightH)) Then
rightH = AA[ii];
if ii > right and (leftH == 0 or (leftH > 0 and AA[ii] > leftH)) Then
leftH = AA[ii];
}
#좌측봉들의 최고값은 기준값과 작고
#우측봉들의 최고값은 기준값보다 작아야함
if leftH < AA[right] and AA[right] > rightH Then
SWH = AA[right];
else
SWH = -1#조건 충족하지 않으면 -1
}
#Swinglow
if AA[left+right] > 0 then
{
rightL = 0;
leftL = 0;
For ii = 0 to left+right
{
if ii < right and (rightL == 0 or (rightL > 0 and AA[ii] < rightL)) Then
rightL = AA[ii];
if ii > right and (leftL == 0 or (leftL > 0 and AA[ii] < leftL)) Then
leftL = AA[ii];
}
#좌측봉들의 최저값은 기준값과 크고
#우측봉들의 최저값은 기준값보다 커야함
if leftL > AA[right] and AA[right] < rightL Then
SWL = AA[right];
else
SWL = -1#조건 충족하지 않으면 -1
}
5
위 내용으로 궁금하신 부분이 해결되실지 모르겠습니다.
내일부터 휴가이므로 추가 답변은 연휴이후 드릴 수 있을 것 같습니다.
문의사항 있으시면 연휴 이후에 02-3453-1060으로 전화주시기 바랍니다.
풍성한 한가위 되시길 바랍니다.
> 진독립국가 님이 쓴 글입니다.
> 제목 : [89021 번 답변부탁] 지표식에서 Swing 함수의 두번째 인자의 전달방법은?
> 안녕하세요.
추석 연휴전에 저의 궁금증 해소차원에서 추가적인 답변 부탁드립니다.
즐거운 명절 연휴되시길. 감사합니다.
진독립국가
2024-09-13 07:19:11
질문자 입장에서의 성실한 답변으로 궁금증 100% 해소되었습니다.
리프레쉬 되는 연휴되시길 바랍니다. 감사합니다.