예스스탁
예스스탁 답변
2024-09-12 13:33:07
안녕하세요
예스스탁입니다.
봉갯수 간격제한은 abs(hb-lb) <= 9 조건에 따라
지정색으로 표시되고 있는 것 같습니다.어느 부분이 문제인지 모르겠습니다.
input : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TXn(0),txper(0),TXpaa(0),nline(0),tl2(0);
var : txx(0),TXper1(0);
var : hd(0),ht(0),hd1(0),ht1(0),hv(0),hv1(0), LD(0), LT(0), LV (0), LD1(0), LT1(0),LV1(0);
Array : TLH[20](0),TLL[20](0);
if CountIf(H >= L*1.08,n) >= 1 Then
{
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 (hB < lB AND ll *1.13 <HH and (hh != Var3 and ll != Var4) ) OR
(hB > lB AND LL>HH*0.70 and (hh != Var3 and ll != Var4) ) Then
{
hd = sDate[hb];
ht = sTime[hb];
hv = hh;
hd1 = hd[1];
ht1 = ht[1];
hv1 = hv[1];
if hv1 > 0 Then
{
For cnt = 19 DownTo 1
{
TLH[cnt] = TLH[cnt-1];
}
TL_SetExtRight(TLH[5],False);
TL_SetSize(TLH[0],0);
TLH[0] = TL_new(hd1,ht1,hv1,hd,ht,hv);
TL_SetExtRight(TLH[0],True);
TL_SetSize(TLH[0],2);
IF (HV > HV1*0.9 AND HV < HV1*1.09) OR (HV1 > HV*0.9 AND HV1 <HV*1.09) TheN
TL_SetColoR(TLH[0],LightGreen);
}
LD = sDatE[LB];
LT = sTimE[LB];
LV = LL;
LD1 = LD[1];
LT1 = LT[1];
LV1 = LV[1];
IF LV1 > 0 TheN
{
For cnt = 19 DownTo 1
{
TLL[cnt] = TLL[cnt-1];
}
TL_SetExtRighT(TLL[5],FalsE);
TL_SetSize(TLL[0],0);
TLL[0] = TL_NEW(LD1,LT1,LV1,LD,LT,LV);
TL_SetExtRighT(TLL[0],TRUE);
TL_SetColoR(TLL[0],Yellow);
TL_SetSize(TLL[0],2);
}
VAR3 = hh;
VAR4 = ll;
VAR1 = Index[lb];
VAR2 = VAR1[1];
if VAR2 > 0 Then
{
VAR5 = 0;
For cnt = Index-var1 to Index-var2
{
if Var5 == 0 or (Var5 > 0 and h[cnt] > Var5) Then
Var5 = h[cnt];
}
}
if var1 >= Var2 Then
{
TL = TL_New(sDate[lb],sTime[lb],ll,sDate[hb],sTime[hb],hh);
TL_SetDrawMode(tl,1);
TL_SetColoR(TL,Cyan);
TXper= text_new(sDate[lb],sTime[lb],ll,"★");
Text_SetStyle(txper,2,0);
Text_SetSizE(TXPER,18);
Text_SetColor(txper,MagentA);
TXpaa= text_new(sDate[HB],sTime[HB],HH,"★");
Text_SetStyle(TXPAA,2,0);
Text_SetSizE(TXPAA,15);
Text_SetColor(tXPAA,LightGreen);
}
}
}
#우상향, 우하향 색상 구분
if lb > hb Then
{
TL_SetColor(TL,LIGHTReD);
TL_SetStyle(tl,2);
TL_SetDrawMode(tl,1);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetStyle(tl,2);
}
#봉갯수 간격 제한
if (abs(hb-lb) <= 9) Then
{
TL_SetColor(tl,LightGreen);
TL_SetStyle(tl,3);
}
If VAR5 > 0 Then
{
PLOT35(VAR5,"INTER TL HH",Tomato);
IF CrossUP(C,Var5) Then PLOT34(C,"CROSS구간고가",CyaN);
}
Condition1 = False;
For cnt = 0 to 3
{
if TL_GetValue(TLH[cnt],sDate,stime) > 0 then
{
value1 = TL_GetValue(TLH[cnt],sDate,stime);
value2 = TL_GetValue(TLH[cnt],sDate[1],stime[1]);
if O > value1 and O[1] <= Value2 Then
Condition1 = true;
}
}
if Condition1 == true then
plot11(high,"tlcross",Yellow);
풍성한 한가위 되시길 바랍니다.
> yamu 님이 쓴 글입니다.
> 제목 : 수식 추가 문의 드립니다
> 안녕하세요
예전에 추세선 관련해서 수식 작성해주셨는데요
TLH 와 TLL 선을 5개까지만 EXTRIGHT 하는 조건인데요
추세선을 더 추가 하는경우 수식을 단순화 하기 위해서 "배열 변수"로 처리 할 수 있을까요? 그리고 가장 최근 추세선만 SETSIZE 2로 하고 싶을땐 어떻게 작성을 하면 될까요
질문2) 그리고 마지막 문단에 크로스업 하는 조건들도 매 추세선 마다 나열을 했는데요 이 부분도 배열로 단순화 할 수 있을까요?? 감사합니다
if TL_GetValue(TLH,sDate,stime) > 0 then
{
value1 = TL_GetValue(TLH,sDate,stime);
if CrossUp(O,Value1) Then plot11(high,"tlcross1",Yellow);
이하 반복~
질문 3)
HB 와 LB 사이의 봉갯수 간격 제한 하는 부분이 잘 적용이 안되는데 검토를 좀 해주실 수 있을까요? 가령 9개 이하만 표시하라고 했을때 9개 이상인것도 표현이 되고 있습니다. 수식 구조상에 문제가 있는건가요?
#봉갯수 간격 제한
if (abs(hb-lb) <= 9) Then
{
TL_SetColor(tl,LightGreen);
TL_SetStyle(tl,3);
}
수식은 아래와 같습니다
input : n(20);
var : cnt(0),hh(0),hb(0),ll(0),lb(0),TL(0),TXn(0),txper(0),TXpaa(0),nline(0),tl2(0);
var : txx(0),TXper1(0);
var : hd(0),ht(0),hd1(0),ht1(0),hv(0),hv1(0), LD(0), LT(0), LV (0), LD1(0), LT1(0),LV1(0);
var: TLH(0),TLH1(0),TLH2(0),TLH3(0),TLH4(0),TLH5(0), TLL(0),TLL1(0),TLL2(0),TLL3(0),TLL4(0),TLL5(0);
if CountIf(H >= L*1.08,n) >= 1 Then
{
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 (hB < lB AND ll *1.13 <HH and (hh != Var3 and ll != Var4) ) OR
(hB > lB AND LL>HH*0.70 and (hh != Var3 and ll != Var4) ) Then
{
hd = sDate[hb];
ht = sTime[hb];
hv = hh;
hd1 = hd[1];
ht1 = ht[1];
hv1 = hv[1];
if hv1 > 0 Then
{
TLH1 = TLH[1];
TLH2 = TLH1[1];
TLH3 = TLH2[1];
TLH4 = TLH3[1];
TLH5= TLH4[1];
TL_SetExtRight(TLH5,False);
TLH = TL_new(hd1,ht1,hv1,hd,ht,hv);
TL_SetExtRight(TLH,True);
IF (HV > HV1*0.9 AND HV < HV1*1.09) OR (HV1 > HV*0.9 AND HV1 <HV*1.09) TheN
TL_SetColoR(TLH,LightGreen);
}
LD = sDatE[LB];
LT = sTimE[LB];
LV = LL;
LD1 = LD[1];
LT1 = LT[1];
LV1 = LV[1];
IF LV1 > 0 TheN
{
TLL1 = TLL[1];
TLL2 = TLL1[1];
TLL3 = TLL2[1];
TLL4 = TLL3[1];
TLL5= TLL4[1];
TL_SetExtRighT(TLL5,FalsE);
TLL= TL_NEW(LD1,LT1,LV1,LD,LT,LV);
TL_SetExtRighT(TLL,TRUE);
TL_SetColoR(TLL,Yellow);
}
VAR3 = hh;
VAR4 = ll;
VAR1 = Index[lb];
VAR2 = VAR1[1];
if VAR2 > 0 Then
{
VAR5 = 0;
For cnt = Index-var1 to Index-var2
{
if Var5 == 0 or (Var5 > 0 and h[cnt] > Var5) Then
Var5 = h[cnt];
}
}
if var1 >= Var2 Then
{
TL = TL_New(sDate[lb],sTime[lb],ll,sDate[hb],sTime[hb],hh);
TL_SetDrawMode(tl,1); TL_SetColoR(TL,Cyan);
TXper= text_new(sDate[lb],sTime[lb],ll,"★");
Text_SetStyle(txper,2,0);
Text_SetSizE(TXPER,18);
Text_SetColor(txper,MagentA);
TXpaa= text_new(sDate[HB],sTime[HB],HH,"★");
Text_SetStyle(TXPAA,2,0);
Text_SetSizE(TXPAA,15);
Text_SetColor(tXPAA,LightGreen);
}
}
}
#우상향, 우하향 색상 구분
if lb > hb Then
{
TL_SetColor(TL,LIGHTReD);
TL_SetStyle(tl,2);
TL_SetDrawMode(tl,1);
}
Else
{
TL_SetColor(TL,LightBlue);
TL_SetStyle(tl,2);
}
#봉갯수 간격 제한
if (abs(hb-lb) <= 9) Then
{
TL_SetColor(tl,LightGreen);
TL_SetStyle(tl,3);
}
If VAR5 > 0 Then
{
PLOT35(VAR5,"INTER TL HH",Tomato);
IF CrossUP(C,Var5) Then PLOT34(C,"CROSS구간고가",CyaN);
}
if TL_GetValue(TLH,sDate,stime) > 0 then
{
value1 = TL_GetValue(TLH,sDate,stime);
if CrossUp(O,Value1) Then plot11(high,"tlcross1",Yellow);
}
if TL_GetValue(TLH1,sDate,stime) > 0 then
{
value2 = TL_GetValue(TLH,sDate,stime);
if CrossUp(O,Value2) Then plot22(high,"tlcross2",Red);
}
if TL_GetValue(TLH2,sDate,stime) > 0 then
{
value3 = TL_GetValue(TLH,sDate,stime);
if CrossUp(O,Value3) Then plot33(high,"tlcross3",LightGreen);
}
if TL_GetValue(TLH3,sDate,stime) > 0 then
{
value4 = TL_GetValue(TLH,sDate,stime);
if CrossUp(O,Value4) Then plot44(high,"tlcross4",Cyan);
}