예스스탁
예스스탁 답변
2025-01-22 13:37:31
안녕하세요
예스스탁입니다.
1
plot은 과거에 표시된것을 지울수 없습니다.
최근 n일만 표시하기 위해서는 텍스트 함수로 표시를 해야하고
현재시점 N일이상 경과하면 지우게 작성하셔야 합니다.
input : n(10);
var : cnt(0),dd(0);
Array : tx[50](0),nd[50](0);
var1 = ma(h,20);
Plot1(var1);
if Bdate != Bdate[1] Then
{
dd = dd+1;
Condition1 = False;
For cnt = 0 to 49
{
if nd[cnt] <= dd-n Then
Text_Delete(tx[cnt]);
}
}
if Condition1 == False and h>var1 Then
{
Condition1 = true;
For cnt = 49 DownTo 1
{
tx[cnt] = tx[cnt-1];
nd[cnt] = nd[cnt-1];
}
tx[0] = text_new(sDate,sTime,H,"●");
nd[0] = dd;
Text_SetStyle(tx[0],2,1);
Text_SetColor(tx[0],Red);
}
2
var :a(0),b(0),sum(0),count(0);
if Bdate != Bdate[1] Then
Condition1 = False;
sum = 0;
for a = 0 to 9
{
count = 0;
for b = 0 to 99
{
if h[b] > ttl[a][b] and h[b+1] < ttl[a][b+1] Then
count = count+1;
}
if count >= 1 Then
sum = sum +1;
}
if condition1==False and
(sum == 10) Then
{
condition1=true;
Find(1);
}
3
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),ttl[10](0);
var: x(0),y(0),z(0),x1(0),y1(0),z1(0),TL1(0);
#if h>l*1.08 Then
if CrossUp(c,ma(c,60)) Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
TL_SetSize(tl,0);
for cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
if value1>0 then
{
value2 = 0;
Value3 = 0;
z = 0;
z1 = 0;
For cnt = 1 to (var1-Var2)
{
if h[cnt] > value1 Then
{
Value2 = Value2 + H[cnt];
value3 = value3 +1;
#직전조건 만족시 날짜,시간,가격
x1 = x;
y1 = y;
z1 = z;
#현재조건 만족시 날짜,시간,가격
x = sDate[cnt];
y = sTime[cnt];
z = h[cnt];
if z > 0 and z1 > 0 Then
{
TL1 = TL_New(x1,y1,z1,x,y,z);
TL_SetColor(TL1,red);
}
}
Value4 = Value2/Value3;
}
}
if Value4>0 then Plot12(value4,"비교",Orange,Def,1);
}
var12=AverageArray(aa,20);
if value1>0 then Plot13(value1,"고가평균",Green,Def,1);
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 질문드리겠습니다
> 지난 답변 감사드립니다
질문1) 아래 수식은 조건에 맞을때 당일에 한번만 표시하는 수식인데요,
최근 n 일만 보여지도록 할 수 있을까요?
예를들면 최근 10일치만 보여지도록 하고 그 보다 과거의 결과는 안나오도록 하고 싶습니다
추세선이 아니라 plot 으로 가능할까요
var1=ma(h,20);
Plot1(var1);
if Bdate != Bdate[1] Then
Condition1 = False;
if Condition1 == False and h>var1 Then
{
Condition1 = true;
plot2(h);
}
질문2)
아래 수식에서
if condition1==false 이후에
crossup(h,ttl[0]) crossup(h,ttl[1]) ttl[2] ....이런식으로 반복을 할때 (ttl[] 은 배열처리된 추세선입니다)
값이 많아지면 (예를들어서 crossup(h,ttl[9]) 까지 작성될때)
반복문으로 작성을 도와주셨으면 합니다
감사합니다
if Bdate != Bdate[1] Then
Condition1 = False;
if condition1==False and (countif(crossup(h,ttl[0]),100)>=1 and
CountIf(CrossUp(h,ttl[1]),100)>=1 and countif(crossup(h,ttl[2]),100)>=1) Then
{
condition1=true;
Find(1);
}
질문3)
맨 아래 첨부된 수식에서
if h[cnt] > value1 Then
{
Value2 = Value2 + H[cnt];
value3 = value3 +1;
}
이 부분에서 h[cnt] > value1 일때 해당하는 h[cnt] 값들만 그 봉들에다가 표시를 하고 싶습니다.
예를들어 h[2], h[4] h[5] 만 해당할때 그 봉들을 연결하는 선을 만들고 싶습니다
감사합니다
첨부수식:
var : cnt(0), sum1(0), sumi1(0),tt(0),hh(0),ll(0),tl(0);
var: sum2(0),sumi2(0),sumaa(0);
var : t(0),StartBarIndex(0),dd(0),d1(0),d2(0);
Array : ii[50](0),aa[50](0),bb[50](0),ttl[10](0);
if h>l*1.08 Then
{
var1 = Index;
Var2 = var1[1];
Var3= Var2[1];
sum1=0;
sumi1=0;
tl=TL_NEW(sDatE,sTimE,h*1.01,sDatE,sTimE,99999);
TL_SetSize(tl,0);
For cnt = 1 to (var1-Var2)
{
sum1=sum1+h[cnt];
sumi1=sumi1+1;
}
value1=sum1/sumi1;
For cnt = 49 DownTo 1
{
aa[cnt] = aa[cnt-1];
}
aa[0] = value1;
if value1>0 then
{
value2 = 0;
Value3 = 0;
For cnt = 1 to (var1-Var2)
{
if h[cnt] > value1 Then
{
Value2 = Value2 + H[cnt];
value3 = value3 +1;
}
Value4 = Value2/Value3;
}
}
if Value4>0 then Plot12(value4,"비교",Orange,Def,1);
}
var12=AverageArray(aa,20);
if value1>0 then Plot13(value1,"고가평균",Green,Def,1);