커뮤니티
수식 부탁드립니다
2019-09-22 15:03:04
176
글번호 132143
안녕하세요?
수식을 부탁드립니다.
해외선물 1분봉 차트에서
TL_New() 함수로 아래의 내용을 1분봉 차트에 표시하고 싶습니다.
** 라인의 우측 끝에 해당 라인의 주석을 표시하고 싶습니다. (주봉 시고저종, 일봉 시고저종, 240분봉의 20이평 등등)
1. 직전 주봉의 시 고 저 종가
2. 직전 일봉의 시 고 저 종가
3. 직전 240분봉의 20, 60, 240 이평값
4. 직전 60분봉의 20, 60, 240 이평값
감사합니다.
수고하세요.
답변 1
예스스탁 예스스탁 답변
2019-09-24 12:48:38
안녕하세요
예스스탁입니다.
이전 차트에 모두 표시가 되기를 원하시면
수식내에 TL_delet, text_delete를 모두 삭제하시면 됩니다.
1 주
input : n(1);
var : cnt(0);
var : tl1(0),tl2(0),tl3(0),tl4(0);
var : tx1(0),tx2(0),tx3(0),tx4(0);
Array : weeko[10](0),weekh[10](0),weekl[10](0),weekc[10](0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then
{
weeko[0] = o;
weekh[0] = h;
weekl[0] = l;
for cnt = 1 to 9
{
weeko[cnt] = weeko[cnt-1][1];
weekh[cnt] = weekh[cnt-1][1];
weekl[cnt] = weekl[cnt-1][1];
weekc[cnt] = weekc[cnt-1][1];
}
if weeko[n] > 0 then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
tl1 = TL_New(sdate[1],stime[1],weeko[n],sdate,stime,weeko[n]);
tl2 = TL_New(sdate[1],stime[1],weekh[n],sdate,stime,weekh[n]);
tl3 = TL_New(sdate[1],stime[1],weekl[n],sdate,stime,weekl[n]);
tl4 = TL_New(sdate[1],stime[1],weekc[n],sdate,stime,weekc[n]);
Text_Delete(Tx1);
Text_Delete(Tx2);
Text_Delete(Tx3);
Text_Delete(Tx4);
tx1 = Text_New(sdate,stime,weeko[n],NumToStr(n,0)+"주전시가");
tx2 = Text_New(sdate,stime,weekh[n],NumToStr(n,0)+"주전고가");
tx3 = Text_New(sdate,stime,weekl[n],NumToStr(n,0)+"주전저가");
tx4 = Text_New(sdate,stime,weekc[n],NumToStr(n,0)+"주전종가");
}
}
weekc[0] = c;
if h > weekh[0] Then
weekh[0] = h;
if l < weekl[0] Then
weekl[0] = l;
if weeko[n] > 0 then
{
TL_SetEnd(tl1,sdate,stime,weeko[n]);
TL_SetBegin(tl2,TL_GetBeginDate(tl2),TL_GetBeginTime(tl2),weekh[n]);
TL_SetEnd(tl2,sdate,stime,weekh[n]);
TL_SetBegin(tl3,TL_GetBeginDate(tl3),TL_GetBeginTime(tl3),weekl[n]);
TL_SetEnd(tl3,sdate,stime,weekl[n]);
TL_SetBegin(tl4,TL_GetBeginDate(tl4),TL_GetBeginTime(tl4),weekc[n]);
TL_SetEnd(tl4,sdate,stime,weekc[n]);
Text_SetLocation(tx1,sdate,stime,weeko[n]);
Text_SetLocation(tx2,sdate,stime,weekh[n]);
Text_SetLocation(tx3,sdate,stime,weekl[n]);
Text_SetLocation(tx4,sdate,stime,weekc[n]);
}
2 일
input : n(1);
var : tl1(0),tl2(0),tl3(0),tl4(0);
var : tx1(0),tx2(0),tx3(0),tx4(0);
if bdate != bdate[1] Then
{
TL_Delete(TL1);
TL_Delete(TL2);
TL_Delete(TL3);
TL_Delete(TL4);
tl1 = TL_New(sdate[1],stime[1],DayOpen(n),sdate,stime,DayOpen(n));
tl2 = TL_New(sdate[1],stime[1],DayHigh(n),sdate,stime,DayHigh(n));
tl3 = TL_New(sdate[1],stime[1],DayLow(n),sdate,stime,DayLow(n));
tl4 = TL_New(sdate[1],stime[1],DayClose(n),sdate,stime,DayClose(n));
Text_Delete(Tx1);
Text_Delete(Tx2);
Text_Delete(Tx3);
Text_Delete(Tx4);
tx1 = Text_New(sdate,stime,DayOpen(n),NumToStr(n,0)+"일전시가");
tx2 = Text_New(sdate,stime,DayHigh(n),NumToStr(n,0)+"일전고가");
tx3 = Text_New(sdate,stime,DayLow(n),NumToStr(n,0)+"일전저가");
tx4 = Text_New(sdate,stime,DayClose(n),NumToStr(n,0)+"일전종가");
}
if dayopen(n) > 0 then
{
TL_SetEnd(tl1,sdate,stime,DayOpen(n));
TL_SetBegin(tl2,TL_GetBeginDate(tl2),TL_GetBeginTime(tl2),DayHigh(n));
TL_SetEnd(tl2,sdate,stime,DayHigh(n));
TL_SetBegin(tl3,TL_GetBeginDate(tl3),TL_GetBeginTime(tl3),DayLow(n));
TL_SetEnd(tl3,sdate,stime,DayLow(n));
TL_SetBegin(tl4,TL_GetBeginDate(tl4),TL_GetBeginTime(tl4),DayClose(n));
TL_SetEnd(tl4,sdate,stime,DayClose(n));
Text_SetLocation(tx1,sdate,stime,Dayopen(n));
Text_SetLocation(tx2,sdate,stime,DayHigh(n));
Text_SetLocation(tx3,sdate,stime,Daylow(n));
Text_SetLocation(tx4,sdate,stime,DayClose(n));
}
3, 4
3번과 4번은 같은식입니다. 외부변수에서 분과 이평기간만 다르게 지정해서 적용하시면 됩니다.
input : 타주기분(60),P1(20),P2(60),P3(240),n(1);
var : S1(0),D1(0),TM(0),TF(0),date1(0),time1(0);
var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),sum3(0),mav3(0);
var : tl1(0),tl2(0),tl3(0);
var : tx1(0),tx2(0),tx3(0);
Array : C1[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%타주기분;
Condition1 = false;
if Bdate != Bdate[1] or
(타주기분 != 1 and Bdate == Bdate[1] and TF < TF[1]) or
(타주기분 == 1 and Bdate == Bdate[1] and TF > TF[1]) Then
{
Condition1 = true;
for cnt = 1 to 99
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P1-1+n] > 0 then
{
sum1 = 0;
for cnt = n to P1-1+n
{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P1;
if Condition1 == true then
{
TL_Delete(TL1);
Text_Delete(tx1);
TL1 = TL_New(sdate,stime[1],mav1,sdate,stime,mav1);
tx1 = Text_New(sdate,stime,mav1,NumToStr(타주기분,0)+"분의"+NumToStr(n,0)+"봉전"+NumToStr(P1,0)+"이평");
}
Else
{
TL_SetBegin(tl1,TL_GetBeginDate(tl1),TL_GetBeginTime(tl1),mav1);
TL_SetEnd(tl1,sdate,stime,mav1);
Text_SetLocation(tx1,sdate,stime,mav1);
}
}
if C1[P2-1+n] > 0 then
{
sum2 = 0;
for cnt = n to P2-1+n
{
sum2 = sum2+C1[cnt];
}
mav2 = sum2/P2;
if Condition1 == true then
{
TL_Delete(TL2);
Text_Delete(tx2);
TL2 = TL_New(sdate,stime[1],mav2,sdate,stime,mav2);
tx2 = Text_New(sdate,stime,mav2,NumToStr(타주기분,0)+"분의"+NumToStr(n,0)+"봉전"+NumToStr(P2,0)+"이평");
}
Else
{
TL_SetBegin(tl2,TL_GetBeginDate(tl2),TL_GetBeginTime(tl2),mav2);
TL_SetEnd(tl2,sdate,stime,mav2);
Text_SetLocation(tx2,sdate,stime,mav2);
}
}
if C1[P3-1+n] > 0 then
{
sum3 = 0;
for cnt = n to P3-1+n
{
sum3 = sum3+C1[cnt];
}
mav3 = sum3/P3;
if Condition1 == true then
{
TL_Delete(TL3);
Text_Delete(tx3);
TL3 = TL_New(sdate,stime[1],mav3,sdate,stime,mav3);
tx3 = Text_New(sdate,stime,mav3,NumToStr(타주기분,0)+"분의"+NumToStr(n,0)+"봉전"+NumToStr(P3,0)+"이평");
}
Else
{
TL_SetBegin(tl3,TL_GetBeginDate(tl3),TL_GetBeginTime(tl3),mav3);
TL_SetEnd(tl3,sdate,stime,mav3);
Text_SetLocation(tx3,sdate,stime,mav3);
}
}
}
plot1(mav1);
plot2(mav2);
plot3(mav3);
즐거운 하루되세요
> 카르페diem 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 안녕하세요?
수식을 부탁드립니다.
해외선물 1분봉 차트에서
TL_New() 함수로 아래의 내용을 1분봉 차트에 표시하고 싶습니다.
** 라인의 우측 끝에 해당 라인의 주석을 표시하고 싶습니다. (주봉 시고저종, 일봉 시고저종, 240분봉의 20이평 등등)
1. 직전 주봉의 시 고 저 종가
2. 직전 일봉의 시 고 저 종가
3. 직전 240분봉의 20, 60, 240 이평값
4. 직전 60분봉의 20, 60, 240 이평값
감사합니다.
수고하세요.
다음글
이전글