답변완료
박스 캔들 꼬리
input : 타주기분(1);
var : S1(0),D1(0),TM(0),TF(0),box(0);
var : oo(0),hh(0),ll(0),TL1(0),TL2(0),clr(0),ii(0);
Plot1(c);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%타주기분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 타주기분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 타주기분 > 1 and TM >= TM[1]+타주기분) or
(Bdate == Bdate[1] and 타주기분 == 1 and TM > TM[1]) Then
{
oo = O;
hh = H;
ll = L;
box = Box_New(sDate,sTime,oo,NextBarSdate,NextBarStime,c);
TL1 = TL_New(sDate,sTime,max(C,oo),sDate,sTime,hh);
TL2 = TL_New(sDate,sTime,min(C,oo),sDate,sTime,ll);
ii = 1;
}
Else
{
ii = ii +1;
if h > hh Then
hh = h;
if l < ll Then
ll = l;
var1 = Round(ii/2,1);
Box_SetEnd(box,sDate,sTime,C);
TL_SetBegin(TL1,sDate[var1],sTime[var1],max(c,oo));
TL_SetEnd(TL1,sDate[var1],sTime[var1],hh);
TL_SetBegin(TL2,sDate[var1],sTime[var1],min(c,oo));
TL_SetEnd(TL2,sDate[var1],sTime[var1],ll);
}
if C > oo Then
clr = Red;
else if C < oo Then
clr = Blue;
Else
clr = Green;
Box_SetColor(box,clr);
Box_SetSize(box,1);
Box_SetFill(box,true,255); #박스채움 투명도 설정 0(투명) ~ 255(불투명), 마지막 True 봉 뒤 배치
TL_SetStyle(TL1,5); # 윗꼬리 아랫꼬리 점선처리
TL_SetStyle(TL2,5); # 윗꼬리 아랫꼬리 점선처리
TL_SetColor(tl1,clr);
TL_SetColor(tl2,clr);
}
1), 윗꼬리 아랫꼬리를, equivolume 차트처럼 위 아래 끝까지 몸통과 동일 색의 박스로 연장 처리.
2), 수정한 1번 차트를, 봉 차트처럼 몸통 두께를 똑같이 하는 별도 수식. 감사합니다.
2023-05-04
1173
글번호 168700
지표
답변완료
수치표시좀 부탁 드립니다.
* 좋은 주말 됫십시요^^
* 아래 수식 에서 지그제그선이 나올때 수치가 나오게 수정 좀 부탁 드립니다.
마지막 선도 변하는 그대로 나오게 좀 부탁 드립니다.
<아래 수식>
input :Peodd(10),d색상두께(50),d두께c(1),긁씨크기d(10);
Var:상승색j(Red), 하락색j(LimE);
Var:JW(0),JWT(0),dTL5사각(0),dText1사각(0);
Var: h고11(0),h고12(0),h시간11(0),h시간12(0),H선TL1(0),H선TL(0),pvv(0),dTL(0),
h고21(0),h고22(0),h시간21(0),h시간22(0),hVlue11(0),hVlue12(0),
h고31(0),h고32(0),h시간31(0),h시간32(0);
Array:h고Val[20](0),L저val[20](0),h고Bar[20](0),L저Bar[20](0);
Array:Ldr[7](0),Ldfr[7](0);
var : Udbox(0),Udbox1(0);
Ldr[0] = 0;
Ldr[1] = 2;
Ldr[2] = 3.;
Ldr[3] = -1;
Ldr[4] = -2.;
Ldr[5] = 1;
Ldr[6] = 0.5;
For JW = 0 To 19
{
h고Bar[JW] = h고Bar[JW] + 1;
L저Bar[JW] = L저Bar[JW] + 1;
}
if crossup(c,highest(H,Peodd)[1]) Then
JWT = 1;
if CrossDown(c,Lowest(L,Peodd)[1]) Then
JWT = -1;
If JWT == -1 Then
{
If JWT[1] != -1 Then
{
For JW = 18 DownTo 0
{
L저val[JW+1] = L저val[JW];
L저Bar[JW+1] = L저Bar[JW];
//ZZ[j+1] = ZZ[j];
}
L저val[0] = L;
L저Bar[0] = 0;
//ZZ[0] = L;
h고11 = Date[h고Bar[0]];
h시간11 = stime[h고Bar[0]];
hVlue11 = h고Val[0];
h고12 = Date[L저Bar[0]];
h시간12 = stime[L저Bar[0]];
hVlue12 = L저val[0];
h고21 = Date[h고Bar[0]];
h시간21 = stime[h고Bar[0]];
h고22 = Date[0];
h시간22 = stime[0];
for JW = 0 to 6
{
Ldfr[JW] = L저val[1] + ((h고Val[0] - L저val[1]) * Ldr[JW]);
}
Box_SetEnd(Udbox,h고11,h시간11,hVlue11);
Udbox = box_new(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12);
Box_SetColor(Udbox,하락색j);
Box_SetFill(Udbox,true,d색상두께);
dTL5사각 = TL_New(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12);
TL_SetSize(dTL5사각,d두께c);
TL_SetColor(dTL5사각,Blue);
}
If L저val[0] > L Then
{
L저val[0] = L;
L저Bar[0] = 0;
//ZZ[0] = L;
h고12 = Date[L저Bar[0]];
h시간12 = stime[L저Bar[0]];
hVlue12 = L저val[0];
h고22 = Date[0];
h시간22 = stime[0];
// Box_SetEnd(Udbox,h고12,h시간12,hVlue12);
TL_SetEnd(dTL5사각,h고12,h시간12,hVlue12);
}
Box_SetEnd(Udbox,NextBarSdate,NextBarStime,hVlue12);
}
If JWT == 1 Then
{
If JWT[1] != 1 Then
{
For JW = 18 DownTo 0
{
h고Val[JW+1] = h고Val[JW];
h고Bar[JW+1] = h고Bar[JW];
//ZZ[j+1] = ZZ[j];
}
h고Val[0] = H;
h고Bar[0] = 0;
//ZZ[0] = H;
h고11 = Date[L저Bar[0]];
h시간11 = stime[L저Bar[0]];
hVlue11 = L저val[0];
h고12 = Date[h고Bar[0]];
h시간12 = stime[h고Bar[0]];
hVlue12 = h고Val[0];
h고31 = Date[L저Bar[0]];
h시간31 = stime[L저Bar[0]];
h고32 = Date[0];
h시간32 = stime[0];
for JW = 0 to 5
{
Ldfr[JW] = L저val[0] + ((h고Val[1] - L저val[0]) * Ldr[JW]);
}
Box_SetEnd(Udbox,h고11,h시간11,hVlue12);
Udbox = box_new(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12);
Box_SetColor(Udbox,상승색j);
Box_SetFill(Udbox,true,d색상두께);
dTL5사각 = TL_New(h고11,h시간11,hVlue11,h고12,h시간12,hVlue12);
TL_SetSize(dTL5사각,d두께c);
TL_SetColor(dTL5사각,Red);
}
If h고Val[0] < H Then
{
h고Val[0] = H;
h고Bar[0] = 0;
//ZZ[0] = H;
h고12 = Date[h고Bar[0]];
h시간12 = stime[h고Bar[0]];
hVlue12 = h고Val[0];
h고32 = Date[0];
h시간32 = stime[0];
// Box_SetEnd(Udbox,h고12,h시간12,hVlue12);
TL_SetEnd(dTL5사각,h고12,h시간12,hVlue12);
}
Box_SetEnd(Udbox,NextBarSdate,NextBarStime,hVlue12);
}
고맙습니다. 좋은 주말 되십시요.
2023-05-04
1291
글번호 168698
강조
답변완료
수식도움 부탁드립니다.
수고하십니다.
아래수식을 이용한 예스챠트에서는 지표가 출렁거리는데,
그림 아래와 같이 해당타주기분의 종가완성봉 기준으로 지표가 출력되도록 수정부탁드립니다.(그림참조)
감사합니다.
//=================
input : 분(NumericSimple),useClose(NumericSimple),length(NumericSimple),mult(NumericSimple);
var : ATrv(0),longStop(0),longStopprev(0),shortStop(0),shortStopPrev(0);
var : dir(0),dir1(0);
var : truehighv(0),TrueLowv(0),hsatr(0) ;
var : xClose(0),xOpen(0),xHigh(0),xLow(0);
var : xClose1(0),xOpen1(0),xHigh1(0),xLow1(0);
var : S1(0),D1(0),TM(0),TF(0),cnt(0),ii(0);
var : sum(0),longStop1(0),shortStop1(0),hv(0),lv(0);
Array : TrueRangev[100](0),AccumValue[100](0);
Array : oo[100](0),hh[100](0),ll[100](0),cc[100](0),hsc[100](0);
////상위분
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
///
TF = TM%분;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and 분 > 1 and TF < TF[1]) or
(Bdate == Bdate[1] and 분 > 1 and TM >= TM[1]+분) or
(Bdate == Bdate[1] and 분 == 1 and TM > TM[1]) Then
{
ii = ii +1;
For cnt = 99 DownTo 1
{
TrueRangev[cnt] = TrueRangev[cnt-1];
oo[cnt] = oo[cnt-1];
hh[cnt] = hh[cnt-1];
ll[cnt] = ll[cnt-1];
cc[cnt] = cc[cnt-1];
hsc[cnt] = hsc[cnt-1];
AccumValue[cnt] = AccumValue[cnt-1];
}
AccumValue[0] = AccumValue[0]+1;
oo[0] = o;
hh[0] = h;
ll[0] = l;
Xopen1 = xopen[1];
Xhigh1 = xhigh[1];
Xlow1 = xlow[1];
Xclose1 = xclose[1];
longStop1 = longStop[1];
ShortStop1 = shortStop[1];
dir1 = dir[1];
}
if hh[0] > 0 and h > hh[0] Then
hh[0] = h;
if ll[0] > 0 and l < ll[0] Then
ll[0] = l;
cc[0] = c;
if ii == 1 then
{
xOpen = oo[0];
xClose = (oo[0]+hh[0]+ll[0]+cc[0])/4;
xHigh = MaxList(hh[0], xOpen, xClose);
xLow = MinList(ll[0], xOpen,xClose);
}
else
{
xClose = (oo[0]+hh[0]+ll[0]+cc[0])/4;
xOpen = (xOpen1 + xClose1)/2 ;
xHigh = MaxList(hh[0], xOpen, xClose) ;
xLow = MinList(ll[0], xOpen, xClose) ;
}
hsc[0] = xclose ;
if ii > 1 Then
{
If xClose1 > xHigh then
TrueHighv = xClose1;
else
TrueHighv = xHigh;
If xClose1 < xLow then
TrueLowv = xClose1;
else
TrueLowv = xLow;
TrueRangev[0] = TrueHighv - TrueLowv;
}
if ii > 2 Then
{
if TrueRangev[length-1] > 0 Then
{
sum = 0;
For cnt = 0 to length-1
{
sum = sum + TrueRangev[cnt];
}
hsatr = sum/length;
}
atrv = mult * hsatr;
hv = 0;
lv = 0;
For cnt = 0 to length-1
{
if useClose == 1 Then
{
if hv == 0 or (hv > 0 and hsc[cnt] > hv) Then
hv = hsc[cnt];
if lv == 0 or (lv > 0 and hsc[cnt] < lv) Then
lv = hsc[cnt];
}
Else
{
if hv == 0 or (hv > 0 and hh[cnt] > hv) Then
hv = hh[cnt];
if lv == 0 or (lv > 0 and ll[cnt] < lv) Then
lv = ll[cnt];
}
}
longStop = hv - atrv;
longStopPrev = longStop1;
longStop = iff(hsc[1] > longStopPrev , max(longStop, longStopPrev) , longStop);
shortStop = lv + atrv;
shortStopPrev = shortStop1;
shortStop = iff(hsc[1] < shortStopPrev , min(shortStop, shortStopPrev) , shortStop);
dir = iff(hsc[0] > shortStopPrev , 1 ,iff(hsc[0] < longStopPrev , -1 , dir1));
}
}
//====================
2023-05-04
1620
글번호 168697
지표