커뮤니티
추가 문의
2009-05-07 19:37:35
687
글번호 22123
그럼 만일 가속값을 바꾸어서 사용하려면..
사용자함수 내의 AF_value 값도 바꾸어줘야 하는건가요???
즉,af(0.02)를 사용안하고..AF(0.01)을 사용하려면 사용자 함수내의 AF_value도 AF_value(0.01)로 변ㄱㅇ해야 하는건지요....?
수고하세요
===========================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의
> 안녕하세요
예스스탁입니다.
사용자함수명은 GCSAR 입니다.
AF_Value에서 (.02)는 0.02로 가속값입니다.
/* Description : Close SAR
*
* Provided By : YesStock Inc. (c) Copyright 2006
* E-Mail : webmaster@yesstock.com
*/
Input : AF(NumericSimple), AFMAX(NumericSimple);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GO = O - sumGap;// 갭보정 시가
GH = H - sumGap;// 갭보정 고가
GL = L - sumGap;// 갭보정 저가
GC = C - sumGap; // 갭보정 종가
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GH > HighValue then
{
HighValue = GH;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if GC < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = Gl;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GL < LowValue then
{
LowValue = GL;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = GH;
}
}
GCSar = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GH > HighValue then
{
HighValue = GH;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GL < LowValue then
{
LowValue = GL;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
GCSar = SAR_Value;
}
else
{
if Direction == 0 then
{
if GC > GC[1] then Direction = 1;
else
if GC < GC[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if GC < GC[1] then
{
Direction = -1;
SAR_Value = HighValue;
GCSar = SAR_Value;
}
}
if Direction == -1 then
{
if GC > GC[1] then
{
Direction = 1;
SAR_Value = LowValue;
GCSar = SAR_Value;
}
}
}
LowValue = min(GL, LowValue);
HighValue = max(GH, HighValue);
}
}
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 문의
> 단기분봉 차트에서 사용하려고 하는데요..
갭과 상관이 있다면...
아래 사용자 함수를 갭보정한 식으로 수정 부탁합니다
그리고...af 값을 변경할 경우에 사용자 함수도 변경해주어야 하나요???
var : AF_Value(.02) 의 의미가 무엇인가요...??
수고하세요...
///////////////////////////////////////////////////////////
/* Description : Close SAR
*
* Provided By : YesStock Inc. (c) Copyright 2006
* E-Mail : webmaster@yesstock.com
*/
Input : AF(NumericSimple), AFMAX(NumericSimple);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = low;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = High;
}
}
CSar = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSar = SAR_Value;
}
else
{
if Direction == 0 then
{
if Close > Close[1] then Direction = 1;
else
if Close < Close[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if Close < Close[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSar = SAR_Value;
}
}
if Direction == -1 then
{
if Close > Close[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSar = SAR_Value;
}
}
}
LowValue = min(Low, LowValue);
HighValue = max(High, HighValue);
}
}
답변 1
예스스탁 예스스탁 답변
2009-05-08 09:15:02
안녕하세요
예스스탁입니다.
선언의 값은 초기값일 뿐입니다.
변경해 주실 필요가 없습니다.
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 추가 문의
> 그럼 만일 가속값을 바꾸어서 사용하려면..
사용자함수 내의 AF_value 값도 바꾸어줘야 하는건가요???
즉,af(0.02)를 사용안하고..AF(0.01)을 사용하려면 사용자 함수내의 AF_value도 AF_value(0.01)로 변ㄱㅇ해야 하는건지요....?
수고하세요
===========================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의
> 안녕하세요
예스스탁입니다.
사용자함수명은 GCSAR 입니다.
AF_Value에서 (.02)는 0.02로 가속값입니다.
/* Description : Close SAR
*
* Provided By : YesStock Inc. (c) Copyright 2006
* E-Mail : webmaster@yesstock.com
*/
Input : AF(NumericSimple), AFMAX(NumericSimple);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GO = O - sumGap;// 갭보정 시가
GH = H - sumGap;// 갭보정 고가
GL = L - sumGap;// 갭보정 저가
GC = C - sumGap; // 갭보정 종가
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GH > HighValue then
{
HighValue = GH;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if GC < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = Gl;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GL < LowValue then
{
LowValue = GL;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = GH;
}
}
GCSar = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GH > HighValue then
{
HighValue = GH;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if GL < LowValue then
{
LowValue = GL;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
GCSar = SAR_Value;
}
else
{
if Direction == 0 then
{
if GC > GC[1] then Direction = 1;
else
if GC < GC[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if GC < GC[1] then
{
Direction = -1;
SAR_Value = HighValue;
GCSar = SAR_Value;
}
}
if Direction == -1 then
{
if GC > GC[1] then
{
Direction = 1;
SAR_Value = LowValue;
GCSar = SAR_Value;
}
}
}
LowValue = min(GL, LowValue);
HighValue = max(GH, HighValue);
}
}
즐거운 하루되세요
> 오이도인 님이 쓴 글입니다.
> 제목 : 문의
> 단기분봉 차트에서 사용하려고 하는데요..
갭과 상관이 있다면...
아래 사용자 함수를 갭보정한 식으로 수정 부탁합니다
그리고...af 값을 변경할 경우에 사용자 함수도 변경해주어야 하나요???
var : AF_Value(.02) 의 의미가 무엇인가요...??
수고하세요...
///////////////////////////////////////////////////////////
/* Description : Close SAR
*
* Provided By : YesStock Inc. (c) Copyright 2006
* E-Mail : webmaster@yesstock.com
*/
Input : AF(NumericSimple), AFMAX(NumericSimple);
Var : Direction(0), SAR_Value(Close), AF_Value(.02), HighValue(High), LowValue(Low), EP(0);
if EP != 0 Then
{
if Direction == 1 then
{
EP = HighValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close < SAR_Value then
{
Direction = -1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
LowValue = low;
}
}
else
{
EP = LowValue;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + Af;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
if Close > SAR_Value then
{
Direction = 1;
SAR_Value = EP;
AF_Value = 0;
EP = 0;
HighValue = High;
}
}
CSar = SAR_Value;
}
else
{
if SAR_Value != 0 && EP == 0 then
{
if Direction == 1 then
{
EP = HighValue;
AF_Value = AF;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if High > HighValue then
{
HighValue = High;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
else
{
EP = LowValue;
AF_Value = Af;
SAR_Value = SAR_Value + AF_Value * (EP - SAR_Value);
if Low < LowValue then
{
LowValue = Low;
AF_Value = AF_Value + AF;
if AF_Value >= AFMAX then AF_Value = AFMAX;
}
}
CSar = SAR_Value;
}
else
{
if Direction == 0 then
{
if Close > Close[1] then Direction = 1;
else
if Close < Close[1] then Direction = -1;
}
else
{
if Direction == 1 then
{
if Close < Close[1] then
{
Direction = -1;
SAR_Value = HighValue;
CSar = SAR_Value;
}
}
if Direction == -1 then
{
if Close > Close[1] then
{
Direction = 1;
SAR_Value = LowValue;
CSar = SAR_Value;
}
}
}
LowValue = min(Low, LowValue);
HighValue = max(High, HighValue);
}
}