커뮤니티
수정 부탁 합니다
2018-12-27 11:48:13
130
글번호 124795
평균선 라인의 고점평균값과 저점평균값이 변경 될때마다
차이 값(고점-저점)을 차트 우측 상단에 붉은색으로 표시하고 싶습니다
Input:length(12),n(10);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),처리구분("");
var:d1(0),t1(0);
Array:고점[50,2](0),저점[50,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 50 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
#TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 50 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
#TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,CYAN);
var : sum1(0),sum2(0),sum3(0),cnt(0);
var : mav1(0),mav2(0),mav3(0);
var : tx1(0),tx2(0),tx3(0);
if 고점[10,1] > 0 and 저점[10,1] > 0 then
{
sum1 = 0;
sum2 = 0;
sum3 = 0;
for cnt = 1 to n
{
sum1 = sum1 + 고점[cnt,1];
sum2 = sum2 + 저점[cnt,1];
sum3 = sum3 + (고점[cnt,1]+저점[cnt,1])/2;
}
mav1 = sum1/n;
mav2 = sum2/n;
mav3 = sum3/n;
plot1(mav1);
plot2(mav2);
plot3(mav3);
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
tx1 = Text_New(sdate,stime,mav1,NumToStr(mav1,2));
tx2 = Text_New(sdate,stime,mav2,NumToStr(mav2,2));
tx3 = Text_New(sdate,stime,mav3,NumToStr(mav3,2));
Text_SetStyle(tx1,0,1);
Text_SetStyle(tx2,0,1);
Text_SetStyle(tx3,0,1);
}
답변 1
예스스탁 예스스탁 답변
2018-12-27 16:21:24
안녕하세요
예스스탁입니다.
수식에서 차트의 우측상단은 위치를 알수 없습니다.
날짜와 시간, Y축가격을 지정해 텍스트를 표시하는데
수식안에서 차트의 스케일을 알수가 없습니다.
마지막 완성봉의 고가 기준으로 위로 X틱 위에 표시되게 작성해 드립니다.
해당 부분은 사용자분이 적당한 위치를 설정해 주셔야 합니다.
Input:length(12),n(10),X(5);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),처리구분("");
var:d1(0),t1(0),tx4(0);
Array:고점[50,2](0),저점[50,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 50 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
#TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 50 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
#TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,CYAN);
var : sum1(0),sum2(0),sum3(0),cnt(0);
var : mav1(0),mav2(0),mav3(0);
var : tx1(0),tx2(0),tx3(0);
if 고점[10,1] > 0 and 저점[10,1] > 0 then
{
sum1 = 0;
sum2 = 0;
sum3 = 0;
for cnt = 1 to n
{
sum1 = sum1 + 고점[cnt,1];
sum2 = sum2 + 저점[cnt,1];
sum3 = sum3 + (고점[cnt,1]+저점[cnt,1])/2;
}
mav1 = sum1/n;
mav2 = sum2/n;
mav3 = sum3/n;
plot1(mav1);
plot2(mav2);
plot3(mav3);
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
tx1 = Text_New(sdate,stime,mav1,NumToStr(mav1,2));
tx2 = Text_New(sdate,stime,mav2,NumToStr(mav2,2));
tx3 = Text_New(sdate,stime,mav3,NumToStr(mav3,2));
Text_SetStyle(tx1,0,1);
Text_SetStyle(tx2,0,1);
Text_SetStyle(tx3,0,1);
Text_Delete(tx4);
tx4 = Text_New(sdate,stime,H+PriceScale*x,NumToStr(mav1-mav2,2));
Text_SetStyle(tx4,0,1);
Text_SetColor(tx4,RED);
}
즐거운 하루되세요
> 헬리콥터 님이 쓴 글입니다.
> 제목 : 수정 부탁 합니다
> 평균선 라인의 고점평균값과 저점평균값이 변경 될때마다
차이 값(고점-저점)을 차트 우측 상단에 붉은색으로 표시하고 싶습니다
Input:length(12),n(10);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),Text1(0),처리구분("");
var:d1(0),t1(0);
Array:고점[50,2](0),저점[50,2](0); //가격,위치
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and
Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then
처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then
처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 50 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
#TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] then
{
For j = 50 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If d1 == sDate[sBar] and
t1 == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
}
#TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
d1 = sDate[sBar];
t1 = stime[sBar];
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
}
TL_SetSize(TL1,3);
TL_SetColor(TL1,CYAN);
var : sum1(0),sum2(0),sum3(0),cnt(0);
var : mav1(0),mav2(0),mav3(0);
var : tx1(0),tx2(0),tx3(0);
if 고점[10,1] > 0 and 저점[10,1] > 0 then
{
sum1 = 0;
sum2 = 0;
sum3 = 0;
for cnt = 1 to n
{
sum1 = sum1 + 고점[cnt,1];
sum2 = sum2 + 저점[cnt,1];
sum3 = sum3 + (고점[cnt,1]+저점[cnt,1])/2;
}
mav1 = sum1/n;
mav2 = sum2/n;
mav3 = sum3/n;
plot1(mav1);
plot2(mav2);
plot3(mav3);
Text_Delete(tx1);
Text_Delete(tx2);
Text_Delete(tx3);
tx1 = Text_New(sdate,stime,mav1,NumToStr(mav1,2));
tx2 = Text_New(sdate,stime,mav2,NumToStr(mav2,2));
tx3 = Text_New(sdate,stime,mav3,NumToStr(mav3,2));
Text_SetStyle(tx1,0,1);
Text_SetStyle(tx2,0,1);
Text_SetStyle(tx3,0,1);
}
다음글
이전글