예스스탁
예스스탁 답변
2020-06-05 10:34:45
안녕하세요
예스스탁입니다.
지정하신 꼭지점에 신호를 낼 방법은 없습니다.
해당 꼭지점은 사후적으로 판단되는 부분입니다.
동시 상승일떄 추세선이 시작날짜,시작시간,시간가격이 같으면 매수
동시 하락일떄 추세선이 시작날짜,시작시간,시간가격이 같으면 매도하게 내용 추가해 드립니다
신호가 발생하는 봉이 최근 고점이나 저점을 처음으로 인지하는 봉입니다.
input: period1(60),period2(20),period3(5),
선두께1(5),상승색1(green),하락색1(cyan),
선두께2(3),상승색2(red),하락색2(blue),
선두께3(1),상승색3(black),하락색3(black);
Var:j1(0),J2(0),J3(0),T1(0),T2(0),T3(0);
Var: date11(0),time11(0),date12(0),time12(0),TL1(0);
Var: date21(0),time21(0),date22(0),time22(0),TL2(0);
Var: date31(0),time31(0),date32(0),time32(0),TL3(0),Tx(0),Tx1(0);
Array:HiVal1[20](0),LoVal1[20](0),HiBar1[20](0),LoBar1[20](0);
Array:HiVal2[20](0),LoVal2[20](0),HiBar2[20](0),LoBar2[20](0);
Array:HiVal3[20](0),LoVal3[20](0),HiBar3[20](0),LoBar3[20](0);
Array:r[7](0),fr[7](0);
For j1 = 0 To 19
{
HiBar1[j1] = HiBar1[j1] + 1;
LoBar1[j1] = LoBar1[j1] + 1;
}
if crossup(c,highest(c,Period1)[1]) Then
T1 = 1;
if CrossDown(c,Lowest(c,Period1)[1]) Then
T1 = -1;
If T1 == -1 Then
{
If T1[1] != -1 Then
{
For j1 = 18 DownTo 0
{
LoVal1[j1+1] = LoVal1[j1];
LoBar1[j1+1] = LoBar1[j1];
}
LoVal1[0] = close;
LoBar1[0] = 0;
date11 = date[HiBar1[0]];
time11 = stime[HiBar1[0]];
Value11 = HiVal1[0];
date12 = date[LoBar1[0]];
time12 = stime[LoBar1[0]];
Value12 = LoVal1[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색1);
}
If LoVal1[0] > close Then
{
LoVal1[0] = close;
LoBar1[0] = 0;
date12 = date[LoBar1[0]];
time12 = stime[LoBar1[0]];
Value12 = LoVal1[0];
TL_SetEnd(TL1, date12,time12,Value12);
}
}
If T1 == 1 Then
{
If T1[1] != 1 Then
{
For j1 = 18 DownTo 0
{
HiVal1[j1+1] = HiVal1[j1];
HiBar1[j1+1] = HiBar1[j1];
}
HiVal1[0] = close;
HiBar1[0] = 0;
date11 = date[LoBar1[0]];
time11 = stime[LoBar1[0]];
Value11 = LoVal1[0];
date12 = date[HiBar1[0]];
time12 = stime[HiBar1[0]];
Value12 = HiVal1[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색1);
}
If HiVal1[0] < close Then
{
HiVal1[0] = close;
HiBar1[0] = 0;
date12 = date[HiBar1[0]];
time12 = stime[HiBar1[0]];
Value12 = HiVal1[0];
TL_SetEnd(TL1, date12,time12,Value12);
}
}
TL_SetSize(tL1,선두께1);
For j2 = 0 To 19
{
HiBar2[j2] = HiBar2[j2] + 1;
LoBar2[j2] = LoBar2[j2] + 1;
}
if crossup(close,highest(close,Period2)[1]) Then
T2 = 1;
if CrossDown(close,Lowest(close,Period2)[1]) Then
T2 = -1;
If T2 == -1 Then
{
If T2[1] != -1 Then
{
For j2 = 18 DownTo 0
{
LoVal2[j2+1] = LoVal2[j2];
LoBar2[j2+1] = LoBar2[j2];
}
LoVal2[0] = close;
LoBar2[0] = 0;
date21 = date[HiBar2[0]];
time21 = stime[HiBar2[0]];
Value21 = HiVal2[0];
date22 = date[LoBar2[0]];
time22 = stime[LoBar2[0]];
Value22 = LoVal2[0];
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetColor(TL2,하락색2);
}
If LoVal2[0] > close Then
{
LoVal2[0] = close;
LoBar2[0] = 0;
date22 = date[LoBar2[0]];
time22 = stime[LoBar2[0]];
Value22 = LoVal2[0];
TL_SetEnd(TL2, date22,time22,Value22);
}
}
If T2 == 1 Then
{
If T2[1] != 1 Then
{
For j2 = 18 DownTo 0
{
HiVal2[j2+1] = HiVal2[j2];
HiBar2[j2+1] = HiBar2[j2];
}
HiVal2[0] = close;
HiBar2[0] = 0;
date21 = date[LoBar2[0]];
time21 = stime[LoBar2[0]];
Value21 = LoVal2[0];
date22 = date[HiBar2[0]];
time22 = stime[HiBar2[0]];
Value22 = HiVal2[0];
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetColor(TL2,상승색2);
}
If HiVal2[0] < close Then
{
HiVal2[0] = close;
HiBar2[0] = 0;
date22 = date[HiBar2[0]];
time22 = stime[HiBar2[0]];
Value22 = HiVal2[0];
TL_SetEnd(TL2, date22,time22,Value22);
}
}
TL_SetSize(tL2,선두께2);
r[0] = 0;
r[1] = 0.25;
r[2] = 0.375;
r[3] = 0.5;
r[4] = 0.625;
r[5] = 0.75;
r[6] = 1;
For j3 = 0 To 19
{
HiBar3[j3] = HiBar3[j3] + 1;
LoBar3[j3] = LoBar3[j3] + 1;
}
if crossup(close,highest(close,Period3)[1]) Then
T3 = 1;
if CrossDown(close,Lowest(close,Period3)[1]) Then
T3 = -1;
If T3 == -1 Then
{
If T3[1] != -1 Then
{
For j3 = 18 DownTo 0
{
LoVal3[j3+1] = LoVal3[j3];
LoBar3[j3+1] = LoBar3[j3];
}
LoVal3[0] = close;
LoBar3[0] = 0;
date31 = date[HiBar3[0]];
time31 = stime[HiBar3[0]];
Value31 = HiVal3[0];
date32 = date[LoBar3[0]];
time32 = stime[LoBar3[0]];
Value32 = LoVal3[0];
TL3 = TL_New(date31,time31,Value31,date32,time32,Value32);
TL_SetColor(TL3,하락색3);
Tx = Text_New(date31,time31,Value31,"▼");
Text_SetColor(Tx,blue);
Text_SetStyle(Tx,2,1);
Text_SetSize(tx,11);
tx = Text_New(date31,time31,Value31,NumToStr(value31,2)+NewLine);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,11);
date31 = date[HiBar3[0]];
time31 = stime[HiBar3[0]];
date32 = date[0];
time32 = stime[0];
for j3 = 0 to 6
{
fr[j3] = LoVal3[1] + ((HiVal3[0] - LoVal3[1]) * r[j3]);
}
}
If LoVal3[0] > close Then
{
LoVal3[0] = close;
LoBar3[0] = 0;
date32 = date[LoBar3[0]];
time32 = stime[LoBar3[0]];
Value32 = LoVal3[0];
TL_SetEnd(TL3, date32,time32,Value32);
}
}
If T3 == 1 Then
{
If T3[1] != 1 Then
{
For j3 = 18 DownTo 0
{
HiVal3[j3+1] = HiVal3[j3];
HiBar3[j3+1] = HiBar3[j3];
}
HiVal3[0] = close;
HiBar3[0] = 0;
date31 = date[LoBar3[0]];
time31 = stime[LoBar3[0]];
Value31 = LoVal3[0];
date32 = date[HiBar3[0]];
time32 = stime[HiBar3[0]];
Value32 = HiVal3[0];
TL3 = TL_New(date31,time31,Value31,date32,time32,Value32);
TL_SetColor(TL3,상승색3);
Tx1 = Text_New(date31,time31,Value31,"▲");
Text_SetColor(Tx1,red);
Text_SetStyle(Tx1,2,5);
Text_SetSize(tx1,11);
tx = Text_New(date31,time31,Value31,NewLine+NumToStr(value31,2));
Text_SetStyle(tx,2,0);
Text_SetSize(tx,11);
date31 = date[LoBar3[0]];
time31 = stime[LoBar3[0]];
date32 = date[0];
time32 = stime[0];
for j3 = 0 to 6
{
fr[j3] = LoVal3[0] + ((HiVal3[1] - LoVal3[0]) * r[j3]);
}
}
If HiVal3[0] < close Then
{
HiVal3[0] = close;
HiBar3[0] = 0;
date32 = date[HiBar3[0]];
time32 = stime[HiBar3[0]];
Value32 = HiVal3[0];
TL_SetEnd(TL3, date32,time32,Value32);
}
}
TL_SetSize(tL3,선두께3);
if T1 == 1 and T2 == 1 and T3 == 1 and
TL_GetBeginDate(TL1) == TL_GetBeginDate(TL2) and
TL_GetBeginDate(TL1) == TL_GetBeginDate(TL3) and
TL_GetBeginTime(TL1) == TL_GetBeginTime(TL2) and
TL_GetBeginTime(TL1) == TL_GetBeginTime(TL3) and
TL_GetBeginVal(TL1) == TL_GetBeginVal(TL2) and
TL_GetBeginVal(TL1) == TL_GetBeginVal(TL3) Then
buy();
if T1 == -1 and T2 == -1 and T3 == -1 and
TL_GetBeginDate(TL1) == TL_GetBeginDate(TL2) and
TL_GetBeginDate(TL1) == TL_GetBeginDate(TL3) and
TL_GetBeginTime(TL1) == TL_GetBeginTime(TL2) and
TL_GetBeginTime(TL1) == TL_GetBeginTime(TL3) and
TL_GetBeginVal(TL1) == TL_GetBeginVal(TL2) and
TL_GetBeginVal(TL1) == TL_GetBeginVal(TL3) Then
sell();
즐거운 하루되세요
> 동해바다01 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 안녕하세요
바쁜 업무에 수고 많습니다. 파동선 지표2개 또는 3개를
하나의 지표로 만드는 것이 시간이 많이 걸리고 힘드시다고 하여
개인적으로 아래 지표와 같이 지그재그 파동선을 단기, 중기, 장기로
3개를 한 지표에 만들어 보았습니다. 혹시 잘못된 부분은
없는지 아님 더 간단하게 수정은 가능한지 틀린 부분과 수정이 가능한 부분이
있으면 수정 부탁 드리며 첨부한 차트 그림과 같이 단기,중기,장기
파동선 꼭지점이 서로 같이 만날때 시스템 신호가 나오게
할 수 있으면 부탁드립니다. 감사합니다.
++++++++++++++++++
input: period1(60),period2(20),period3(5),
선두께1(5),상승색1(green),하락색1(cyan),
선두께2(3),상승색2(red),하락색2(blue),
선두께3(1),상승색3(black),하락색3(black);
Var:j1(0),J2(0),J3(0),T1(0),T2(0),T3(0);
Var: date11(0),time11(0),date12(0),time12(0),TL1(0);
Var: date21(0),time21(0),date22(0),time22(0),TL2(0);
Var: date31(0),time31(0),date32(0),time32(0),TL3(0),Tx(0),Tx1(0);
Array:HiVal1[20](0),LoVal1[20](0),HiBar1[20](0),LoBar1[20](0);
Array:HiVal2[20](0),LoVal2[20](0),HiBar2[20](0),LoBar2[20](0);
Array:HiVal3[20](0),LoVal3[20](0),HiBar3[20](0),LoBar3[20](0);
Array:r[7](0),fr[7](0);
For j1 = 0 To 19
{
HiBar1[j1] = HiBar1[j1] + 1;
LoBar1[j1] = LoBar1[j1] + 1;
}
if crossup(c,highest(c,Period1)[1]) Then
T1 = 1;
if CrossDown(c,Lowest(c,Period1)[1]) Then
T1 = -1;
If T1 == -1 Then
{
If T1[1] != -1 Then
{
For j1 = 18 DownTo 0
{
LoVal1[j1+1] = LoVal1[j1];
LoBar1[j1+1] = LoBar1[j1];
}
LoVal1[0] = close;
LoBar1[0] = 0;
date11 = date[HiBar1[0]];
time11 = stime[HiBar1[0]];
Value11 = HiVal1[0];
date12 = date[LoBar1[0]];
time12 = stime[LoBar1[0]];
Value12 = LoVal1[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,하락색1);
}
If LoVal1[0] > close Then
{
LoVal1[0] = close;
LoBar1[0] = 0;
date12 = date[LoBar1[0]];
time12 = stime[LoBar1[0]];
Value12 = LoVal1[0];
TL_SetEnd(TL1, date12,time12,Value12);
}
}
If T1 == 1 Then
{
If T1[1] != 1 Then
{
For j1 = 18 DownTo 0
{
HiVal1[j1+1] = HiVal1[j1];
HiBar1[j1+1] = HiBar1[j1];
}
HiVal1[0] = close;
HiBar1[0] = 0;
date11 = date[LoBar1[0]];
time11 = stime[LoBar1[0]];
Value11 = LoVal1[0];
date12 = date[HiBar1[0]];
time12 = stime[HiBar1[0]];
Value12 = HiVal1[0];
TL1 = TL_New(date11,time11,Value11,date12,time12,Value12);
TL_SetColor(TL1,상승색1);
}
If HiVal1[0] < close Then
{
HiVal1[0] = close;
HiBar1[0] = 0;
date12 = date[HiBar1[0]];
time12 = stime[HiBar1[0]];
Value12 = HiVal1[0];
TL_SetEnd(TL1, date12,time12,Value12);
}
}
TL_SetSize(tL1,선두께1);
For j2 = 0 To 19
{
HiBar2[j2] = HiBar2[j2] + 1;
LoBar2[j2] = LoBar2[j2] + 1;
}
if crossup(close,highest(close,Period2)[1]) Then
T2 = 1;
if CrossDown(close,Lowest(close,Period2)[1]) Then
T2 = -1;
If T2 == -1 Then
{
If T2[1] != -1 Then
{
For j2 = 18 DownTo 0
{
LoVal2[j2+1] = LoVal2[j2];
LoBar2[j2+1] = LoBar2[j2];
}
LoVal2[0] = close;
LoBar2[0] = 0;
date21 = date[HiBar2[0]];
time21 = stime[HiBar2[0]];
Value21 = HiVal2[0];
date22 = date[LoBar2[0]];
time22 = stime[LoBar2[0]];
Value22 = LoVal2[0];
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetColor(TL2,하락색2);
}
If LoVal2[0] > close Then
{
LoVal2[0] = close;
LoBar2[0] = 0;
date22 = date[LoBar2[0]];
time22 = stime[LoBar2[0]];
Value22 = LoVal2[0];
TL_SetEnd(TL2, date22,time22,Value22);
}
}
If T2 == 1 Then
{
If T2[1] != 1 Then
{
For j2 = 18 DownTo 0
{
HiVal2[j2+1] = HiVal2[j2];
HiBar2[j2+1] = HiBar2[j2];
}
HiVal2[0] = close;
HiBar2[0] = 0;
date21 = date[LoBar2[0]];
time21 = stime[LoBar2[0]];
Value21 = LoVal2[0];
date22 = date[HiBar2[0]];
time22 = stime[HiBar2[0]];
Value22 = HiVal2[0];
TL2 = TL_New(date21,time21,Value21,date22,time22,Value22);
TL_SetColor(TL2,상승색2);
}
If HiVal2[0] < close Then
{
HiVal2[0] = close;
HiBar2[0] = 0;
date22 = date[HiBar2[0]];
time22 = stime[HiBar2[0]];
Value22 = HiVal2[0];
TL_SetEnd(TL2, date22,time22,Value22);
}
}
TL_SetSize(tL2,선두께2);
r[0] = 0;
r[1] = 0.25;
r[2] = 0.375;
r[3] = 0.5;
r[4] = 0.625;
r[5] = 0.75;
r[6] = 1;
For j3 = 0 To 19
{
HiBar3[j3] = HiBar3[j3] + 1;
LoBar3[j3] = LoBar3[j3] + 1;
}
if crossup(close,highest(close,Period3)[1]) Then
T3 = 1;
if CrossDown(close,Lowest(close,Period3)[1]) Then
T3 = -1;
If T3 == -1 Then
{
If T3[1] != -1 Then
{
For j3 = 18 DownTo 0
{
LoVal3[j3+1] = LoVal3[j3];
LoBar3[j3+1] = LoBar3[j3];
}
LoVal3[0] = close;
LoBar3[0] = 0;
date31 = date[HiBar3[0]];
time31 = stime[HiBar3[0]];
Value31 = HiVal3[0];
date32 = date[LoBar3[0]];
time32 = stime[LoBar3[0]];
Value32 = LoVal3[0];
TL3 = TL_New(date31,time31,Value31,date32,time32,Value32);
TL_SetColor(TL3,하락색3);
Tx = Text_New(date31,time31,Value31,"▼");
Text_SetColor(Tx,blue);
Text_SetStyle(Tx,2,1);
Text_SetSize(tx,11);
tx = Text_New(date31,time31,Value31,NumToStr(value31,2)+NewLine);
Text_SetStyle(tx,2,1);
Text_SetSize(tx,11);
date31 = date[HiBar3[0]];
time31 = stime[HiBar3[0]];
date32 = date[0];
time32 = stime[0];
for j3 = 0 to 6
{
fr[j3] = LoVal3[1] + ((HiVal3[0] - LoVal3[1]) * r[j3]);
}
}
If LoVal3[0] > close Then
{
LoVal3[0] = close;
LoBar3[0] = 0;
date32 = date[LoBar3[0]];
time32 = stime[LoBar3[0]];
Value32 = LoVal3[0];
TL_SetEnd(TL3, date32,time32,Value32);
}
}
If T3 == 1 Then
{
If T3[1] != 1 Then
{
For j3 = 18 DownTo 0
{
HiVal3[j3+1] = HiVal3[j3];
HiBar3[j3+1] = HiBar3[j3];
}
HiVal3[0] = close;
HiBar3[0] = 0;
date31 = date[LoBar3[0]];
time31 = stime[LoBar3[0]];
Value31 = LoVal3[0];
date32 = date[HiBar3[0]];
time32 = stime[HiBar3[0]];
Value32 = HiVal3[0];
TL3 = TL_New(date31,time31,Value31,date32,time32,Value32);
TL_SetColor(TL3,상승색3);
Tx1 = Text_New(date31,time31,Value31,"▲");
Text_SetColor(Tx1,red);
Text_SetStyle(Tx1,2,5);
Text_SetSize(tx1,11);
tx = Text_New(date31,time31,Value31,NewLine+NumToStr(value31,2));
Text_SetStyle(tx,2,0);
Text_SetSize(tx,11);
date31 = date[LoBar3[0]];
time31 = stime[LoBar3[0]];
date32 = date[0];
time32 = stime[0];
for j3 = 0 to 6
{
fr[j3] = LoVal3[0] + ((HiVal3[1] - LoVal3[0]) * r[j3]);
}
}
If HiVal3[0] < close Then
{
HiVal3[0] = close;
HiBar3[0] = 0;
date32 = date[HiBar3[0]];
time32 = stime[HiBar3[0]];
Value32 = HiVal3[0];
TL_SetEnd(TL3, date32,time32,Value32);
}
}
TL_SetSize(tL3,선두께3);