답변완료
수식문의입니다
input : 기간1(5),기간2(10),기간3(20);
var : mav1(0), mav2(0), mav3(0);
var : DPT(0),DPY(0),Bline(0);
mav1 = ema(C,기간1);
mav2 = ema(C,기간2);
mav3 = ema(C,기간3);
if mav1 < mav2 && mav2 < mav3 && mav1 < mav3 Then
DPT = C;
if DPT[2] > DPT[1] && DPT[1] < DPT Then
DPY = DPT[1];
if CrossUp(mav1,DPY) Then
Bline = mav1;
plot1(Bline,"기준선");
상기 기준선(plot1)은 계단식으로 오르락 내리락하는 라인을 형성합니다.
1. 라인이 변동된 시작봉부터 다시 변동된 봉까지의 봉의 갯수표시하는 지표수식
2. 전라인의 가격과 변동이 된 라인의 가격과의 변동율을 표시하는 수식(상승+,하락-율)
3. 라인이 동일방향으로 변동될때의 갯수를 표시하는 수식. 즉 연속으로 라인이 하락으로
변동되어 간다면 하락변동될때마다 하락한 변동된 라인 갯수를 표시하는 것이며, 하락변동되다가 상승변동된다면 다시 카운팅되어야한다
2와 3은 라인이 변동되는 봉에 표시하되 하락변동된 경우에는 봉의 고가위에, 상승변동된때에는 봉의 저가아래에 표시되게 하여야한다.
1은 변동으로 확정된 봉의 갯수는 동일하게 표시하되, 변동후 라인이 무변동으로 지속되고 있을때에는 마지막봉(현재봉)에 무변동으로 지속된 봉의 갯수를 표시되게 하여야한다
답변완료
수식문의
안녕하세요?
94210 번을 아래와 같이 살짝 변형하고 싶습니다.
* 매수신호 또는 매도신호가 나오면 그 봉 이후, n(10)봉까지만 지표값을 아래처럼 그리고, n봉이 지나면 지표값은 0값을 갖습니다.
즉, 매수신호와 매도신호가 모두 false 인 상태에서 n(10)봉이 지나면 지표값은 0 값을 갖는데, 이때, 지표의 색은 얇은 검정색입니다. 즉, 기존의 파란색/빨간색의 두께는 3으로 설정하고, 새로 나오는 0값을 갖는 검정색의 두께는 0 입니다.
이 내용만 추가되고 나머지는 동일합니다.
단, 이번에는 테스트용 신호를 아래와 같이 바꿉니다.
메수신호 = 60이평 < 5이평과 20이평 && crossup(5이평, 20이평);
메도신호 = 60이평 > 5이평과 20이평 && crossDown(5이평, 20이평);
//////////////////////////////////////////////////////////////
아래는 94210번과 그 답변을 복사했습니다.
안녕하세요
예스스탁입니다.
var :macdv(0),macdsig(0),macdosc(0),매수신호(False),매도신호(False);
var : t(0),p0(0),q0(0),r(0);
MACDv = MACD(12,26);
MACDsig = ema(MACDv,9);
macdosc = MACDv-ema(MACDv,9);
매수신호 = MACDv > 0 && macdosc > macdosc[1];
매도신호 = MACDv < 0 && macdosc < macdosc[1];
if 매수신호 Then
{
t = 1;
p0 = c;
r = 0;
}
Else if 매도신호 Then
{
t = -1;
q0 = c;
r = 0;
}
Else
{
if t == 1 Then
r = (c-p0)/p0*100;
if t == -1 Then
r = (c-q0)/q0*100;
}
Plot1(r,"r",IFf(t==1,Blue,Red));
즐거운 하루되세요
> 에구머니 님이 쓴 글입니다.
> 제목 : 수식 문의
> 안녕하세요?
매수신호가 발생한 봉의 종가를 p0로 기억합니다.
그 다음봉부터 종가가 p0 대비 몇 % 오르거나 내렸는지를 파란색으로 지표로 나타냅니다.
새롭게 매도신호가 나오기 전까지 계속 나타냅니다. 매도신호가 나오면 파란색 지표는 그리는 것을 멈춥니다.
매도신호가 나오면 매도신호가 발생한 봉의 종가를 q0로 기억합니다.
그 다음봉부터 종가가 q0 대비 몇 % 오르거나 내렸는지를 빨간색으로 지표로 나타냅니다.
새로 매수신호가 나오기 전까지 계속 나타냅니다. 새로 매수 신호가 뜨면 기존의 빨간색 지표는 그리는 것을 멈춥니다.
주의사항: 매수신호가 나온 후, 매도 신호가 아닌 매수신호가 또 나올 수 있습니다.
이 경우, 새로운 매수신호가 나온 것을 기준으로 합니다.
물론, 10일 연속 매수신호가 나올 수도 있는데, 이 경우도 마찬가지로 p0 값이 매일 바뀌면서 매일 새롭게 시작합니다.
테스트용으로:
MACDv = MACD(12,26);
MACDsig = ema(MACDv,9);
macdosc = MACDv-ema(MACDv,9);
매수신호 = MACDv > 0 && macdosc > macdosc[1];
매도신호 = MACDv < 0 && macdosc < macdosc[1];
감사합니다.
답변완료
지표작성부탁드립니다
사용지표: 붙임1과 붙임 2지표
지표식 : 붙임1(트렌드)지표 상단선이 붙임2(박스권)지표 상단선 보다 위에 있으면
차트바탕이 노란색으로 표시되는 지표식 부탁합니다
붙임: 1. 트렌드지표
input : period(10),multiplier(3);
var : src(0), AtrV(0),upperBand(0),lowerBand(0), prevLowerBand(0), prevUpperBand(0);
var : prevSuperTrend(0), direction(0),alpha(0),source(0),SuperTrend(C);
if CurrentBar > 1 Then
{
src = (H+L)/2;
alpha = 1 / period ;
source = max(high - low, abs(high - close[1]), abs(low - close[1]));
ATrV = alpha * source + (1 - alpha) * ATrV[1]; //지수가중이평방식
//ATrV = ma(source,AtrPeriod); //단순이평방식
upperBand = src + multiplier * AtrV;
lowerBand = src - multiplier * AtrV;
prevLowerBand = lowerBand[1];
prevUpperBand = upperBand[1];
if lowerBand > prevLowerBand or close[1] < prevLowerBand Then
lowerBand = lowerBand;
Else
lowerBand = prevLowerBand;
if upperBand < prevUpperBand or close[1] > prevUpperBand Then
upperBand = upperBand;
Else
upperBand = prevUpperBand;
if C > UpperBand Then
direction = 1;
if C < LowerBand Then
direction = -1;
if direction == 1 Then
SuperTrend = lowerband;
Else
SuperTrend = upperband;
Plot1(SuperTrend,"SuperTrend",IFF(direction==1,Red,Blue));
}
2. 박스권 지표
input : 기간(45),R(2);
var : TOP(0),LO(0),DOUBLE(0),idx(0);
TOP = HIGHEST(H,기간);
LO = LOWEST(L,기간);
if H > TOP[1] Then
{
DOUBLE = H;
idx = 0;
}
Else
{
if DOUBLE > 0 Then
idx = idx+1;
}
if idx == 기간-R Then
{
var1 = DOUBLE;
Var2 = LO;
}
Plot1(var1);
plot2(Var2);
답변완료
수정부탁드립니다.
안녕하세요
아래 수식은 0.02 를 넘기게 되면 색상이 기존의 색상과 반대가 되게 수정부탁 드린 수식인데
챠트에 대입하여보니 기존의 수식과 똑같이 나오고 있습니다.
다시한번 확인 부탁드립니다.(94235 번 참조)
var :macdv(0),macdsig(0),macdosc(0),매수신호(False),매도신호(False),value(0.02);
var : t(0),p0(0),q0(0),r(0);
MACDv = MACD(12,26);
MACDsig = ema(MACDv,9);
macdosc = MACDv-ema(MACDv,9);
매수신호 = MACDv > 0 && macdosc > macdosc[1];
매도신호 = MACDv < 0 && macdosc < macdosc[1];
if 매수신호 Then
{
t = 1;
p0 = c;
r = 0;
}
Else if 매도신호 Then
{
t = -1;
q0 = c;
r = 0;
}
Else
{
if t == 1 Then
r = (c-p0)/p0*100;
if t == -1 Then
r = (c-q0)/q0*100;
}
Plot1(r,"r",IFf(t==1,iff(r<= value,Red,blue),iff(r >= -value,Blue,Red)));
답변완료
조건검색 도와주세요~
항상 빠르고 정확한 답변 감사드립니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
안녕하세요
예스스탁입니다.
올리신 내용은 키움수식 내용을 예스랭귀지 종목검색식으로 변환하고
해당 조건이 30일 이내 1회이상 발생한 종목을 찾게 변환해 드립니다.
var :a(0),b(0),a1(False),a2(False),a3(False),d(False);
A=ma(c,5);
B=A[1];
a1 = A/B*100 < 100 ;
a2 = c < ma(c,5) and c > ma(c,20) and o > c ;
Condition1 = c[3]*1.29 < c[2] and c[2] > c and o[2] < c and Money[2] > 5500000000;
a3 = CountIf(Condition1==true,15) >= 1;
d = a1 and a2 and a3 ;
if CountIf(d==true,30) >= 1 Then
Find(1);
즐거운 하루되세요
> 마을 님이 쓴 글입니다.
> 제목 : 수식변경 부탁드립니다.
> 아래 수식을 한번에 30일치를 종목검색 할 수 있게 변경 부탁드립니다.
*** 8봉내에서 상한가가 발생한 종목 중(a3) 에서 a1 과 a2 조건을 동시에 만족하는 첫번째 조건만을 찾는 검색입니다. (즉, 상한가 발생후 a1 과 a2를 만족하는 것이 4봉째, 5번째, 6번째 봉에서 발생하더라도 첫번째 만족한 4봉째만 검색이 되도록 하고 싶습니다.
countsince 함수를 사용하였는데, 수식에 문제가 있다면 변경해주세요.)
A=avg(c,5);
B=A(1);
a1 = A/B*100 < 100 ;
a2 = c < ma(c,5,단순) and c > ma(c,20,단순) and o > c ;
a3 = (c(3)*1.29 < c(2) and c(2) > c and o(2) < c and 거래대금(2) > 5500) or
(c(4)*1.29 < c(3) and c(3) > c and o(3) < c and 거래대금(3) > 5500 ) or
(c(5)*1.29 < c(4) and c(4) > c and o(4) < c and 거래대금(4) > 5500 ) or
(c(6)*1.29 < c(5) and c(5) > c and o(5) < c and 거래대금(5) > 5500 ) or
(c(7)*1.29 < c(6) and c(6) > c and o(6) < c and 거래대금(6) > 5500 ) or
(c(8)*1.29 < c(7) and c(7) > c and o(7) < c and 거래대금(7) > 5500 ) or
(c(9)*1.29 < c(8) and c(8) > c and o(8) < c and 거래대금(8) > 5500 ) or
(c(10)*1.29 < c(9) and c(9) > c and o(9) < c and 거래대금(9) > 5500) or
(c(11)*1.29 < c(10) and c(10) > c and o(10) < c and 거래대금(10) > 5500) or
(c(12)*1.29 < c(11) and c(11) > c and o(11) < c and 거래대금(11) > 5500) or
(c(13)*1.29 < c(12) and c(12) > c and o(12) < c and 거래대금(12) > 5500) or
(c(14)*1.29 < c(13) and c(13) > c and o(13) < c and 거래대금(13) > 5500) or
(c(15)*1.29 < c(14) and c(14) > c and o(14) < c and 거래대금(14) > 5500) ;
d = a1 and a2 and a3 ;
cnt = countsince(date!=date(1), d)==1 ;
cnt && !cnt(1)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
위와 같은 답변을 받았습니다.
해당 조건이 30일 이내 1회이상 발생한 종목을 찾게 변환해 드립니다.
---> 이 부분이 의미가 전달이 잘 못 된 것 같습니다.
30일 이내에서 가장 처음 조건을 만족한 조건을 찾는 것으로 변경하고 싶습니다.
예를 들어 9월 1일 , 9월 4일, 9월 8일 이렇게 3번 조건을 만족했다면, 가장 처음 만족한 9월 1일 조건만 찾으면 됩니다.
그래서 아래 부분을
a3 = CountIf(Condition1==true,15) == 1;
로 수정을 하면 되는 것이죠??
여기서 3가지 질문이 있습니다.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
질문1 ) 수식을 보면, 29%이상 상승한 봉 (이하 '기준봉'이라 부르겠습니다.) 기준봉의 시가와 종가의 범위내에 오늘 종가가 형성된 것을 찾도록 되어 있습니다.
그런데, 기준봉의 종가 위나 시가 이하에 있는 것이 검색이 됩니다.
예를 들어, 7월 2일에 스튜디오드래곤 이라는 종목이 검색이 되는데, 이는 6월 19일 기준봉의 시가보다 아래에 있는 종목이라 검색이 되면 안됩니다.
어느 부분을 수정을 하면 될까요?
질문2 ) 7월 2일 롯데이노베이트 종목이 검색됩니다.
해당 종목도 조건에는 만족하지만, 기준봉이 뜨고 가장처음 조건을 만족한 것이 아닙니다.
해당 종목은 6월 28일에 처음 조건을 만족한 것입니다.
처음 문의드린 키움조거식을 수식으로 그대로 복사해서 만들면 6월 28일에 화살표가 뜨는데, 조건식으로 만들면 6월 28일에는 검색이 안되고 7월 2일에 검색이 됩니다.
어디서 잘못된 것일까요?
질무3) 시가총액 3천억 이상이라는 조건도 추가 가능할까요?
혹시 제 문의사항이 두서가 없으면 다시 정리해서 올리겠습니다.