답변완료
수식 문의 드립니다.
안녕하세요.
다음 수식은 며칠전 문의 드린 고저가 갱신시 수평선을 설정한것인데
60분봉에서 생성된 고저가 수평선을 10분봉이나 5분봉에 적용되게 변경가능한가요?
input : n(3);
var : HH(0),LL(0),cnt(0),hcnt(0),lcnt(0);
Array : HTL[100](0),HTLV[100](0),LTL[100](0),LTLV[100](0);
if Bdate != Bdate[1] Then
{
HH = H;
LL = L;
hcnt = 0;
HTLV[hcnt] = NextBarOpen;
HTL[hcnt] = TL_New(Sdate,Stime,HTLV[hcnt],NextBarSdate,NextBarStime,HTLV[hcnt]);
TL_SetColor(HTL[hcnt],Red);
lcnt = 0;
LTLV[lcnt] = NextBarOpen;
LTL[lcnt] = TL_New(Sdate,Stime,LTLV[lcnt],NextBarSdate,NextBarStime,LTLV[lcnt]);
TL_SetColor(LTL[hcnt],Blue);
}
Else
{
if H > HH then
{
HH = H;
hcnt = Hcnt+1;
HTLV[hcnt] = NextBarOpen;
HTL[hcnt] = TL_New(Sdate,Stime,HTLV[hcnt],NextBarSdate,NextBarStime,HTLV[hcnt]);
TL_SetColor(HTL[hcnt],Red);
}
if L < LL then
{
LL = L;
lcnt = lcnt+1;
LTLV[lcnt] = NextBarOpen;
LTL[lcnt] = TL_New(Sdate,Stime,LTLV[lcnt],NextBarSdate,NextBarStime,LTLV[lcnt]);
TL_SetColor(LTL[hcnt],Blue);
}
for cnt = 0 to Hcnt
{
TL_SetEnd(HTL[cnt],NextBarSdate,NextBarStime,HTLV[cnt]);
}
for cnt = 0 to Lcnt
{
TL_SetEnd(LTL[cnt],NextBarSdate,NextBarStime,LTLV[cnt]);
}
if Hcnt >= n Then
TL_Delete(HTL[n]);
if Lcnt >= n Then
TL_Delete(LTL[n]);
}
2025-03-27
335
글번호 189600
지표
답변완료
지표 수정좀 요청 드림니다.
항상 많은 도움에 고맙습니다.
<그림1> 처럼 봉길이 좀 늘려 주십시요.
그리고 봉에 번호 좀 부탁 드림니다.
즉 20봉중 첫번재 봉에는 고가선 저가선 중간선을 20봉 끝까지 가고
봉이 새로 생길때 마다 고가선 위 에 2,4,6,8,10,....20 짝수봉 표시 가능 한가요?
다음 신호짜지 몇개 더 나와 하는지 세봐야 되는데 몇번째 봉이다 알면 편합니다.
(숫자크기: 10 색상 : blue)
아래수식으로 연습해 봤는데 안되네요..... ㅠ ㅠ
## 아래 수식
input : n(20);
var : hh(0),ll(0),idx(0),tf(0),hh1(0),ll1(0),hh2(0),ll2(0);
var : TL1(0),TL2(0),d1(0),t1(0),TL3(0);
var : HTL1(0),HTL2(0),HTL3(0),HTL4(0),HTL5(0),HTL6(0);
if Bdate != Bdate[1] Then
idx = 0;
Else
idx = idx+1;
TF = idx%n;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
hh = h;
ll = l;
hh1 = hh[1];
ll1 = ll[1];
hh2 = hh1[1];
ll2 = ll1[1];
d1 = sDate;
t1 = sTime;
#TL_Delete(TL1);
//TL1 = TL_new(d1,t1,hh,NextBarSdate,NextBarStime,HH);
// TL1 = TL_new(d1,t1,hh,NextBarSdate,NextBarStime,NextBarStime);
TL1 = TL_New(sDate,sTime,HH[0],NextBarSdate,NextBarStime,HH[0]);
//TL1 = TL_New(sDate[0],sTime[0],HH,sDate,sTime,HH);
TL_SetColor(TL1,RgB(255,0,0));
TL_SetSize(TL1,5);
//TL_SetEnd(TL1[0],sDate,sTime,NextBarStime);
//TL1 = TL_new(sDate,sTime,HH+0.25,NextBarSdate,NextBarStime,HH+0.25);
//TL_SetEnd(TL1,sDate,sTime,HH+0.25);
//TL_SetExtRight(TL1[10],true);
#TL_Delete(TL2);
TL2 = TL_new(d1,t1,ll,NextBarSdate,NextBarStime,ll);
TL_SetColor(TL2,RgB(0,0,0));
TL_SetSize(TL2,5);
//TL_SetStyle((TL2,2,1);
#TL_Delete(TL3);
TL3 = TL_new(d1,t1,(hh+ll)/2,NextBarSdate,NextBarStime,(hh+ll)/2);
TL_SetColor(TL3,Rgb(0,0,255));
TL_SetSize(TL3,5);
}
if h > hh Then
{
hh = h;
// TL_SetBegin(TL1,d1,t1,hh);
// TL_SetBegin(TL3,d1,t1,(hh+ll)/2);
}
if l < ll Then
{
ll = l;
//TL_SetBegin(TL2,d1,t1,ll);
// TL_SetBegin(TL3,d1,t1,(hh+ll)/2);
}
//TL_SetEnd(TL1,NextBarSdate,NextBarStime,hh);
//TL_SetEnd(TL2,NextBarSdate,NextBarStime,ll);
//TL_SetEnd(TL3,NextBarSdate,NextBarStime,(hh+ll)/2);
//var1 = (hh+ll)/2;
//var2 = (hh1+ll1)/2;
//var3 = (hh2+ll2)/2;
//Var4 = MA(var1,5) ;
// Plot1(Var4-PriceScale*10,"1",RgB(255,0,255),DeF,2) ;
//Plot2(var2,"2",RgB(0,0,255),DeF,3) ;
//Plot3(var3,"3",RgB(0,0,0),DeF,3) ;
##=======================================================================================================
##=======================================================================================================
input : n2(20);
var : hh3(0),ll3(0),idx3(0),tf3(0),hh4(0),ll4(0),hh5(0),ll5(0);
var : TL11(0),TL12(0),d13(0),t13(0),TL13(0);
if Bdate != Bdate[1] Then
idx3 = 0;
Else
idx3 = idx+1;
tf3 = idx3%n2;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and tf3 < tf3[1]) Then
{
hh3 = h;
ll3 = l;
hh4 = hh3[1];
ll4 = ll3[1];
hh5 = hh4[1];
ll5 = ll4[1];
d13 = sDate;
t13 = sTime;
#TL_Delete(TL11);
// TL11 = TL_new(d13,t13,hh3,NextBarSdate,NextBarStime,hh3);
#TL_Delete(TL12);
// TL12 = TL_new(d13,t13,ll3,NextBarSdate,NextBarStime,ll3);
#TL_Delete(TL13);
// TL13 = TL_new(d13,t13,(hh+ll)/2,NextBarSdate,NextBarStime,(hh+ll)/2);
}
if h > hh3 Then
{
hh3 = h;
TL_SetBegin(TL11,d13,t13,hh3);
TL_SetBegin(TL13,d13,t13,( hh3 + ll3)/2);
}
if l < ll3 Then
{
ll3 = l;
TL_SetBegin(TL12,d13,t13,ll3);
TL_SetBegin(TL13,d13,t13,( hh3 + ll3)/2);
}
//TL_SetEnd(TL11,NextBarSdate,NextBarStime,hh3);
//TL_SetEnd(TL12,NextBarSdate,NextBarStime,ll3);
//TL_SetEnd(TL13,NextBarSdate,NextBarStime,(hh+ll)/2);
var1 = ( hh3 + ll3)/2;
var2 = ( hh4 + ll4)/2;
var3 = ( hh5 + ll5)/2;
Var4 = MA(var1,5) ;
//Plot1(Var4-PriceScale*1,"1",RgB(255,0,255),DeF,0) ;
큰 도움에 고맙습니다. 수고하십시요.
2025-03-26
357
글번호 189598
지표
답변완료
92088 : TL_New()함수 답변에 대한... 재확인 부탁드립니다.
이미 양수이기때문에 절대값으로 변환해도 차이가 없습니다.
메세지로그에서 값을 찍어봐도 양수로 나옵니다.
혼란을 줄이기 위해 불필요한 구문은 모두 삭제 하였습니다.
심플하게 코딩을 바꿨으니 아래 내용으로 무엇이
잘못되었는지 다시 한번 확인 부탁 드립니다.
------------------------------------------
// 캔들의 전체 갯수를 리턴하는 함수
function getTotalCandles Numeric
// 캔들 갯수를 저장할 변수 선언
var: candleCount(0);
candleCount=Index+1;
getTotalCandles=candleCount;
Endfunction
var: totalCandles(0), getTotalCandles(0);
totalCandles=getTotalCandles();
// 하락 추세선 (단기)
Inputs:
ChartCandles(500),
ShortPeriod(60),
ShortDownColor(Blue), // 단기 하락 추세선 색상: 파란색
ShortLineWidth(2);
var: Candle_Condition(0), ShortDownTrendLineID(0),
StartShortDownTrendBar(0), LastShortDownTrendBar(0),
StartShortDownTrendPrice(0), LastShortDownTrendPrice(0);
Candle_Condition = ChartCandles - ShortPeriod;
If totalCandles >= Candle_Condition Then {
If totalCandles == ChartCandles Then {
StartShortDownTrendBar = NthHighestBar(1, High, ShortPeriod);
LastShortDownTrendBar = NthHighestBar(2, High, ShortPeriod);
StartShortDownTrendPrice = NthHighest(1, High, ShortPeriod);
LastShortDownTrendPrice = NthHighest(2, High, ShortPeriod);
}
If ShortDownTrendLineID > 0 Then {
TL_Delete(ShortDownTrendLineID);
}
//StartShortDownTrendBar = StartShortDownTrendBar;
//LastShortDownTrendBar = LastShortDownTrendBar;
//이미 양수이기때문에 절대값으로 변환해도 차이가 없습니다.
//메세지로그에서 값을 찍어봐도 양수로 나옵니다.
//혼란을 줄이기 위해 불필요한 구문은 모두 삭제 하였습니다.
StartShortDownTrendBar = Abs(StartShortDownTrendBar);
LastShortDownTrendBar = Abs(LastShortDownTrendBar);
MessageLog("**고점일=%.f, **고점가격=%.f", StartShortDownTrendBar, StartShortDownTrendPrice);
MessageLog("다음 고점일=%.f, **다음 고점가격=%.f", LastShortDownTrendBar, LastShortDownTrendPrice);
ShortDownTrendLineID = TL_New_Self(Date[StartShortDownTrendBar], Time[StartShortDownTrendBar], High[StartShortDownTrendBar], Date[LastShortDownTrendBar], Time[LastShortDownTrendBar], High[LastShortDownTrendBar]);
TL_SetColor(ShortDownTrendLineID, ShortDownColor);
TL_SetSize(ShortDownTrendLineID, ShortLineWidth);
TL_SetExtRight(ShortDownTrendLineID, True);
}
2025-03-26
358
글번호 189596
지표