예스스탁
예스스탁 답변
2024-11-13 11:46:06
안녕하세요
예스스탁입니다.
n1이 기존식에 없어
n1은 고가선, n2는 저가선에 사용되게 작성해 드립니다.
input : 봉수(100),n1(30),n2(70);
var : s(0),A(0),As(0),B(0),Bs(0),LL(0),AA(0),BB(0),음고1(0),양고1(0);
var : 흰선1(0),평고1(0);
var : qq1(0),qq2(False),qq3(0);
var : ww1(0),ww2(False),ww3(0);
s=s+1;
if s%봉수 == 1 Then
{
A = O;
As= S;
}
if s%봉수 == 0 Then
{
B= C;
Bs = S;
LL = lowest(L,봉수);
}
if AS < BS Then
{
AA = A;
음고1= A;
}
if AS < BS Then
{
BB = B;
양고1 = B;
}
흰선1=min(aa,bb);
평고1=iff(음고1>=양고1,-(음고1-흰선1), (양고1-흰선1));
qq1=AccumN(평고1, n1)/1000;
qq2=crossup(qq1, 0) or crossdown(qq1, 0);
qq3=iff(qq2, 50, 0);
if qq3 == 50 Then
{
var1 = H;
}
ww1=AccumN(평고1, n2)/1000;
ww2=crossup(ww1, 0) or crossdown(ww1, 0);
ww3=iff(ww2, 50, 0);
if ww3 == 50 Then
{
var2 = L;
}
if var1 > 0 Then
{
Plot1(var1);
}
if var2 > 0 Then
{
plot2(var2);
}
즐거운 하루되세요
> 정구지 님이 쓴 글입니다.
> 제목 : 지표식 수정
> 바로 아래는 키움식인데 이것을 예스식으로 바꾸려고합니다.
s=sum(1);
A=valuewhen(1, s%봉수==1, O);
As=valuewhen(1, s%봉수==1, S);
B=valuewhen(1, s%봉수==0, C);
Bs=valuewhen(1, s%봉수==0, S);
AA=VALUEWHEN(1,AS<BS,A),-봉수+1;
BB=VALUEWHEN(1,AS<BS,B),-봉수+1;
LL=VALUEWHEN(1, S%봉수==0, lowest(l,봉수));
흰선1=min(aa,bb);
음고1=valuewhen(1,As<Bs, A),-봉수+1;
양고1=valuewhen(1,As<Bs, B),-봉수+1;
평고1=if(음고1>=양고1,-(음고1-흰선1), +(양고1-흰선1));
qq1=sum(평고1, n2)/1000;
qq2=crossup(qq1, 0) or crossdown(qq1, 0);
qq3=if(qq2, 50, 0);
valuewhen(1, qq3, h)
에서 위 고가 선과
위 식 유사부분은 생략....
valuewhen(1, qq3, l)
저 저가 선 사이에 봉(차트상의 봉사이에 그 바음 고저선이 나타나지 전까지 사이에 색상은 유지) 고저에 선이 그어지고 그 사이 색을 입히고 싶습니다.
( 봉수, n1, n2 는 변수로 설정하여 각각 100, 30, 70으로 임의로 우선 설정한다)
아래는 만들어 본 것인데... 에러가 너무 많아요 수정보다는 전체적으로 다시 작성을 부탁합니다.
input : 봉수(75), n1(30), n2(200); // 변수 설정
var : s(0), A(0), As(0), B(0), Bs(0), AA(0), BB(0), LL(0), 흰선1(0), 음고1(0), 양고1(0), 평고1(0), qq1(0), qq2(false), qq3(0), qq33(0), qq22(false);
// 카운터 변수 업데이트
s = s + 1;
// 봉수와 관련된 가격 계산
A = iff(s % 봉수 == 1, Open, A); // 봉수마다 매수 가격 (시가)
As = iff(s % 봉수 == 1, s, As); // 봉수마다 매수 시점
B = iff(s % 봉수 == 0, Close, B); // 봉수마다 종가
Bs = iff(s % 봉수 == 0, s, Bs); // 봉수마다 매도 시점
// 조건에 맞는 A, B값 계산
AA = iff(As < Bs, A, AA);
BB = iff(As < Bs, B, BB);
LL = iff(s % 봉수 == 0, lowest(Low, 봉수), LL); // 봉수만큼의 최저가 계산
// 흰선1 설정: AA와 BB 중 작은 값
흰선1 = min(AA, BB);
// 음고1과 양고1 조건 설정
음고1 = iff(As < Bs, A, 음고1);
양고1 = iff(As < Bs, B, 양고1);
// 평고1 계산
평고1 = iff(음고1 >= 양고1, -(음고1 - 흰선1), 양고1 - 흰선1);
// qq1 계산: n2 기간 동안 평고1 합산 값 계산
qq1 = sumN(평고1, n2) / 1000;
// 교차 여부 체크
qq2 = CrossUp(qq1, 0); // qq1 값이 0을 상향 교차하는지 확인
qq22 = CrossDown(qq1, 0); // qq1 값이 0을 하향 교차하는지 확인
// 교차 신호 발생 시 50, 그렇지 않으면 0
qq3 = iff(qq2, 50, 0);
qq33 = iff(qq22, 50, 0);
// 최종 출력
plot1 = iff(qq3 == 50, High, 0); // 상향 교차 고가 값
plot2 = iff(qq33 == 50, Low, 0); // 하향 교차 저가 값
Plot(plot1, "상향 교차 고가 값", colorRed);
Plot(plot2, "하향 교차 저가 값", colorBlue);