1. 10거래일 동안 최근 3개래일은 제외하고,
2. 3개래일 부터 10거래일까지 양봉이면 종가, 음봉이면 시가를 확인하고,
3. 현재 양봉일때 2번의 가격을 돌파하는 검색식을 짜고 싶습니다.
아래와 같이 했는데, 잘 안되는것 같아서요..
--------------------------------------------------------------------------
Input :
기간(10)
, 최근제외기간(3)
;
var :
cnt(0)
, openVal(0)
, closeVal(0)
, openVal2(0)
, closeVal2(0)
, closeHighVal(0)
, closeHighVal2(0)
, bongIdx(1)
;
// 해당 기간 중 최고가 추출 (시가/종가)
openVal = NthHighest(bongIdx, O, 기간)[1];
closeVal = NthHighest(bongIdx, C, 기간)[1];
if ( openVal >= closeVal ) Then {
closeHighVal = openVal;
}
Else{
closeHighVal = closeVal;
}
// 해당 기간 제외
For cnt = 1 to 최근제외기간 {
openVal2 = Highest(O, 최근제외기간)[1];
closeVal2 = Highest(C, 최근제외기간)[1];
if ( openVal2 >= closeVal2 ) Then {
closeHighVal2 = openVal2;
}
Else{
closeHighVal2 = closeVal2;
}
if ( closeHighVal <= closeHighVal2 ) Then {
bongIdx = bongIdx + 1;
}
}
해당기간 중 몇번째 최고가
if ( bongIdx > 1 ) Then {
openVal = NthHighest(bongIdx, O, 기간)[1];
closeVal = NthHighest(bongIdx, C, 기간)[1];
if ( openVal >= closeVal ) Then {
closeHighVal = openVal;
}
Else{
closeHighVal = closeVal;
}
}
If (
C > O
and closeHighVal >= O
and closeHighVal < C
) Then {
Find(1);
}
답변 부탁드립니다.
수고하세요~
답변 1
예스스탁
예스스탁 답변
2024-01-10 17:47:44
안녕하세요
예스스탁입니다.
1
[3개래일 부터 10거래일까지 양봉이면 종가, 음봉이면 시가를 확인하고,]
3~10거래일까지 봉의 종가나 시가를 확인이 어떤 의미인지 알수 없습니다.
몸통상단 중 최고값을 저장하게 작성해 드립니다.
2
올리신 수식에 수정해드리기는 어려워 별도식으로 작성해드립니다.
참고하셔서 기존식에 추가하시기 바랍니다.
3
var : cnt(0),bodytop(0);
#3봉전~10봉전 봉의 몸통의 상단 중 가장 큰 값을 저장
bodytop = 0;
For cnt = 3 to 10
{
if bodytop == 0 or (bodytop > 0 and max(C[cnt],O[cnt]) > bodytop) Then
bodytop = max(C[cnt],O[cnt]);
}
#돌파한 종목 검
if CrossUp(C,bodytop) Then
Find(1);
즐거운 하루되세요
> 짜짜로니 님이 쓴 글입니다.
> 제목 : 수식 요청드립니다.
> 1. 10거래일 동안 최근 3개래일은 제외하고,
2. 3개래일 부터 10거래일까지 양봉이면 종가, 음봉이면 시가를 확인하고,
3. 현재 양봉일때 2번의 가격을 돌파하는 검색식을 짜고 싶습니다.
아래와 같이 했는데, 잘 안되는것 같아서요..
--------------------------------------------------------------------------
Input :
기간(10)
, 최근제외기간(3)
;
var :
cnt(0)
, openVal(0)
, closeVal(0)
, openVal2(0)
, closeVal2(0)
, closeHighVal(0)
, closeHighVal2(0)
, bongIdx(1)
;
// 해당 기간 중 최고가 추출 (시가/종가)
openVal = NthHighest(bongIdx, O, 기간)[1];
closeVal = NthHighest(bongIdx, C, 기간)[1];
if ( openVal >= closeVal ) Then {
closeHighVal = openVal;
}
Else{
closeHighVal = closeVal;
}
// 해당 기간 제외
For cnt = 1 to 최근제외기간 {
openVal2 = Highest(O, 최근제외기간)[1];
closeVal2 = Highest(C, 최근제외기간)[1];
if ( openVal2 >= closeVal2 ) Then {
closeHighVal2 = openVal2;
}
Else{
closeHighVal2 = closeVal2;
}
if ( closeHighVal <= closeHighVal2 ) Then {
bongIdx = bongIdx + 1;
}
}
해당기간 중 몇번째 최고가
if ( bongIdx > 1 ) Then {
openVal = NthHighest(bongIdx, O, 기간)[1];
closeVal = NthHighest(bongIdx, C, 기간)[1];
if ( openVal >= closeVal ) Then {
closeHighVal = openVal;
}
Else{
closeHighVal = closeVal;
}
}
If (
C > O
and closeHighVal >= O
and closeHighVal < C
) Then {
Find(1);
}
답변 부탁드립니다.
수고하세요~