커뮤니티
추세선의 중간값을 점으로 찍기
2011-07-28 17:31:48
926
글번호 41429
[그림1]처럼 어떤 조건을 실행해서 나온 봉과 봉을 [그림2]처럼 직선이 되는 점으로 찍어 줄려고 합니다
참고로 [그림1]의 조건은 아래 식을 실행해서 나온 결과임.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
========================================================================
함수명 : TrendLine(조건)
* 두 조건 사이에 직선이 되는 점을 찍어 주기 위한 사용자함수를 만들어 주세요.
아래는 제가 연습삼아 만들어 본 식인데 안맞습니다.
Inputs: Expression(TrueFalseSeries);
Variables: Counter(0), C1(0), C2(0);
While Counter <= index Begin
If Expression[Counter] Then{
var1 = index;
var2 = var1[1];
C1 = C;
C2 = C1[1];
}
value1 = index-var2;
Counter = Counter + 1;
End;
if var2 != 0 Then
TrendLine = (C1-C2)/value1*counter+C2;
Else
TrendLine = -1;
- 1. 41754_추세선연결.jpg (0.06 MB)
- 2. 41754_추세선연결2.jpg (0.06 MB)
답변 3
예스스탁 예스스탁 답변
2011-07-28 17:29:18
안녕하세요
예스스탁입니다.
해당부분은 수식으로 가능하지 않습니다.
가령 A와 B사이에 직선을 그리기 위해서는
A이후에 B가 발생해야만 알수가 있습니다.
근데 B가 발생한 이후에 그 과거봉에는 더이상
지표를 그리거나 할수 없어 A와 B사이 봉에 표시를 할 방법이 없습니다.
수식은 한번 지나온 봉에 다시 돌아가 어떤 행위를 하지 못합니다.
해당 내용은 아래식을 선그래프로 설정하고
그리는 외에는 달리 보실 방법이 없습니다.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
즐거운 하루되세요
> 행복충전 님이 쓴 글입니다.
> 제목 : 추세선의 중간값을 점으로 찍기
> [그림1]처럼 어떤 조건을 실행해서 나온 봉과 봉을 [그림2]처럼 직선이 되는 점으로 찍어 줄려고 합니다
참고로 [그림1]의 조건은 아래 식을 실행해서 나온 결과임.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
========================================================================
함수명 : TrendLine(조건)
* 두 조건 사이에 직선이 되는 점을 찍어 주기 위한 사용자함수를 만들어 주세요.
아래는 제가 연습삼아 만들어 본 식인데 안맞습니다.
Inputs: Expression(TrueFalseSeries);
Variables: Counter(0), C1(0), C2(0);
While Counter <= index Begin
If Expression[Counter] Then{
var1 = index;
var2 = var1[1];
C1 = C;
C2 = C1[1];
}
value1 = index-var2;
Counter = Counter + 1;
End;
if var2 != 0 Then
TrendLine = (C1-C2)/value1*counter+C2;
Else
TrendLine = -1;
행복충전
2011-07-28 17:47:34
"수식은 한번 지나온 봉에 다시 돌아가 어떤 행위를 하지 못합니다."
이 내용을 알기 때문에 사용자함수를 만들어 쓸려고 합니다
첫째(사용자함수 실행), A,B,C,D... 모든 점의 종가값과 Index값을 사용자함수로 미리 구해서 변수에 저장합니다
둘째(본 함수 실행), 변수를 불러와서 계산을 한 후에 추세선을 그려 줍니다.
이 링크와 같은 원리를 이용할려고 그럽니다.
https://www.yesstock.com/SystemTrading/Example/board/view.asp?db=board100044&num=107&pageno=1&startpage=1&Site=&L_Code=12&M_Code=7
사용자함수를 어떻게 만들어 주어야 할까요?
그리고 혹시 TrendLine = (C1-C2), value1;
사용자함수에서 (C1-C2)와 value1 두개 이상의 결과값을 리턴하는 방법은 없나요?
================================================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 추세선의 중간값을 점으로 찍기
> 안녕하세요
예스스탁입니다.
해당부분은 수식으로 가능하지 않습니다.
가령 A와 B사이에 직선을 그리기 위해서는
A이후에 B가 발생해야만 알수가 있습니다.
근데 B가 발생한 이후에 그 과거봉에는 더이상
지표를 그리거나 할수 없어 A와 B사이 봉에 표시를 할 방법이 없습니다.
수식은 한번 지나온 봉에 다시 돌아가 어떤 행위를 하지 못합니다.
해당 내용은 아래식을 선그래프로 설정하고
그리는 외에는 달리 보실 방법이 없습니다.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
즐거운 하루되세요
> 행복충전 님이 쓴 글입니다.
> 제목 : 추세선의 중간값을 점으로 찍기
> [그림1]처럼 어떤 조건을 실행해서 나온 봉과 봉을 [그림2]처럼 직선이 되는 점으로 찍어 줄려고 합니다
참고로 [그림1]의 조건은 아래 식을 실행해서 나온 결과임.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
========================================================================
함수명 : TrendLine(조건)
* 두 조건 사이에 직선이 되는 점을 찍어 주기 위한 사용자함수를 만들어 주세요.
아래는 제가 연습삼아 만들어 본 식인데 안맞습니다.
Inputs: Expression(TrueFalseSeries);
Variables: Counter(0), C1(0), C2(0);
While Counter <= index Begin
If Expression[Counter] Then{
var1 = index;
var2 = var1[1];
C1 = C;
C2 = C1[1];
}
value1 = index-var2;
Counter = Counter + 1;
End;
if var2 != 0 Then
TrendLine = (C1-C2)/value1*counter+C2;
Else
TrendLine = -1;
예스스탁 예스스탁 답변
2011-07-28 18:06:41
안녕하세요
예스스탁입니다.
문의하신 내용은 사용자함수 사용과 상관없이
수식으로는 가능하지 않습니다.
특정 계산식이나 함수등이
현재 계산되는 봉보다 먼저 선행하여 미래봉에의 값을
계산하고 저장해서 다시 그것을 받아 현재에 사용될 수는 없습니다.
올리신 링크의 식도 2개의 점이 발생하고
그 이후의 봉에 지표를 그린 식입니다.
즉 A 와 B라는 점이 발생한 이후의 봉에 A와 B에서 저장된 값을
이용해 그린 선일 뿐입니다.
두개의 값을 한꺼번에 리턴하는 함수는 만들수 없습니다
즐거운 하루되세요
> 행복충전 님이 쓴 글입니다.
> 제목 : Re : Re : 추세선의 중간값을 점으로 찍기
> "수식은 한번 지나온 봉에 다시 돌아가 어떤 행위를 하지 못합니다."
이 내용을 알기 때문에 사용자함수를 만들어 쓸려고 합니다
첫째(사용자함수 실행), A,B,C,D... 모든 점의 종가값과 Index값을 사용자함수로 미리 구해서 변수에 저장합니다
둘째(본 함수 실행), 변수를 불러와서 계산을 한 후에 추세선을 그려 줍니다.
이 링크와 같은 원리를 이용할려고 그럽니다.
https://www.yesstock.com/SystemTrading/Example/board/view.asp?db=board100044&num=107&pageno=1&startpage=1&Site=&L_Code=12&M_Code=7
사용자함수를 어떻게 만들어 주어야 할까요?
그리고 혹시 TrendLine = (C1-C2), value1;
사용자함수에서 (C1-C2)와 value1 두개 이상의 결과값을 리턴하는 방법은 없나요?
================================================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 추세선의 중간값을 점으로 찍기
> 안녕하세요
예스스탁입니다.
해당부분은 수식으로 가능하지 않습니다.
가령 A와 B사이에 직선을 그리기 위해서는
A이후에 B가 발생해야만 알수가 있습니다.
근데 B가 발생한 이후에 그 과거봉에는 더이상
지표를 그리거나 할수 없어 A와 B사이 봉에 표시를 할 방법이 없습니다.
수식은 한번 지나온 봉에 다시 돌아가 어떤 행위를 하지 못합니다.
해당 내용은 아래식을 선그래프로 설정하고
그리는 외에는 달리 보실 방법이 없습니다.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
즐거운 하루되세요
> 행복충전 님이 쓴 글입니다.
> 제목 : 추세선의 중간값을 점으로 찍기
> [그림1]처럼 어떤 조건을 실행해서 나온 봉과 봉을 [그림2]처럼 직선이 되는 점으로 찍어 줄려고 합니다
참고로 [그림1]의 조건은 아래 식을 실행해서 나온 결과임.
if CountIF(C>O,6) == 1 and C > O Then // 봉 6개 중에 양봉이 1개 있고, 현재봉이 양봉이면
plot1(C,"양봉",Black);
========================================================================
함수명 : TrendLine(조건)
* 두 조건 사이에 직선이 되는 점을 찍어 주기 위한 사용자함수를 만들어 주세요.
아래는 제가 연습삼아 만들어 본 식인데 안맞습니다.
Inputs: Expression(TrueFalseSeries);
Variables: Counter(0), C1(0), C2(0);
While Counter <= index Begin
If Expression[Counter] Then{
var1 = index;
var2 = var1[1];
C1 = C;
C2 = C1[1];
}
value1 = index-var2;
Counter = Counter + 1;
End;
if var2 != 0 Then
TrendLine = (C1-C2)/value1*counter+C2;
Else
TrendLine = -1;