질문 1)
input : P(5);
var: cnt(0), a1(0) , a2(0);
a1 = 0;
For cnt = 0 to P-1
{
if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then
a1 = DayLow(cnt);
}
이 식은 분봉에서 daylow 를 구하는 식인데 반대로 dayhigh 를 구하려면 식을 어떻게 작성하면 될까요?
a2=0;
For cnt = 0 to P-1
{
if a2 == 0 or (a2 > 0 and dayhigh(cnt) < a2) Then
a2 = dayhigh(cnt);
}
이렇게 해봤는데 제대로 나오지가 않네요
수식에 대해서 이해도가 없어서 응용이 안되는데 간략하게 로직을 설명을 해주실 수 있을까요
a1=0;
For cnt = 0 to P-1
{if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then
a1 = DayLow(cnt);}
cnt =0 to p-1 이 부분은 봉을 세는 수식인가요?0 부터 5-1=4 까지 5봉이라는 의미인거 같고
if 문에서 부터 몇 번 읽어봐도 잘 해석이 안됩니다
질문2)
위의 식을 편집기에서 고치고 "검증"을 눌러 바로 반영되게 하려고 하는데요, input 에서 선언된 변수들은 수정해도 반영이 안되고 차트상에서 변수 편집을 해야되네요.
편집기에서 바로 반영 하려면 var1=5; 을 선언하고 하니까 되는데 이 방법말고 input 에는 p(5) 라고 해놓고 별도로 p=10; 이라고 값을 다시 정의하면 "값을 대입할 수 잇는 변수나 배열의 요소가 와야합니다" 라고 에러가 나옵니다. input 에서 선언된 변수는 이런식으로는 수정 후 반영이 안되나요?~
질문3)
분봉에서 혹시 틱 단위 (체결 횟수)를 설정하고 틱 갯수를 표현하는 식을 작성 할 수 있나요?
예를 들면 분봉차트 일정 구간에서 (3일동안) 100틱의 총갯수가 50개 이하로 나온 구간을 찾고 그 3일간의 최고가를 불러오는 식으로 만들고 싶은데 구현이 가능할까요??
답변 주시면 감사하겠습니다 ~
답변 1
예스스탁
예스스탁 답변
2024-07-25 15:17:16
안녕하세요
예스스탁입니다.
1
input : P(5);
var : a1(0),a2(0),cnt(0);
a1 = 0;
a2 = 0;
For cnt = 0 to P-1
{
if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then
a1 = DayLow(cnt);
if a2 == 0 or (a2 > 0 and dayhigh(cnt) > a2) Then
a2 = dayhigh(cnt);
}
Plot1(a1);
Plot2(a2);
2
랭귀지에서 input 변수는 편집기가 아닌
외부속성에서 값을 변경하기 위해 선언해 사용하는 변수입니다.
수식안에서 값을 변경이나 저장할 수 없는 변수타입입니다.
그러므로 이미 차트에 적용되어 있는 수식의 경우
랭귀지 편집기에서 input값을 변경하셔도 바로 반영이 안되며
차트에서 해당수식 삭제 후 재적용하셔야 합니다.
3
아래 내용 참고하시기 바랍니다.
n일동안 100틱 이하의 봉 중 최고가입니다.
input : nticks(100),nday(3);
var : cnt(0),hv(0);
Array : HH[20](0);
if Ticks <= nticks Then
var1 = h;
Else
var1 = 0;
if Bdate != Bdate[1] Then
{
hh[0] = 0;
}
if var1 > 0 and (HH[0] == 0 or (HH[0] > 0 and H > HH[0])) Then
HH[0] = H;
if hh[nday-1] > 0 Then
{
hv = 0;
For cnt = 0 to nday-1
{
if hv == 0 or (hv > 0 and hh[cnt] > hv) Then
hv = hh[cnt];
}
Plot1(hv);
}
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 질문 3가지 드립니다
> 질문 1)
input : P(5);
var: cnt(0), a1(0) , a2(0);
a1 = 0;
For cnt = 0 to P-1
{
if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then
a1 = DayLow(cnt);
}
이 식은 분봉에서 daylow 를 구하는 식인데 반대로 dayhigh 를 구하려면 식을 어떻게 작성하면 될까요?
a2=0;
For cnt = 0 to P-1
{
if a2 == 0 or (a2 > 0 and dayhigh(cnt) < a2) Then
a2 = dayhigh(cnt);
}
이렇게 해봤는데 제대로 나오지가 않네요
수식에 대해서 이해도가 없어서 응용이 안되는데 간략하게 로직을 설명을 해주실 수 있을까요
a1=0;
For cnt = 0 to P-1
{if a1 == 0 or (a1 > 0 and DayLow(cnt) < a1) Then
a1 = DayLow(cnt);}
cnt =0 to p-1 이 부분은 봉을 세는 수식인가요?0 부터 5-1=4 까지 5봉이라는 의미인거 같고
if 문에서 부터 몇 번 읽어봐도 잘 해석이 안됩니다
질문2)
위의 식을 편집기에서 고치고 "검증"을 눌러 바로 반영되게 하려고 하는데요, input 에서 선언된 변수들은 수정해도 반영이 안되고 차트상에서 변수 편집을 해야되네요.
편집기에서 바로 반영 하려면 var1=5; 을 선언하고 하니까 되는데 이 방법말고 input 에는 p(5) 라고 해놓고 별도로 p=10; 이라고 값을 다시 정의하면 "값을 대입할 수 잇는 변수나 배열의 요소가 와야합니다" 라고 에러가 나옵니다. input 에서 선언된 변수는 이런식으로는 수정 후 반영이 안되나요?~
질문3)
분봉에서 혹시 틱 단위 (체결 횟수)를 설정하고 틱 갯수를 표현하는 식을 작성 할 수 있나요?
예를 들면 분봉차트 일정 구간에서 (3일동안) 100틱의 총갯수가 50개 이하로 나온 구간을 찾고 그 3일간의 최고가를 불러오는 식으로 만들고 싶은데 구현이 가능할까요??
답변 주시면 감사하겠습니다 ~