예스스탁
예스스탁 답변
2024-08-22 13:15:33
안녕하세요
예스스탁입니다.
1
if CrossUp(c,BBup) Then
{
#종가가 볼밴상단을 돌파한 봉이면
}
else if CrossDown(c,BBdn) Then
{
#종가가 볼밴하단을 이탈한 봉이면
}
Else #위 2가기 조건이 만족한 봉은 아니고
{
if T == 1 Then
{
#최근 볼밴상단을 돌파했다면
}
if T == -1 Then
{
#최근 볼밴하단을 돌파했다면
}
}
봉을 3가지 케이스로 구분한 경우입니다.
종가가 볼밴상단을 돌파한 봉이거나
종가가 볼밴하단을 이탈한 봉이거나
위 2가지 경우가 아닌경우입니다.
2
pp = Floor((hh-S)/(PriceScale*틱단위));
S는 종가가 볼밴상단을 돌파한 봉의 종가이고
hh는 종가가 볼밴상단을 돌파한 봉 이후에 최고가를 저장하는 변수입니다.
priceScale는 차트종목의 1틱의 값입니다.
틱단위가 10이므로 PriceScale*틱단위은 10틱값입니다.
종가가 볼밴상단을 돌파한 이후에 최고수익(HH-C)을 계산하고
해당 최고수익이 10틱 단위로 최고수익틱수를 표시하는 내용입니다.
즐거운 하루되세요
> yamu 님이 쓴 글입니다.
> 제목 : 수식 이해 도와주세요~
> 수식 공부하다가 이해가 잘 안가서 질문 좀 드리겠습니다.
수식 내용은 볼밴 상단과 하단 돌파와 10틱 단위로 차트 표시에 관한 내용입니다.
질문은 수식에 !!!! 표시로 작성하였습니다.
매번 감사드립니다
input : Period(20),dv(0.4);
var : 틱단위(10),글자크기1(15),글자크기2(11);
var : BBup(0),BBmd(0),BBdn(0);
var : TX(0),T(0),PP(0),TX1(0);
var : hh(0),ll(0),S(0);
BBup = BollBandUp(Period,dv);
BBmd = ma(c,Period);
BBdn = BollBandDown(Period,dv);
if CrossUp(c,BBup) Then
{
T = 1;
S = C;
tx = Text_New(sDate,sTime,L,"▲");
Text_SetStyle(tx,2,0);
Text_SetSize(tx,18);
Text_SetColor(tx,Red);
hh = 0;
Plot1(bbup,"bb",Tomato);
}
else if CrossDown(c,BBdn) Then
{
T = -1;
S = C;
tx = Text_New(sDate,sTime,H,"▼");
Text_SetStyle(tx,2,1);
Text_SetSize(tx,18);
Text_SetColor(tx,Turquoise);
ll = 0;
Plot2(bbdn,"bb",LightCyan);
}
Else
!!!!!! if~ else if ~ else 문법은 if 가 false 일때 세분화 작업으로 알고있습니다. else if 에서 크로스 다운은 이해가 가는데 마지막 else 는 어떤 경우를 말하는건지 모르겠습니다.
크로스 업과 크로스 다운도 아닌 경우를 말하는건가요? 그런데 else 이하를 보면 각각 크로스업일경우 다운일경우로 다시 나뉘는거 보면 그런거 같지도 않아 보입니다 헷갈리네요.
{
if T == 1 Then
{
if hh == 0 or (hh > 0 and h > hh) Then
hh = h;
pp = Floor((hh-S)/(PriceScale*틱단위));
!!!!!! 호가단위에 틱수를 곱해서 총 가격을 나타내는거 같습니다. hh는 돌파봉 발생 후 높은 h값을 갱신하는거고 그 값에서 돌파 당시의 종가를 뺀게 hh-s 이 부분 맞나요?~
pp 에 해당하는 내용을 해석해 주셨으면 감사하겠습니다
if pp > pp[1] Then
{
tx = Text_New(sdate,stime,H+PriceScale*3,NumToStr(pp*틱단위,0)+"틱");
!!!!!!"if pp> pp[1] then" , "pp * 틱단위" 의 의미가 궁금합니다.
Text_SetStyle(tx,2,1);
Text_SetColor(tx,White);
Text_SetSize(tx,글자크기1);
}
}
if T == -1 Then
{
if ll == 0 or (ll > 0 and l < ll) Then
ll = l;
pp = Floor((S-ll)/(PriceScale*틱단위));
if pp > pp[1] Then
{
tx = Text_New(sdate,stime,L-PriceScale*3,NumToStr(pp*틱단위,0)+"틱");
Text_SetStyle(tx,2,0);
Text_SetSize(tx,글자크기2);
}
}
}