답변완료
수식부탁드립니다
안녕하세요
아래수식을 이용해 다음 조건에 맞춰 수식을 부탁드립니다
Input:Period1(1),length(2),종가사용여부(0);
Var:TLen1(0),TRIma1(0),j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),T(0),sumv(0),sumi(0),mav(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
TLen1 = Ceiling((Period1 + 1) * .5);
TRIma1 =Ema(Ema(C, TLen1), TLen1);
var1 = H-TRIma1;
var2 = TRIma1-L;
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
T = 1;
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
TL_SetEnd(TL2,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
T = -1;
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
TL_SetEnd(TL2,저[1,3],저[1,4],저[1,1]);
}
최종꼭지점 = "저점";
}
위 수식에서 종가가 전고점(첨부그림에서 421.00)보다 상승할때 매수신호
종가가 전저점(420.60)보다 하락할때 매도신호 부탁드립니다
2021-01-19
1081
글번호 145614
시스템
답변완료
문의드립니다!
안녕하세요!!
1, 아래 수식은 원래 data6 까지만 작성되었던것을 제가 임의로 data11 과 12를 추가한것입니다
이 수정된 수식에서 혹 잘못된부분이 없는지 검토바랍니다
챠트에 적용해보니 장중에 챠트가 일시적으로 쪼그라드는등 뭔가 문제점이 있는듯해서요
2, 원래수식(data6 까지만있는 수식)을 적용시에도 아래와같은 문제점이 발생되네요
즉, 이 가로선이 아침장 시작 직후에 보면 모두 나타나지를않고 일부만 챠트상에 표시가됩니다
그래서 참조챠트에 있는 이수식의 지표속성창을 다시한번 열었다가 확인버튼을 눌러주면 그때서야 모든선이 나타납니다
장 시작과 동시에 모든선이 다 나타날수있도록 자세한 검토 부탁드리겠습니다
감사합니다!!
===================================================================================
#Data1
input : D1고점색상(REd),D1고점굵기(1),D1저점색상(red),D1저점굵기(1);
input : D2고점색상(BLUe),D2고점굵기(1),D2저점색상(blue),D2저점굵기(1);
input : D3고점색상(WHITe),D3고점굵기(1),D3저점색상(white),D3저점굵기(1);
input : D4고점색상(white),D4고점굵기(1),D4저점색상(white),D4저점굵기(1);
input : D5고점색상(MAGENTA),D5고점굵기(1),D5저점색상(MAGENTA),D5저점굵기(1);
input : D6고점색상(CYAn),D6고점굵기(1),D6저점색상(cyan),D6저점굵기(1);
input : D11고점색상(MAGENTA),D11고점굵기(1),D11저점색상(MAGENTA),D11저점굵기(1);
input : D12고점색상(CYAn),D12고점굵기(1),D12저점색상(cyan),D12저점굵기(1);
var : D1(0,Data1),T1(0,Data1),H1(0,data1),L1(0,data1),HTL1(0,Data1),LTL1(0,Data1);
if data1(Bdate != Bdate[1]) Then
{
D1 = data1(sDate);
T1 = data1(sTime);
H1 = data1(H);
L1 = data1(L);
HTL1 = TL_New(D1,T1,h1,NextBarSdate,NextBarStime,h1);
LTL1 = TL_New(D1,T1,l1,NextBarSdate,NextBarStime,l1);
TL_SetColor(HTL1,D1고점색상);
TL_SetColor(LTL1,D1저점색상);
TL_SetSize(HTL1,D1고점굵기);
TL_SetSize(LTL1,D1저점굵기);
}
Else
{
if Data1(H) > H1 Then
{
H1 = Data1(H);
TL_SetBegin(HTL1,D1,T1,H1);
}
if Data1(L) < L1 Then
{
L1 = Data1(L);
TL_SetBegin(LTL1,D1,T1,L1);
}
TL_SetEnd(HTL1,sDate,sTime,H1);
TL_SetEnd(LTL1,sDate,sTime,L1);
}
#Data2
var : D2(0,Data2),T2(0,Data2),H2(0,data2),L2(0,data2),HTL2(0,Data2),LTL2(0,Data2);
if data2(Bdate != Bdate[1]) Then
{
D2 = data2(sDate);
T2 = data2(sTime);
H2 = data2(H);
L2 = data2(L);
HTL2 = TL_New(D2,T2,h2,NextBarSdate,NextBarStime,h2);
LTL2 = TL_New(D2,T2,l2,NextBarSdate,NextBarStime,l2);
TL_SetColor(HTL2,BLUe);
TL_SetColor(LTL2,BLUe);
TL_SetSize(HTL2,D2고점굵기);
TL_SetSize(LTL2,D2저점굵기);
}
Else
{
if Data2(H) > H2 Then
{
H2 = Data2(H);
TL_SetBegin(HTL2,D2,T2,H2);
}
if Data2(L) < L2 Then
{
L2 = Data2(L);
TL_SetBegin(LTL2,D2,T2,L2);
}
TL_SetEnd(HTL2,sDate,sTime,H2);
TL_SetEnd(LTL2,sDate,sTime,L2);
}
#Data3
var : D3(0,Data3),T3(0,Data3),H3(0,data3),L3(0,data3),HTL3(0,Data3),LTL3(0,Data3);
if data3(Bdate != Bdate[1]) Then
{
D3 = data3(sDate);
T3 = data3(sTime);
H3 = data3(H);
L3 = data3(L);
HTL3 = TL_New(D3,T3,h3,NextBarSdate,NextBarStime,h3);
LTL3 = TL_New(D3,T3,l3,NextBarSdate,NextBarStime,l3);
TL_SetColor(HTL3,MAGENTa);
TL_SetColor(LTL3,MAGENTa);
TL_SetSize(HTL3,D3고점굵기);
TL_SetSize(LTL3,D3저점굵기);
}
Else
{
if Data3(H) > H3 Then
{
H3 = Data3(H);
TL_SetBegin(HTL3,D3,T3,H3);
}
if Data3(L) < L3 Then
{
L3 = Data3(L);
TL_SetBegin(LTL3,D3,T3,L3);
}
TL_SetEnd(HTL3,sDate,sTime,H3);
TL_SetEnd(LTL3,sDate,sTime,L3);
}
#Data4
var : D4(0,Data4),T4(0,Data4),H4(0,data4),L4(0,data4),HTL4(0,Data4),LTL4(0,Data4);
if data4(Bdate != Bdate[1]) Then
{
D4 = data4(sDate);
T4 = data4(sTime);
H4 = data4(H);
L4 = data4(L);
HTL4 = TL_New(D4,T4,h4,NextBarSdate,NextBarStime,h4);
LTL4 = TL_New(D4,T4,l4,NextBarSdate,NextBarStime,l4);
TL_SetColor(HTL4,BLUe);
TL_SetColor(LTL4,BLUe);
TL_SetSize(HTL4,D4고점굵기);
TL_SetSize(LTL4,D4저점굵기);
}
Else
{
if Data4(H) > H4 Then
{
H4 = Data4(H);
TL_SetBegin(HTL4,D4,T4,H4);
}
if Data4(L) < L4 Then
{
L4 = Data4(L);
TL_SetBegin(LTL4,D4,T4,L4);
}
TL_SetEnd(HTL4,sDate,sTime,H4);
TL_SetEnd(LTL4,sDate,sTime,L4);
}
#Data5
var : D5(0,Data5),T5(0,Data5),H5(0,data5),L5(0,data5),HTL5(0,Data5),LTL5(0,Data5);
if data5(Bdate != Bdate[1]) Then
{
D5 = data5(sDate);
T5 = data5(sTime);
H5 = data5(H);
L5 = data5(L);
HTL5 = TL_New(D5,T5,h5,NextBarSdate,NextBarStime,h5);
LTL5 = TL_New(D5,T5,l5,NextBarSdate,NextBarStime,l5);
TL_SetColor(HTL5,MAGENTA);
TL_SetColor(LTL5,MAGENTA);
TL_SetSize(HTL5,D5고점굵기);
TL_SetSize(LTL5,D5저점굵기);
}
Else
{
if Data5(H) > H5 Then
{
H5 = Data5(H);
TL_SetBegin(HTL5,D5,T5,H5);
}
if Data5(L) < L5 Then
{
L5 = Data5(L);
TL_SetBegin(LTL5,D5,T5,L5);
}
TL_SetEnd(HTL5,sDate,sTime,H5);
TL_SetEnd(LTL5,sDate,sTime,L5);
}
#Data6
var : D6(0,Data6),T6(0,Data6),H6(0,data6),L6(0,data6),HTL6(0,Data6),LTL6(0,Data6);
if data6(Bdate != Bdate[1]) Then
{
D6 = data6(sDate);
T6 = data6(sTime);
H6 = data6(H);
L6 = data6(L);
HTL6 = TL_New(D6,T6,h6,NextBarSdate,NextBarStime,h6);
LTL6 = TL_New(D6,T6,l6,NextBarSdate,NextBarStime,l6);
TL_SetColor(HTL6,BLUe);
TL_SetColor(LTL6,BLUe);
TL_SetSize(HTL6,D6고점굵기);
TL_SetSize(LTL6,D6저점굵기);
}
Else
{
if Data6(H) > H6 Then
{
H6 = Data6(H);
TL_SetBegin(HTL6,D6,T6,H6);
}
if Data6(L) < L6 Then
{
L6 = Data6(L);
TL_SetBegin(LTL6,D6,T6,L6);
}
TL_SetEnd(HTL6,sDate,sTime,H6);
TL_SetEnd(LTL6,sDate,sTime,L6);
}
#Data11
var : D11(0,Data11),T11(0,Data11),H11(0,data11),L11(0,data11),HTL11(0,Data11),LTL11(0,Data11);
if data11(Bdate != Bdate[1]) Then
{
D11 = data11(sDate);
T11 = data11(sTime);
H11 = data11(H);
L11 = data11(L);
HTL11 = TL_New(D11,T11,h11,NextBarSdate,NextBarStime,h11);
LTL11 = TL_New(D11,T11,l11,NextBarSdate,NextBarStime,l11);
TL_SetColor(HTL11,MAGENTA);
TL_SetColor(LTL11,MAGENTA);
TL_SetSize(HTL11,D11고점굵기);
TL_SetSize(LTL11,D11저점굵기);
}
Else
{
if Data11(H) > H11 Then
{
H11 = Data11(H);
TL_SetBegin(HTL11,D11,T11,H11);
}
if Data11(L) < L11 Then
{
L11 = Data11(L);
TL_SetBegin(LTL11,D11,T11,L11);
}
TL_SetEnd(HTL11,sDate,sTime,H11);
TL_SetEnd(LTL11,sDate,sTime,L11);
}
#Data12
var : D12(0,Data12),T12(0,Data12),H12(0,data12),L12(0,data12),HTL12(0,Data12),LTL12(0,Data12);
if data12(Bdate != Bdate[1]) Then
{
D12 = data12(sDate);
T12 = data12(sTime);
H12 = data12(H);
L12 = data12(L);
HTL12 = TL_New(D12,T12,h12,NextBarSdate,NextBarStime,h12);
LTL12 = TL_New(D12,T12,l12,NextBarSdate,NextBarStime,l12);
TL_SetColor(HTL12,BLUe);
TL_SetColor(LTL12,BLUe);
TL_SetSize(HTL12,D12고점굵기);
TL_SetSize(LTL12,D12저점굵기);
}
Else
{
if Data12(H) > H12 Then
{
H12 = Data12(H);
TL_SetBegin(HTL12,D12,T12,H12);
}
if Data12(L) < L12 Then
{
L12 = Data12(L);
TL_SetBegin(LTL12,D12,T12,L12);
}
TL_SetEnd(HTL12,sDate,sTime,H12);
TL_SetEnd(LTL12,sDate,sTime,L12);
}
2021-01-19
854
글번호 145592
지표