커뮤니티
문의드립니다
2018-12-04 10:44:59
199
글번호 124119
아래 지표에 우측 끝까지 나타나는 수평라인을,
지표가 새로 갱신되는 지점까지만 나타나게 부탁드립니다
====================================================
Input : af(0.02), maxAF(0.2);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0);
Array : TL11[50](0),TL22[50](0);
var1 = CSar(af,maxAF);
if bdate != bdate[1] then
{
value1 = 0;
value2 = 0;
for cnt = 1 to 49
{
TL_Delete(TL11[cnt]);
TL_Delete(TL22[cnt]);
}
}
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
if LL > 0 Then
{
TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH);
}
if LD == sdate then
{
if value1 == 0 then
{
value1 = value1+1;
value11 = LL[1];
TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
TL_SetExtRight(TL11[value1],true);
}
if value1 > 0 and LL[1] < value11 then
{
value1 = value1+1;
value11 = LL[1];
TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
TL_SetExtRight(TL11[value1],true);
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
if HH > 0 Then
{
TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL);
}
if HD[1] == sdate then
{
if value2 == 0 then
{
value2 = value2+1;
value22 = HH[1];
TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
TL_SetExtRight(TL22[value2],true);
}
if value2 > 0 and HH[1] > value22 then
{
value2 = value2+1;
value22 = HH[1];
TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
TL_SetExtRight(TL22[value2],true);
}
}
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
TL_SetEnd(TL1,HD,HT,HH);
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
TL_SetEnd(TL2,LD,LT,LL);
}
}
답변 1
예스스탁 예스스탁 답변
2018-12-04 14:37:43
안녕하세요
예스스탁입니다.
문의하신 내용으로 수정하면 과거일에 출력된 추세선을 지우기 어렵습니다.
수평선은 당일에만 출력되게 했습니다.
Input : af(0.02), maxAF(0.2);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0);
var : TL11(0),TL21(0);
var1 = CSar(af,maxAF);
if bdate != bdate[1] then
{
value1 = 0;
value2 = 0;
}
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
if LL > 0 Then
{
TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH);
}
if LD[1] == sdate and CurrentDate == sdate then
{
if value1 == 0 then
{
value1 = value1+1;
value11 = LL[1];
TL11 = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
}
if value1 > 0 and LL[1] < value11 then
{
value1 = value1+1;
value11 = LL[1];
TL11 = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
if HH > 0 Then
{
TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL);
}
if HD == sdate and CurrentDate == sdate then
{
if value2 == 0 then
{
value2 = value2+1;
value22 = HH[1];
TL21 = TL_New(HD,HT,HH,sdate,stime,HH);
if sdate == 20181204 Then
MessageLog("%.f %.f",HD[1],HT[1]);
}
if value2 > 0 and HH[1] > value22 then
{
value2 = value2+1;
value22 = HH[1];
TL21 = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
}
}
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
TL_SetEnd(TL1,HD,HT,HH);
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
TL_SetEnd(TL2,LD,LT,LL);
}
}
TL_SetEnd(TL11,sdate,stime,TL_GetBeginVal(TL11));
TL_SetEnd(TL21,sdate,stime,TL_GetBeginVal(TL21));
즐거운 하루되세요
> 해피데이m 님이 쓴 글입니다.
> 제목 : 문의드립니다
> 아래 지표에 우측 끝까지 나타나는 수평라인을,
지표가 새로 갱신되는 지점까지만 나타나게 부탁드립니다
====================================================
Input : af(0.02), maxAF(0.2);
var : T(0),HH(0),LL(0),HD(0),HT(0),LD(0),LT(0),TL1(0),TL2(0),cnt(0),count(0);
Array : TL11[50](0),TL22[50](0);
var1 = CSar(af,maxAF);
if bdate != bdate[1] then
{
value1 = 0;
value2 = 0;
for cnt = 1 to 49
{
TL_Delete(TL11[cnt]);
TL_Delete(TL22[cnt]);
}
}
if crossup(c,var1) Then
{
T = 1;
HH = H;
HD = sdate;
HT = stime;
if LL > 0 Then
{
TL1 = TL_new(LD[1],LT[1],LL[1],HD,HT,HH);
}
if LD == sdate then
{
if value1 == 0 then
{
value1 = value1+1;
value11 = LL[1];
TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
TL_SetExtRight(TL11[value1],true);
}
if value1 > 0 and LL[1] < value11 then
{
value1 = value1+1;
value11 = LL[1];
TL11[value1] = TL_New(LD[1],LT[1],LL[1],sdate,stime,LL);
TL_SetExtRight(TL11[value1],true);
}
}
}
if CrossDown(c,var1) Then
{
T = -1;
LL = L;
LD = sdate;
LT = stime;
if HH > 0 Then
{
TL2 = TL_new(HD[1],HT[1],HH[1],LD,LT,LL);
}
if HD[1] == sdate then
{
if value2 == 0 then
{
value2 = value2+1;
value22 = HH[1];
TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
TL_SetExtRight(TL22[value2],true);
}
if value2 > 0 and HH[1] > value22 then
{
value2 = value2+1;
value22 = HH[1];
TL22[value2] = TL_New(HD[1],HT[1],HH[1],sdate,stime,HH);
TL_SetExtRight(TL22[value2],true);
}
}
}
if T == 1 then
{
if H > HH Then
{
HH = H;
HD = sdate;
HT = stime;
TL_SetEnd(TL1,HD,HT,HH);
}
}
if T == -1 then
{
if L < LL Then
{
LL = L;
LD = sdate;
LT = stime;
TL_SetEnd(TL2,LD,LT,LL);
}
}
다음글
이전글