답변완료
수식부탁드립니다^^)
박스권 일목균형표
============= 수식4 ============
AA=H(1)>highest(c(2), 20);
// or H(1)>highest(c(2), 60);
// cross up highest close till preday with Period 20 or 60
//AAA=(H>AA or H>AA(1));
// starting point of 5 kiss or crossup 20 eavg
BB=(C>eavg(C, 5) or crossup(C, eavg(C,20)));
BBB=BB or BB(1) or BB(2);
// crossup highest volume
CC=V(1)>highest(V(2), 20);
// or V(1)>highest(V(2), 60);
CCC=CC or CC(1) or CC(2);
// neg candle (or tail) // buy signal
DD=O>C and C<(abs(C(1)-O(1))*2/3+min(C(1),O(1)));
//support eavg(c, 20) //lower bound
EE= max(eavg(C, 5), eavg(C,20));
FF=(C>(highest(high(25),9)+lowest(low(25),9)+highest(high(25),26)+lowest(low(25),26))/4 ) and (C>(highest(high(25),52)+lowest(low(25),52))/2);
condition=AA and BBB and CCC and DD and FF;
valuewhen(1, condition, (abs(C(1)-O(1))*2/3+min(C(1), O(1))))
========== 수식5 ============
AA=H(1)>highest(c(2), 20);
// or H(1)>highest(c(2), 60);
// cross up highest close till preday with Period 20 or 60
//AAA=(H>AA or H>AA(1));
// starting point of 5 kiss or crossup 20 eavg
BB=(C>eavg(C, 5) or crossup(C, eavg(C,20)));
BBB=BB or BB(1) or BB(2);
// crossup highest volume
CC=V(1)>highest(V(2), 20);
// or V(1)>highest(V(2), 60);
CCC=CC or CC(1) or CC(2);
// neg candle (or tail) // buy signal
DD=O>C and C<(abs(C(1)-O(1))*2/3+min(C(1),O(1)));
//support eavg(c, 20) //lower bound
EE= max(eavg(C, 5), eavg(C,20));
FF=(C>(highest(high(25),9)+lowest(low(25),9)+highest(high(25),26)+lowest(low(25),26))/4 ) and (C>(highest(high(25),52)+lowest(low(25),52))/2);
condition=AA and BBB and CCC and DD and FF;
valuewhen(1, condition, max((abs(C(1)-O(1))*2/3+min(C(1), O(1)))*0.95, EE))
2023-01-05
1390
글번호 165120
지표
답변완료
수정 부탁합니다
안녕하세요^^
맨 아래입니다
input:length(6);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL12(0),TL13(0),TL14(0),TL15(0),T(0),고점변곡(""),저점변곡("");
var : clr1(0),clr2(0),BE(0),SE(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(0==1,data2(C),data2(H));
LL = IFF(0==1,data2(C),data2(L));
If data2(Index) == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = data2(Highest(HH,length)) == HH and 최종고가 <> HH;
Condition2 = data2(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] = data2(Index);
고[1,3] = data2(sDate);
고[1,4] = data2(sTime);
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 1 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 0, 1);
Text_SetColor(Text1,Red);
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,Gray);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = data2(Index);
고[1,3] = data2(sDate);
고[1,4] = data2(sTime);
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 1 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
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] = data2(Index);
저[1,3] = data2(sDate);
저[1,4] = data2(sTime);
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 1 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 0, -1);
Text_SetColor(Text1,Blue);
}
TL_SetSize(TL1,1);
TL_SetColor(TL1,Gray);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = data2(Index);
저[1,3] = data2(sDate);
저[1,4] = data2(sTime);
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 1 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
if T == -1 and T[1] != -1 Then
{
TL12 = TL_New(고[2,3],고[2,4],고[2,1],data2(sdate),data2(stime),고[2,1]);
TL_Delete(TL13);
TL13 = TL_New(고[1,3],고[1,4],고[1,1],data2(Sdate),data2(Stime),고[1,1]);
TL_SetExtRight(TL13,true);
TL_SetSize(TL13,2);
TL_SetColor(TL12,clr1);
TL_SetSize(TL12,2);
clr1 = Pink;
TL_SetColor(TL13,Pink);
}
if T == 1 and T[1] != 1 Then
{
TL14= TL_New(저[2,3],저[2,4],저[2,1],data2(sdate),data2(stime),저[2,1]);
TL_Delete(TL15);
TL15= TL_New(저[1,3],저[1,4],저[1,1],data2(sdate),data2(stime),저[1,1]);
TL_SetExtRight(TL15,true);
TL_SetColor(TL14,clr2);
TL_SetSize(TL14,2);
clr2 = LightBlue;
TL_SetColor(TL15,clr2);
TL_SetSize(TL15,2);
}
#================================================================#
VAR:mav5(0),mav10(0),mav20(0),mav40(0),mav60(0),mav120(0);
mav5=ma(c,5);
mav10=ma(c,10);
mav20=ma(c,20);
mav40=ma(c,40);
mav60=ma(c,60);
mav120=ma(c,120);
condition1=CountIf(mav10<mav20,20) >= 10 and t==1 and
저[1,1] <mav20[Index-저[1,2]] and 고[1,1]>mav20[Index-고[1,2]];
var:box1(0);
if condition1 Then
{
Box1 = Box_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
Box_Setcolor(box1,MAGENTA);
Box_Setfill(box1,true,100,true);
}
//박스가 저[1,1]에서 고[1,1]까지 그려지게 수정 부탁드립니다
//countif 조건은 역배열 상태에서 만족 하면 됩니다(저[1,1]확정부터가 아닌)
//박스는 층층히 겹치는 부분을 없애주세요
//condition1 배열변수 가능하면 적용 부탁드립니다
감사합니다~
2023-01-05
1002
글번호 165110
지표