커뮤니티
문의드립니다.
2010-12-21 13:46:27
640
글번호 34478
안녕하세요
항상 친절한 답글 감사드립니다.
문의드릴사항은 다음과 같습니다.
1. 갭보정한 RSI, Positive Volume Index 지표로
2. RSI 기준선 50 상향돌파 하고
Positive Volume Index지표 중 PVI가 PVISIG를 상향돌파(골든크로스) 할때 매수
3. RSI 기준선 50 하향돌파 하고
Positive Volume Index지표 중 PVI가 PVISIG를 하향돌파(데드크로스) 할때 매도
※RSI 와 Positive Volume Index 지표 둘다 만족 할 경우
4. 장시작과 동시에 두지표가 상향돌파나 골든크로스로 동시만족 상태라면 매수,
반대의 경우 매도
5. 필터링하기 쉽게 지표속성창에 표시되게 해주세요
위와 같은 시스템식 부탁드립니다.
▶ 종목검색식도 아울러 부탁드립니다*^^*
(종목검색식에는 갭보정이 필요없습니다^^)
행복한 하루 되세요~~~~
답변 2
예스스탁 예스스탁 답변
2010-12-21 16:09:54
안녕하세요
예스스탁입니다.
1.
Inputs: RSIPeriod(14),PVISig(20);
Variables: RSIcount(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),RSIv(0),GPvi(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 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;
if CurrentBar <= 1 then
{
GPvi = 100;
}
else
{
if V > V[1] then
{
GPVI = PVI[1] + (((GC-GC[1]) / GC[1]) * PVI[1]);
}
else
{
GPVI = GPVI[1];
}
}
var1 = ma(GPVI,PVIsig);
if crossup(GPVI,var1) and RSIv > 50 Then
buy();
if CrossDown(GPVI,var1) and RSIv < 50 Then
Sell();
2.동시만족
Inputs: RSIPeriod(14),PVISig(20);
Variables: RSIcount(0), DownAmt(0), UpAmt(0), UpSum(0), DownSum(0), UpAvg(0), DownAvg(0),RSIv(0),GPvi(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 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;
if CurrentBar <= 1 then
{
GPvi = 100;
}
else
{
if V > V[1] then
{
GPVI = PVI[1] + (((GC-GC[1]) / GC[1]) * PVI[1]);
}
else
{
GPVI = GPVI[1];
}
}
var1 = ma(GPVI,PVIsig);
if crossup(GPVI,var1) and crossup(RSIv,50) Then
buy();
if CrossDown(GPVI,var1) and crossdown(RSIv, 50) Then
Sell();
3.갭보정 RSIv
Inputs: RSIPeriod(14);
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 { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
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;
plot1(RSIv);
4. 갭보정 PVI
input : sig(20);
var : sumGap(0), gap(0), GC(0),GPvi(0);
if date!=date[1] then { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gap = Open-Close[1]; // 일간갭
sumGap = sumGap+gap; // 일간갭 누적
}
GC = C - sumGap; // 갭보정 종가
if CurrentBar <= 1 then
{
GPvi = 100;
}
else
{
if V > V[1] then
{
GPVI = PVI[1] + (((GC-GC[1]) / GC[1]) * PVI[1]);
}
else
{
GPVI = GPVI[1];
}
}
plot1(GPVI);
plot2(ma(GPVI,sig));
5.종목검색1
Inputs: RSIPeriod(14),PVISig(20);
var1 = RSI(RSIPeriod);
var2 = PVI;
var3 = ma(PVI,PVIsig);
if crossup(var2,var3) and var1 > 50 Then
find(1);
6. 종목검색2(동시만족)
Inputs: RSIPeriod(14),PVISig(20);
var1 = RSI(RSIPeriod);
var2 = PVI;
var3 = ma(PVI,PVIsig);
if crossup(var2,var3) and crossup(var1, 50) Then
find(1);
즐거운 하루되세요
> 마린187 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 안녕하세요
항상 친절한 답글 감사드립니다.
문의드릴사항은 다음과 같습니다.
1. 갭보정한 RSI, Positive Volume Index 지표로
2. RSI 기준선 50 상향돌파 하고
Positive Volume Index지표 중 PVI가 PVISIG를 상향돌파(골든크로스) 할때 매수
3. RSI 기준선 50 하향돌파 하고
Positive Volume Index지표 중 PVI가 PVISIG를 하향돌파(데드크로스) 할때 매도
※RSI 와 Positive Volume Index 지표 둘다 만족 할 경우
4. 장시작과 동시에 두지표가 상향돌파나 골든크로스로 동시만족 상태라면 매수,
반대의 경우 매도
5. 필터링하기 쉽게 지표속성창에 표시되게 해주세요
위와 같은 시스템식 부탁드립니다.
▶ 종목검색식도 아울러 부탁드립니다*^^*
(종목검색식에는 갭보정이 필요없습니다^^)
행복한 하루 되세요~~~~
회원
2012-05-31 03:04:10
관리자님에 의해 삭제된 답변입니다.
이전글