커뮤니티
사용자 함수의 수정요청
2012-07-23 10:36:57
372
글번호 53130
-----과거질문-----------------------------------
갭보정 이평과 RSI를 사용자 함수로 지정("GAP_Ma","GAP_RSI"로 정의)한뒤
지표식에서 일반이평 일반RSI처럼
아래와 같이
GAP_Ma(C,5)
GAP_Ma(C,10)
GAP_Ma(C,20)
GAP_RSI(10)
GAP_RSI(15)
GAP_RSI(20)
사용할수 있게 부탁드립니다
------------------------------------------------
질문1)
위와같이 질문한내용의 답으로 작성해주신 수식(갭이평, 갭RSI)을 사용중입니다
(첨부파일 참조)
그런데 현재가(C)가 갭이평선상의 어디에 위치한 건지를 표현하다보니
단순한 현재가격C가 아니라 갭을 적용한 현재가C를 필요함을 알게됬읍니다
즉 현재가C는 이평10선과 이평20선사이에 있다고하면
이평10선<현재가C<이평20선
위와 같이 표현되겠지만
갭이평을 적용한 C값이 갭이평10선과 갭이평20선사이에있다면
갭이평10선<갭현재가C<갭이평20선 과 같이 표현되는데
여기에서 Gap_C를 함수로 해주시기 바랍니다
2)질문2 (그림참조)
당일최종가의 급등으로 갭수식이 교란되는 예를 캡쳐한것입니다
최종가의 급등시 0.3P로 제한하는 갭산식(Ma,RSI)을 부탁드립니다
- 1. 53490_GAP_Ma.yfu (0.00 MB)
- 2. 53490_GAP_RSI.yfu (0.00 MB)
- 3. 당일종가 급상승시 갭수식의 불안정.jpg (0.27 MB)
답변 1
예스스탁 예스스탁 답변
2012-07-23 13:11:11
안녕하세요
예스스탁입니다.
1. 올려주신 함수들에 모두 갭을 적용한 값을 사용하게 되어 잇습니다.
첨부하신에 사용자함수 안에 계산식 내용을 보시면
갭을 계산한 내용이 들어가 있습니다.
input : Price(Numeric),Period(Numeric);
var : sumGap(0), gap(0),GC(0);
var : Gma1(0), Gma2(0), Gma3(0);
if date!=date[1] then {
gap = Open-Close[1];
sumGap = sumGap+gap;
}
GC = Price - sumGap;
GAP_ma = ma(GC,PEriod);
GAP_ma(C,20)으로 입력하시면 C가 수식안에서
갭을 차감한 값으로 적용되어 수식안에서는 GC가 사용이 됩니다.
2. 아래는 갭이 0.3이상이나 이하 발생할 때
최대 0.3의 갭만 적용하게 수식을 변경한 식입니다.
2-1 GAP_ma
input : Price(Numeric),Period(Numeric);
var : sumGap(0), gap(0),GC(0);
var : Gma1(0), Gma2(0), Gma3(0);
if date!=date[1] then {
if Open-close[1] >= 0.3 then
gap = 0.3;
else if Open-close[1] <= -0.3 Then
Gap = -0.3;
Else
gap = Open-Close[1];
sumGap = sumGap+gap;
}
GC = Price - sumGap;
GAP_ma = ma(GC,PEriod);
2-2 GAP_RSI
Inputs: RSIPeriod(Numeric);
Variables: RSIcount(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),RSIv(0);
var : sumGap(0), gap(0), GO(0), GH(0), GL(0), GC(0);
if date!=date[1] then {
if Open-close[1] >= 0.3 then
gap = 0.3;
else if Open-close[1] <= -0.3 Then
Gap = -0.3;
Else
gap = Open-Close[1];
sumGap = sumGap+gap;
}
GO = O - sumGap;// 갭보정 시가
GH = H - sumGap;// 갭보정 고가
GL = L - sumGap;// 갭보정 저가
GC = C - sumGap; // 갭보정 종가
If CurrentBar == 1 AND RSIPeriod > 0 Then Begin
UpSum = 0;
DownSum = 0;
For RSIcount = 0 To RSIPeriod - 1 Begin
UpAmt = GC[RSIcount] - GC[RSIcount+1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpSum = UpSum + UpAmt;
DownSum = DownSum + DownAmt;
End;
UpAvg = UpSum / RSIPeriod;
DownAvg = DownSum / RSIPeriod;
End
Else
If CurrentBar > 1 AND RSIPeriod > 0 Then Begin
UpAmt = GC[0] - GC[1];
If UpAmt >= 0 Then
DownAmt = 0;
Else Begin
DownAmt = -UpAmt;
UpAmt = 0;
End;
UpAvg = (UpAvg[1] * (RSIPeriod - 1) + UpAmt) / RSIPeriod;
DownAvg = (DownAvg[1] * (RSIPeriod - 1) + DownAmt) / RSIPeriod;
End;
If UpAvg + DownAvg <> 0 Then
RSIv = 100 * UpAvg / (UpAvg + DownAvg);
Else
RSIv = 0;
GAP_RSI = RSIV;
즐거운 하루되세요
> 티끌 님이 쓴 글입니다.
> 제목 : 사용자 함수의 수정요청
> -----과거질문-----------------------------------
갭보정 이평과 RSI를 사용자 함수로 지정("GAP_Ma","GAP_RSI"로 정의)한뒤
지표식에서 일반이평 일반RSI처럼
아래와 같이
GAP_Ma(C,5)
GAP_Ma(C,10)
GAP_Ma(C,20)
GAP_RSI(10)
GAP_RSI(15)
GAP_RSI(20)
사용할수 있게 부탁드립니다
------------------------------------------------
질문1)
위와같이 질문한내용의 답으로 작성해주신 수식(갭이평, 갭RSI)을 사용중입니다
(첨부파일 참조)
그런데 현재가(C)가 갭이평선상의 어디에 위치한 건지를 표현하다보니
단순한 현재가격C가 아니라 갭을 적용한 현재가C를 필요함을 알게됬읍니다
즉 현재가C는 이평10선과 이평20선사이에 있다고하면
이평10선<현재가C<이평20선
위와 같이 표현되겠지만
갭이평을 적용한 C값이 갭이평10선과 갭이평20선사이에있다면
갭이평10선<갭현재가C<갭이평20선 과 같이 표현되는데
여기에서 Gap_C를 함수로 해주시기 바랍니다
2)질문2 (그림참조)
당일최종가의 급등으로 갭수식이 교란되는 예를 캡쳐한것입니다
최종가의 급등시 0.3P로 제한하는 갭산식(Ma,RSI)을 부탁드립니다
다음글
이전글