예스스탁
예스스탁 답변
2016-03-23 19:15:38
안녕하세요
예스스탁입니다.
1
upV[0]에 가장최근 크로스업의 지표값
upC[0]에 가장최근 크로스업의 종가값이 저장되고
[1],[2],[3]순으로 이전크로스의 값을 가져올수 있게
작성된 식입니다.
크로스다운은 dnv,dnc에 저장되고 호축하는 방법은 위와 같습니다.
var : cnt(0);
Array : upV[100](0),upC[100](0),dnV[100](0),dnC[100](0);
var1 = MACD(12,26);
var2 = ema(var1,9);
if crossup(var1,var2) Then{
dnV[0] = var1;
dnC[0] = c;
for cnt = 1 to 99{
dnV[cnt] = dnV[cnt-1][1];
dnC[cnt] = dnC[cnt-1][1];
}
}
if CrossDown(var1,var2) Then{
dnV[0] = var1;
dnC[0] = c;
for cnt = 1 to 99{
dnV[cnt] = dnV[cnt-1][1];
dnC[cnt] = dnC[cnt-1][1];
}
}
2
문의하신 내용을 정확히 이해하지 못했습니다.
지표의 크로스는 업과 다운이 반복됩니다.
연속 크로스업이나 크로스다운이 어떤 의미인지 정확하지 않습니다.
0위에서 크로스업의 횟수
0아래에서 크로스다운의 횟수를 저장하는 식입니다.
var : cnt(0),upcnt(0),dncnt(0);
var1 = MACD(12,26);
var2 = ema(var1,9);
if crossup(var1,0) Then
upcnt = 0;
if var1 > 0 and crossup(var1,var2) Then
upcnt = upcnt+1;
if CrossDown(var1,0) Then
dncnt = 0;
if var1 < 0 and CrossDown(var1,var2) Then
dncnt = dncnt+1;
3
var : cnt(0),upHH(0),upCC(0),dnLL(0),dnCC(0);
Array : upV[100](0),upC[100](0),dnV[100](0),dnC[100](0);
var1 = MACD(12,26);
var2 = ema(var1,9);
if crossup(var1,var2) Then{
upV[0] = var1;
upC[0] = c;
for cnt = 1 to 99{
upV[cnt] = upV[cnt-1][1];
upC[cnt] = upC[cnt-1][1];
}
}
if CrossDown(var1,var2) Then{
dnV[0] = var1;
dnC[0] = c;
for cnt = 1 to 99{
dnV[cnt] = dnV[cnt-1][1];
dnC[cnt] = dnC[cnt-1][1];
}
}
#최근 5개 크로스업의 최고지표와 최고종가
#최근 5개 크로스다운의 최저지표와 최저종가
upHH = upv[0];
upCC = upC[0];
dnLL = dnv[0];
dnCC = dnC[0];
if upCC[6] > 0 then{
for cnt = 0 to 5{
if upv[cnt] > upHH Then
upHH = upv[cnt];
if upc[cnt] > upCC Then
upCC = upc[cnt];
if dnv[cnt] > dnLL Then
dnLL = dnv[cnt];
if dnc[cnt] > dnCC Then
dnCC = dnc[cnt];
}
}
즐거운 하루되세요
> 다올 님이 쓴 글입니다.
> 제목 : 수식작성 도움을 부탁드립니다.
> 1.
기간 설정 없이 crossup, crossdown일때 지표값을 지정하여 이전 크로스에서의
지표값과 선물가격을 확인하는 수식
2.
기준선 0 위에서 연속 crossup발생시 횟수 누적 / 0 아래에서 연속 crossdown발생시 횟수 누적 수식 부탁 드립니다.
3.
현시점에서 crossup ~ crossup[5]중의 최고가와 crossdown~crossdown[5]중의 최저가를 비교하기 위한 필요수식입니다.