예스스탁
예스스탁 답변
2023-05-30 10:30:13
안녕하세요
예스스탁입니다.
countSince(A,B)는 예스랭귀지에서는 제공되지 않는 함수입니다.
A조건만 만족 후 B조건이 만족한 횟수를 리턴합니다.
1
input : 기간(20),k(10);
var : m5(0),m112(0),m224(0),m448(0);
var : ll(0),hh(0),nh(0),dah(0),bu(0),idx(0);
var : 다바스업(False),cnt(-1);
M5 = ema(C,5);
M112 = ema(C,112);
M224 = ema(C,224);
M448 = ema(C,448);
LL=Lowest(L[1],기간);
HH=Highest(H[1],기간);
if H > HH Then
{
NH = H;
idx = 0;
}
Else
{
if NH > 0 Then
{
idx = idx+1;
if idx == 기간-k Then
DaH = NH;
}
}
Bu = BollBandUp(90,2);
다바스업 = CrossUp(M5,DaH);
if CrossUp(C,Bu) Then
Cnt = 0;
if cnt >= 0 and 다바스업 Then
cnt = cnt+1;
if cnt == 1 and cnt != cnt[1] Then
Find(1);
2
input : 기간(20),k(10),횟수(20);
var : m33(0),m112(0),m224(0),m448(0);
var : mcd(0),mcds(0),ll(0),hh(0),nl(0),idx(-1);
var : Dah(0),Dad(0);
var : Mcd업위치(False),Mcd다바스업(False),Cnt(-1);
M33 = Ema(C,33);
M112 = Ema(C,112);
M224 = Ema(C,224);
M448 = Ema(C,448);
Mcd = Macd(33, 112);
Mcds = Ema(Mcd,9);
LL = Lowest(Mcd, 기간);
HH = Highest(Mcd, 기간);
if Mcd < LL[1] Then
{
NL = Mcd;
idx = 0;
}
Else
{
if idx >= 0 Then
{
idx = idx+1;
if idx == 기간-k Then
{
Dah = HH;
DaD = NL;
}
}
}
Mcd업위치 = DaH > Mcd && DaD > Mcd && CrossUp(Mcd, Mcds);
Mcd다바스업 = CountIf(CrossUp(Mcd,DaH),횟수)>=1;
if Mcd업위치 Then
Cnt = 0;
if Mcd다바스업 Then
cnt = cnt+1;
if cnt == 1 and cnt != cnt[1] Then
Find(1);
즐거운 하루되세요
> 손느린주식 님이 쓴 글입니다.
> 제목 : 수식 변환 부탁드립니다.
> 안녕하세요. 키움에서 쓰고 있는 수식 2 가지를 신호검색으로 변환 부탁 드리겠습니다.
1.
M5 = eavg(C,5);
M112 = eavg(C,112);
M224 = eavg(C,224);
M448 = eavg(C,448);
LL=Lowest(L(1),기간);
HH=Highest(H(1),기간);
NH=valuewhen(1,H>HH(1),H);
DaH = Valuewhen(1,barsSince(H>HH(1))==(기간 - k), NH);
Bu = BBandsUp(90,2);
다바스업 = CrossUp(M5,DaH);
Cnt = CountSince(CrossUp(C,Bu), 다바스업)==1;
Cnt && !Cnt(1)
기간 20
k 10
2.
M33 = eavg(C,33);
M112 = eavg(C,112);
M224 = eavg(C,224);
M448 = eavg(C,448);
Mcd = Macd(33, 112);
Mcds = eavg(Mcd,9);
LL = Lowest(Mcd, 기간);
HH = Highest(Mcd, 기간);
NL = Valuewhen(1, Mcd < LL(1), Mcd);
DaH = Valuewhen(1,BarsSince(Mcd<LL(1))==(기간 - k) ,HH);
DaD = Valuewhen(1,BarsSince(Mcd<LL(1))==(기간 - k) ,NL);
Mcd업위치 = DaH > Mcd && DaD > Mcd && CrossUp(Mcd, Mcds);
Mcd다바스업 = Sum(CrossUp(Mcd,DaH),횟수)>=1;
Cnt = CountSince(Mcd업위치, Mcd다바스업)==1;
Cnt && !Cnt(1)
기간 20
K 10
횟수 20
부탁 드립니다. 감사합니다.
키움의 countSince의 표현 방법이 다양한거 같은데 설명서?를 봐도 잘 이해가 안가더라구요 정의나 개념을 조금만 설명 부탁드려도 될까요?