커뮤니티
문의드립니다
2019-07-02 22:20:16
229
글번호 129969
안녕하세요
아래 수식은 60분봉 캔들의 중심선을 나타내는 수식인데요
차트 전체에 표시되어서 불필요하게 많고 컴에 부하만 걸리는것 같아서
원하는 숫자만큼만 표시되도록 제어하는 수식이 있는지 문의드립니다.
있다면 수식 수정을 부탁드립니다.
예를들어 30개만 표시.
input : ntime1(60);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : HH[50](0),LL[50](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
}
if HH[1] > 0 and LL[1] > 0 then
{
var1 = (HH[1]+LL[1])/2;
plot1(var1);
}
답변 1
예스스탁 예스스탁 답변
2019-07-03 09:56:46
안녕하세요
예스스탁입니다.
1
수식은 차트에 적용하면
차트 첫봉부터 마지막봉으로 오면서 지표를 출력하게 됩니다.
출력된 지표를 이후에 다시 지울수가 없습니다.
2
현재 60분봉 과거 50개까지 값을 저장하는데
직전의 60분봉 중간값만 그리시므로
불필요하게 과거값을 저장하지 않게 변경해 드립니다.
input : ntime1(60);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : HH[2](0),LL[2](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 1
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
}
if HH[1] > 0 and LL[1] > 0 then
{
var1 = (HH[1]+LL[1])/2;
plot1(var1);
}
즐거운 하루되세요
> 부엉이 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 안녕하세요
아래 수식은 60분봉 캔들의 중심선을 나타내는 수식인데요
차트 전체에 표시되어서 불필요하게 많고 컴에 부하만 걸리는것 같아서
원하는 숫자만큼만 표시되도록 제어하는 수식이 있는지 문의드립니다.
있다면 수식 수정을 부탁드립니다.
예를들어 30개만 표시.
input : ntime1(60);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
Array : HH[50](0),LL[50](0);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 49
{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
}
if HH[1] > 0 and LL[1] > 0 then
{
var1 = (HH[1]+LL[1])/2;
plot1(var1);
}
다음글
이전글