답변완료
수식 문의 드립니다.
(1)
S=sum(1);
R=RSI(기간);
U7=Valuewhen(1, CrossUp(R, 기준), S);
D5=Valuewhen(1, CrossDown(R, 기준1), S);
순번조건=U7 < D5;
조건= CountSince(순번조건 && !순번조건(1),
CrossUp(R, 기준))==1;
조건 && !조건(1)
(2)
S=sum(1);
R=RSI(기간);
U7=Valuewhen(1, CrossUp(R, 기준), S);
D5=Valuewhen(1, CrossDown(R,기준1), S);
순번조건=U7 < D5;
조건= CountSince(순번조건 && !순번조건(1),
CrossUp(R, 기준))==1;
A=Valuewhen(1,조건 && !조건(1), O);
CrossUp(C, A)
기간9 기준 30 기준1 50
종목 검색식으로 부탁드립니다. 늘 고맙습니다.
2023-07-23
1079
글번호 170853
종목검색
답변완료
차트에 신호 화살표 표시
차트에 화살표 신호를 하려고 하는데 어떻게 해야 하나요? 아직 미숙해서 뭐가 뭔지 모르겠네요
요일(D) 함수 : 함수명을반드시 요일(D) 로 하셔야 합니다.
M = floor(D/100)%100;
YY = if((M+1-1) == 1 or (M+1-1) == 2, floor(D/10000)-1,floor(D/10000));
YA= floor(YY/100);
YB=YY%100;
MM = if((M+1-1) == 1, 13, if((M+1-1) == 2, 14, M));
DD=D%100;
A=(DD + floor(13*(MM+1)/5)+YB+ floor(YB/4)+floor(YA/4)+YA*5)%7;
if(A==0, 6, A-1)
화살표 수식
wvf = ((highest(C, 22) - low) / highest(C, 22)) * 100;
sDev = 2.0 * stdev(wvf, 20);
midLine = avg(wvf, 20);
upperBand = midLine + sDev;
rangeHigh = (highest(wvf, 50)) * ph;
os = (wvf >= upperBand) or (wvf >= rangeHigh);
ap = (HIGH+LOW+CLOSE)/3;
esa = eavg(ap, 기간1);
d = eavg(abs(ap - esa), 기간1);
ci = (ap - esa) / (0.015 * d);
wt1 = eavg(ci,기간2);
wt2 = avg(wt1,4);
A=Lowest(L, 260, 1);
A1=Lowest(L, 260, 1)*1.25;
A2=요일(DATE);
A3=Valuewhen(1,A2(1)>A2,O);
MO=floor(date/100);
MO1=MO%100;
A4=VALUEWHEN(1, MO1!=MO1(1),O);
wt1(1)<=-53 && (os(1) or os) && wvf(1)>wvf &&
(Crossup(wt1,wt2) or Crossup(wt1,-60) or Crossup(wt1,-53)) && C>O && A1>=C && A<=C && (A3<=C OR A4<=C)
-지표조건설정
기간1 : 10
기간2 : 21
PH : 0.85
이걸 차트에 화살표를 표시하려고 합니다
도와주세요 ㅠㅠ
2023-07-21
1453
글번호 170848
시스템
답변완료
82983 추가 문의합니다.
82938 답변 감사합니다!
몇 가지 확인하려고 추가 문의드립니다.
원글에도 답글을 적었는데 혹시 못보실까봐 똑같이 적습니다 ㅠ
1. 첫번째 if문의
"if SwingHigh(1,h,left,right,left+right+1) != -1 and c[right] > mav[right] Then"은
스윙하이 시작점이 20이평 보다 높은 경우를 상정한 것이 같은데,
만약 스윙하이 최고값이 20이평 보다 높은 경우로 변경하려면,
"if SwingHigh(1,h,left,right,left+right+1)!= -1 and SwingHigh(1,h,left,right,left+right+1) > mav[right] Then"으로 변경하면 될까요?
2. sh[0] = h[right]; 부분은 스윙하이 완성시점에서 포착되기 때문에 5봉전 값 = 스윙하이 최고점으로 계산되는 것이죠?
3. 마지막 Else는 스윙하이 완성되지 않고 20이평보다 높을 때 실행 되는 의미인가요?
4. 만약 파워종목검색에서 검색하면 검색주기를 "주"로 두고
"left(5),right(5);"와 "mav = ma(c,20);"의 변수를 각각
"left(3),right(3);"와 "mav = ma(c,10);"으로 변경해서 수식을 적용하면,
주봉에서 주봉 10이평 보다 높고 좌우 3개 봉을 비교한 스윙하이 값으로 변경되는 것이 맞나요?
5. 만약 "SwingHigh(1,h,left,right,left+right+1)"에서 스윙하이 값을 h가 아닌 종가 C나 제가 임의로 지정한 변수로 넣어도 스윙하이 값이 정상 작동하는거죠?
예를 들어,
A = LRL(C, 20);
A1 = LRL(A,20);
eq= A-A1;
ZZ =A+eq;
if SwingHigh(1,zz,left,right,left+right+1) != -1 and c[right] > mav[right] Then
으로 수정하면 고가 스윙하이가 아니라 제가 정한 zl 값으로 스윙하이 값을 구하는건가요?
6. 마지막에 일봉에서 "if Value2 > 0 and Index <= Value2+100 and C >= Value2*1.03 and C <= Value2*0.97 Then" 의 조건검색식을 아래와 같이 수정하면, 일봉 5봉 이내 조건 만족한 경우를 결과로 받는거죠?
con1 = Value2 > 0 and Index <= Value2+100 and C >= Value2*1.03 and C <= Value2*0.97
if countif(con1, 5) > 0 then
Find(1);
질문이 많아서 정말 죄송합니다. 답변 부탁드립니다!
=====================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 다시한번 수식 문의드립니다!
> 안녕하세요
예스스탁입니다.
아래 내용 참고하시기 바랍니다.
input : left(5),right(5);
var : mav(0),cnt(0),count(0);
var : sumv(0),sumi(0),avgv(0),sumsqrt(0),stdv(0),ii(0),upv(0),dnv(0);
var : h1(0),h2(0),i1(0),i2(0);
Array : sh[100](0),shi[100](0),hh[100](0),hi[100](0);
mav = ma(c,20);
if SwingHigh(1,h,left,right,left+right+1) != -1 and c[right] > mav[right] Then
{
//전체 발생 횟수
count = count+1;
//스윙하이값과 인덱스 배열에 저장 (최근이 0으로 시작)
For cnt = 99 downto 1
{
sh[cnt] = sh[cnt-1];
shi[cnt] = shi[cnt-1];
}
sh[0] = h[right];
shi[0] = Index[right];
#최소 저장된 값이 2개 이상
if count >= 2 Then
{
#평균
sumv = 0;
sumi = 0;
For cnt = 0 to min(count,100)-1
{
if sh[cnt] > 0 then
{
sumv = sumv + sh[cnt];
sumi = sumi + 1;
}
}
avgv = sumv/sumi;
#표준편차
SumSqrt = 0;
For cnt = 0 To sumi - 1
{
SumSqrt = SumSqrt + (SH[cnt] - Avgv)^2;
}
Stdv = SquareRoot(SumSqrt/sumi);
#표준편차 2배 상하단
upv = avgv+stdv*2;
dnv = avgv-stdv*2;
#기존 저장값 0으로 초기화
For cnt = 0 to 99
{
hh[cnt] = 0;
hi[cnt] = 0;
}
#상하단내 스윙하이만 다른배열에 저장
ii = 0;
For cnt = 0 to count-1
{
//상하단내 스윙하이값만 hh,hi배열에 순서대로 저장
if upv >= sh[cnt] and sh[cnt] >= dnv Then
{
hh[ii] = sh[cnt];
hi[ii] = shi[cnt];
ii = ii +1;
}
}
if ii >= 2 Then
{
nthHighestArray(hh,ii,1,h1,var1);
nthHighestArray(hh,ii,2,h2,Var2);
i1 = hi[var1];
i2 = hi[var2];
value1 = h1 - ((h1 - h2)/(i1 - i2));
}
}
}
Else
{
if value1 > 0 and CrossUp(C,value1) Then
{
Value2 = c;
Value3 = Index;
}
if Value2 > 0 and Index <= Value2+100 and C >= Value2*1.03 and C <= Value2*0.97 Then
Find(1);
}
즐거운 하루되세요
> 민서홧팅 님이 쓴 글입니다.
> 제목 : 다시한번 수식 문의드립니다!
> 늘 친절하신 설명 감사합니다.
수식은 가능하지만,
조건검색 봉수 제한 때문에 어렵다고 말씀하셔서
스윙하이 값을 조정하여 다시 여쭤봅니다.
예스수식 초보자이다 보니,, 스윙하이 값을 배열로 넣는 부분을 어떻게 구성할지 감이 잡히지 않아 여쭤봅니다.
대략 스윙하이 결과를 for문이나 while로 반복해서 array로 넣고, if 조건을 걸면 될 것 같은데, 배열로 넣는 부분에 대한 설명이 어디에서도 찾지 못해서 여쭤봅니다...
조건수식 정의를 순서대로 말씀드리면,
1. 일봉 20일 이동평균보다 종가가 높은 경우의 스윙하이 값들을 배열로 변수에 넣은 다음,
(이 때 스윙하이는 왼쪽 5봉, 오른쪽 5봉을 기준으로 합니다.)
2. 스윙하이 값들 중 표준편차 95% 범위 내의 값으로만 배열을 재정의한 후,
3. 재정의된 스윙하이 값의 최고가와 봉번호, 2번째 고가와 봉번호를 구하고,
4. 최고가 - ((최고가 - 2번째 고가)/(최고가 봉번호 - 2번째 고가 봉번호))와 같이 선형방정식을 변수로 할당하고,
5. 최근 100봉 이내 일일 종가가 선형방정식의 값을 1회 이상 상향돌파한 경우,
6. 금일 종가가 해당 종가의 시가에 3% 범위 내에 수렴하는 종목을 검색하는 검색식이 구현 가능한가요?
스윙하이 값을 배열 형태로 변수에 넣는 것에서 계속 에러가 나서 문의드립니다....
2023-07-21
1423
글번호 170837
종목검색
답변완료
수식 문의드립니다.
LRL로 종목검색식을 만들었는데, 제대로 만든게 맞는지 확인 부탁드립니다.
LRL을 2번하고 변동폭을 추가해서 조정LRL을 만든 다음,
조정 LRL의 스윙하이, 스윙로우를 구한 후 최고, 최저점의 수렴 구간을 검색하는 것입니다.
input : 기간1(50),left(3),right(3);
var : a(0),a1(0),eq(0),ZL(0), swhzl(0), swlzl(0), level(0);
A = LRL(C,기간1);
A1 = LRL(A,기간1);
eq= A-A1;
ZL =A+eq;
if SwingHigh(1,zl,left,right,left+right+1)!= -1 Then
swhzl = SwingHigh(1,zl,left,right,left+right+1);
if SwingLow(1,zl,left,right,left+right+1)!= -1 Then
swlzl = SwingLow(1,zl,left,right,left+right+1);
level = (swhzl-swlzl)/c;​
if level < 0.25 and (zl-c)/c < 0.03 Then
Find(1);
======
아참, 그리고 혹시 위 수식에서 swlzl[1]은 스윙로우 값의 직전 값으로 결과값이 반환되는 것이 맞나요?
2023-07-21
1287
글번호 170836
종목검색
답변완료
트레이딩 뷰 수식을 예스 수식으로 바꿔주세요.
//@version=5
indicator(title="Donchian Channels", shorttitle="DC", overlay=true, timeframe="", timeframe_gaps=true)
length = input.int(20, minval=1)
lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)
plot(basis, "Basis", color=#FF6D00)
u = plot(upper, "Upper", color=#2962FF)
l = plot(lower, "Lower", color=#2962FF)
fill(u, l, color=color.rgb(33, 150, 243, 95), title="Background")
돈치안 채널인데 예스에는 없네요.
예스로 좀 바꿔주세요.
2023-07-21
1225
글번호 170824
지표