예스스탁
예스스탁 답변
2024-07-12 13:40:37
안녕하세요
예스스탁입니다.
1
스윙하이 발생 후 기준봉의 저가보다 낮은 종가발생
스윙로우 발생 후 기준봉의 고가보다 높은 종가발생 할때 확정되게 수정해 드립니다.
input : Left(5),right(5);
var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0);
var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0);
Array : SHD[5](0),SHT[5](0),SHV[5](0);
Array : SLD[5](0),SLT[5](0),SLV[5](0);
var : SHL(0),SLH(0);
if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then
{
T = 1;
SHL = L[Right];
hd = sDate[right];
hT = sTime[right];
hh = H[right];
}
if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then
{
T = -1;
SLH = H[right];
ld = sDate[right];
lT = sTime[right];
ll = L[right];
}
if T == 1 and C < SHL Then
{
T = 2;
var2 = 0;
var1 = var1+1;
if var1 == 1 then
{
SHD[0] = hd;
SHT[0] = ht;
SHV[0] = hh;
for cnt = 1 to 4
{
SHD[cnt] = SHD[cnt-1][1];
SHT[cnt] = SHT[cnt-1][1];
SHV[cnt] = SHV[cnt-1][1];
}
if SLV[0] > 0 Then
{
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
}
}
if var1 >= 2 and H[right] > SHV[0] then
{
SHD[0] = sdate[right];
SHT[0] = stime[right];
SHV[0] = H[right];
if SLV[0] > 0 Then
{
TL_Delete(TL);
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
}
}
if SHV[1] > 0 Then
{
TL_Delete(HTL1);
HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]);
TL_SetColor(HTL1,RED);
}
if SHV[2] > 0 Then
{
TL_Delete(HTL2);
HTL2 = TL_New(SHD[2],SHT[2],SHV[2],SHD[0],SHT[0],SHV[0]);
TL_SetColor(HTL2,RED);
}
}
if T == -1 and C > SLH Then
{
T = -2;
var1 = 0;
var2 = var2+1;
if var2 == 1 then
{
SLD[0] = ld;
SLT[0] = lt;
SLV[0] = ll;
for cnt = 1 to 4
{
SLD[cnt] = SLD[cnt-1][1];
SLT[cnt] = SLT[cnt-1][1];
SLV[cnt] = SLV[cnt-1][1];
}
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
}
}
if var2 >= 2 and L[right] < SLV[0] then
{
SLD[0] = sdate[right];
SLT[0] = stime[right];
SLV[0] = L[right];
TL_Delete(TL);
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
}
}
if SLV[1] > 0 Then
{
TL_Delete(LTL1);
LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]);
TL_SetColor(LTL1,BLUE);
}
if SLV[2] > 0 Then
{
TL_Delete(LTL2);
LTL2 = TL_New(SLD[2],SLT[2],SLV[2],SLD[0],SLT[0],SLV[0]);
TL_SetColor(LTL2,BLUE);
}
}
2
input : Left(5),right(5);
var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0);
var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0);
Array : SHD[5](0),SHT[5](0),SHV[5](0);
Array : SLD[5](0),SLT[5](0),SLV[5](0);
var : SHL(0),SLH(0);
if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then
{
T = 1;
SHL = L[Right];
hd = sDate[right];
hT = sTime[right];
hh = H[right];
}
if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then
{
T = -1;
SLH = H[right];
ld = sDate[right];
lT = sTime[right];
ll = L[right];
}
if T == 1 and C < SHL Then
{
T = 2;
Find(1);
}
3
input : Left(5),right(5);
var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0);
var : hd(0),ht(0),hh(0),ld(0),lt(0),ll(0);
Array : SHD[5](0),SHT[5](0),SHV[5](0);
Array : SLD[5](0),SLT[5](0),SLV[5](0);
var : SHL(0),SLH(0);
if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then
{
T = 1;
SHL = L[Right];
hd = sDate[right];
hT = sTime[right];
hh = H[right];
}
if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then
{
T = -1;
SLH = H[right];
ld = sDate[right];
lT = sTime[right];
ll = L[right];
}
if T == -1 and C > SLH Then
{
T = -2;
Find(1);
}
즐거운 하루되세요
> solution 님이 쓴 글입니다.
> 제목 : 고점 저점 추세선 수정부탁해요.
> 고점 저점 추세선 기존 수식입니다.
SwingHigh 기준봉의 고가와 저가가 있습니다. 위 기준봉의 저가 보다 가격이 하락하면 그때 swinghigh 기준봉 고가를 진짜 고가로 인정해주고,
swinglow 기준봉의 저가와 고가가 있는데 가격이 위 고가 보다 더 상승할 때 위 기준봉의 저가를 진짜 저가로 인정해서 찐 고가와 저가만 추세선을 연결하게 수정부탁드려요.
[기준봉의 고가 저가 범위 내에서 가격이 움직일 때(가끔 기준봉의 범위가 커서 예를 들어 상한가 양봉과 같이 그 안에서 가격이 등락하면서 잉태형 캔들들이 swinghigh나 low를 만들어도 잉태형 캔들은)는 무시하고 추후 가격이 기준봉의 고가나 저가를 돌파할 때 ( 예를 들어 과거 장대 양봉) 기준봉의 고가나 저가를 기준점으로 인정해서 추세선을 그리도록]
그리고 이전 SwingHigh 기준봉의 저가를 돌파하며 하락하는 종목 검색식,
이전 swinglow 기준봉의 고가를 상승 돌파하는 종목 검색식 부탁합니다.
input : Left(5),right(5);
var : T(0),cnt(0),TL(0),HTL1(0),HTL2(0),LTL1(0),LTL2(0);
Array : SHD[5](0),SHT[5](0),SHV[5](0);
Array : SLD[5](0),SLT[5](0),SLV[5](0);
if SwingHigh(1,H,Left,Right,Left+Right+1) != -1 then
{
var2 = 0;
var1 = var1+1;
if var1 == 1 then
{
SHD[0] = sdate[right];
SHT[0] = stime[right];
SHV[0] = H[right];
for cnt = 1 to 4
{
SHD[cnt] = SHD[cnt-1][1];
SHT[cnt] = SHT[cnt-1][1];
SHV[cnt] = SHV[cnt-1][1];
}
if SLV[0] > 0 Then
{
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
}
}
if var1 >= 2 and H[right] > SHV[0] then
{
SHD[0] = sdate[right];
SHT[0] = stime[right];
SHV[0] = H[right];
if SLV[0] > 0 Then
{
TL_Delete(TL);
TL = TL_New(SLD[0],SLT[0],SLV[0],SHD[0],SHT[0],SHV[0]);
}
}
if SHV[1] > 0 Then
{
TL_Delete(HTL1);
HTL1 = TL_New(SHD[1],SHT[1],SHV[1],SHD[0],SHT[0],SHV[0]);
TL_SetColor(HTL1,RED);
}
if SHV[2] > 0 Then
{
TL_Delete(HTL2);
HTL2 = TL_New(SHD[2],SHT[2],SHV[2],SHD[0],SHT[0],SHV[0]);
TL_SetColor(HTL2,RED);
}
}
if SwingLow(1,L,Left,Right,Left+Right+1) != -1 then
{
var1 = 0;
var2 = var2+1;
if var2 == 1 then
{
SLD[0] = sdate[right];
SLT[0] = stime[right];
SLV[0] = L[right];
for cnt = 1 to 4
{
SLD[cnt] = SLD[cnt-1][1];
SLT[cnt] = SLT[cnt-1][1];
SLV[cnt] = SLV[cnt-1][1];
}
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
}
}
if var2 >= 2 and L[right] < SLV[0] then
{
SLD[0] = sdate[right];
SLT[0] = stime[right];
SLV[0] = L[right];
TL_Delete(TL);
if SHV[0] > 0 Then
{
TL = TL_New(SHD[0],SHT[0],SHV[0],SLD[0],SLT[0],SLV[0]);
}
}
if SLV[1] > 0 Then
{
TL_Delete(LTL1);
LTL1 = TL_New(SLD[1],SLT[1],SLV[1],SLD[0],SLT[0],SLV[0]);
TL_SetColor(LTL1,BLUE);
}
if SLV[2] > 0 Then
{
TL_Delete(LTL2);
LTL2 = TL_New(SLD[2],SLT[2],SLV[2],SLD[0],SLT[0],SLV[0]);
TL_SetColor(LTL2,BLUE);
}
}