답변완료
안녕하세요 수식문의 부탁드립니다^^
아래의 수식으로 종목검색을 하고 있는데요
지표수식으로 나타내고 싶습니다 그냥 plot는 안돼 더라구요 ㅠㅠ
잘부탁 드리겠습니다 ㅠㅠ
input : 기간1(5),기간2(10),기간3(20),기간4(60);
input : af(0.02),maxaf(0.2);
input : af2(0.04),maxaf2(0.2);
var : A1(0),A2(0),A3(0),A4(0),B(0);
var1 = (highest(high,기간1)+lowest(low,기간1))/2;
var2 = (highest(high,기간2)+lowest(low,기간2))/2;
var3 = (highest(high,기간3)+lowest(low,기간3))/2;
var4 = (highest(high,기간4)+lowest(low,기간4))/2;
Var5 = Sar(af,maxaf);
Var6 = Sar(af2,maxaf2);
if CrossUp(Var3,Var4) Then
A1 = c;
if CrossUp(Var1,Var2) Then
A2 = c;
if CrossDown(c,Var5) Then
A3 = h;
if CrossDown(c,Var6) Then
A4 = h;
B = IFf(A1 <=C,1,0) + IFf(A2 <=C,1,0) + IFf(A3 <=C,1,0) + IFf(A4 <=C,1,0);
if B == 4 Then
Find(1);
2024-08-16
794
글번호 182578
지표
답변완료
지난 수식 보완 질문 드립니다
안녕하세요
지난번에 추세선 관련 지표 문의드렸었고 아래는 작성한 수식입니다
var : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TX(0);
if CountIf(H >= L*1.13,n) >= 1 Then
{
#"최근봉"만 표시되게 하기위해 "직전에서 출력된 추세선과 텍스트는 삭제"
TL_Delete(TL);
//Text_Delete(TX);
#n개봉 최고가와 최고가위치(몇봉전인지) 계산
#n개봉 최저가와 최저가위치(몇봉전인지) 계산
hh = 0;
hb = 0;
ll = 0;
lb = 0;
For cnt = 0 to n-1
{
if hh == 0 or (hh > 0 and h[cnt] > hh) Then
{
hh = h[cnt];
hb = cnt;
}
if ll == 0 or (ll > 0 and l[cnt] < ll) Then
{
ll = l[cnt];
lb = cnt;
}
}
if (lb > hb and hh >= ll*1.35) or (lb < hb and ll <= hh*0.90) Then
{
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
#최고가가 더 가까우면 빨강 아니면 파랑
if lb > hb Then
{
TL_SetColor(TL,Pink);
TL_SetStyle(tl,2);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetSize(tl,1);
}
TX = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetEndVal(TL),NumToStr(abs(hb-lb),0));
}}
#추세선값 상향돌파
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,stime);
if CrossUp(c,Value1) Then
plot3(high,"tlcross",LightGreen,Def,2);
}
수식 해석은
20봉안에 봉의 총 길이가 13% 이상인 봉이 한개 이상이어야 하고,
그 기간 동안의 최저점과 최고점을 연결해서, 우상향이면 pink,우하향이면 lightblue로 표현을 한다. 그리고 우상향추세선은 저점 대비 고점이 35% 이상일때고 반대 경우는 고점대비 저점이 10% 떨어져야 한다.
질문1) TL_Delete(TL); 관련된 질문인데요
최근봉만 남기고 추세선을 지우는 조건을 on/off 해가며 검토를 해보고 있는데 일부 종목에서는 최근께 아예 안나오는 경우가 있으며 (스샷에 첨부한 오성첨단 같은경우) on/off 했을때 값이 다르게 나오는 경우도 있습니다. 안나오는건 최근 20봉 이내의 봉이 아니기 때문인거 같은데 맞나요??
질문2)
for 문에서는 0에서 19봉 까지 (총 20봉) 전봉으로 하나씩 이동하면서 고가 저가를 비교하고 봉 번호를 리턴하는거 같은데요
if hh == 0 or (hh > 0 and h[cnt] > hh)
제가 이해한 바로는 0봉을 기준으로 고가 저가를 비교하는데
예를 들어 고가를 비교할때 1봉전이 0봉고가 보다 높지 않으면 패스 하고 2봉전에서 높은게 나오면 그봉이 h[1] 이 되는건가요? hb 카운트가 lb보다 많으면 우하향 추세선이 나오고 그 반대는 우상향이 나오는거죠? 그리고 마지막에 text는 두 봉의 갯수 차이를 나타내는거고요.
뒤에 나오는
if (lb > hb and hh >= ll*1.35) or (lb < hb and ll <= hh*0.90) Then
{
TL=TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
에서 lb>hb 일때는 우상향 추세선이라서
TL=TL_New(sDate[lb],sTime[lb],ll,sDate[hb],sTime[hb],hh);
이렇게 순서가 바껴야되는건 아닌가요?~
cnt 는 0부터라고 이미 선언이 돼있는데 hh==0 or 의 의미를 잘 모르겠습니다
그리고 hb,lb 는 봉 번호 값을 의미하는거 같고 해석해보고 싶어서 plot해봤는데 0부터 cnt 에 대입하는거면 뒤로(과거로)갈수록 봉 번호가 증가해야되는건 아닌가요?~
질문3)
최저점 최고점을 연결하고 봉갯수만 표현이 되는데
n (20봉) 의 범위도 알 수 있는 방법이 있을까요? 어디서 부터 어디까지 인지 현차트나 지표영역에 표시가 되게끔 하고싶습니다
질문4)
마지막에 추세선 상향돌파식에 대해서요
종가가 추세선을 크로스업 하면 고가를 플롯 하는건데 차트에 적용해보면 무얼 나타내려고 하는건지 이해가 가질 않습니다 (1번 스샷. 초록색 선)
이전 봉 종가가 추세선보다 아래에 있다가 다음봉의 종가가 선보다 위에 있으면 적용이 하라는 의미가 아닌가요??~
질문4) 코드 에디터에서 행 숫자표시된 부분에 왼쪽을 클릭하면 원이 표시되면서 그 행이 전체 선택이 되는데 어떤 기능이 있는걸까요??
번거로우시겠지만 부탁드립니다감사합니다
2024-08-19
854
글번호 182576
지표
답변완료
예스랭귀지로 변환 부탁드려요
키움지표수식인데 예스랭귀지로 변환부탁드립니다.
A=avg(C,5);
B=avg(C,20);
D=avg(C,60);
D1=(A+B+D)/3;
A1=(highest(high,9)+lowest(low,9))/2;
B1=(highest(high,26)+lowest(low,26))/2;
B2=(A1+B1)/2;
A3=RSI(9)-50;
B3=CMO(12)*0.5;
B4=A3+B3;
B5=EAVG(C,120)
(CROSSUP(B2,D1) OR CROSSUP(D1,B5) OR CROSSUP(B2,B5))
즐거운 하루 보내세요~
2024-08-16
999
글번호 182574
종목검색