예스스탁
예스스탁 답변
2024-08-29 12:48:20
> yamu 님이 쓴 글입니다.
> 제목 : 수식 보완 부탁합니다
> 답변 감사합니다
그런데 제가 의도하는것과는 달라서 다시 문의하겠습니다
제가 원하는건 단일 추세선의 시작점 끝점 간의 봉갯수가 아니라
그림처럼 2개의 개별적인 추세선의 각각의 시작점- 시작점 간의 봉갯수 조건도 만들 수 있는지 여쭤본겁니다. array를 써서 이전 추세선 참조하면 가능할까요??
상향추세선 일때는 시작점 사이가 10개 봉 이상일때 고점 갱신라인과 최고점에만 표시하기 2가지 경우로 하고 싶습니다. 그리고 하향추세선일때는 끝점-끝점 사이일때로 해주셨으면 감사하겠습니다
부탁드립니다
그리고 수식이 뭐가 잘못된건지 기간n 이 10일때와 20일때 지표가 다르게 나옵니다.
가장 기본조건이 n 기간내에 저가대비 고가가 10% 이상일때가 1번이상 나올때이고 (그 봉은 paintbar 로 표시했습니다) 조건에 충족하는데도 기간을 20으로 연장하면 안나오는 경우가 있네요...첨부파일 2번이 기간을 20으로 했을때, 3번파일이 10으로 했을때 입니다. 오렌지 선은 기간선입니다.
감사합니다
수식 :::::
var : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TXn(0),txper(0),nline(0),tl2(0);
var : txx(0);
if CountIf(H >= L*1.1,n) >= 1 Then
{
#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;
}
// Plot4(ll,"ll",LightGreen);
// TL2 = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
// TL_SetColor(tl2,Yellow);
}
// plot1(hh,"high",Magenta);
if (lb > hb and hh <= ll*1.25) or (lb < hb and ll >= hh*0.70) Then
{
// TL_Delete(TL);
// Text_Delete(TX);
//TL_Delete(TL1);
if (hb < lb and abs(hb-lb) <= 20) or (hb > lb and abs(hb-lb) <=20) Then
{
#상향,하향 일때 봉갯수 조건
TL = TL_New(sDate[hb],sTime[hb],hh,sDate[lb],sTime[lb],ll);
TL_SetDrawMode(tl,0);
TL_SetExtRight(tl,true);
}
nline = TL_New(sDate[n-1],sTime[n-1],hh,sDate[0],sTime[0],hh);
TL_SetDrawMode(nline,0);
TL_SetColor(nline,Tomato);
TL_SetSize(nline,1);
if lb > hb Then
{
TL_SetColor(TL,Red);
TL_SetStyle(tl,3);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetStyle(tl,2);
}
// if (lb > hb and hh >= ll * 1.3) Then TL_SetColor(tl,Yellow);
if (hb > lb and abs(hb-lb) <= 10) Then
{
TL_SetColor(tl,Yellow);
TXper= text_new(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetendVal(TL),NumToStr((hh-ll)/hh*100,0));
Text_SetStyle(txper,2,0);
}
TXn = Text_New(TL_GetEndDate(TL),TL_GetEndTime(TL),TL_GetendVal(TL),NumToStr(abs(hb-lb),0));
// Text_SetSize(tx,12);
}
}
if TL_GetValue(TL,sDate,stime) > 0 then
{
value1 = TL_GetValue(TL,sDate,sTime);
if h >= value1 and h[1] < value1 Then
{
txx = Text_New(sDate,sTime,l,"●");
Text_SetColor(txx,Lime);
Text_SetSize(txx,15);
Text_SetStyle(txx,2,0);
// Text_SetLocation(txx,sDate,sTime,h);
}
}