예스스탁
예스스탁 답변
2020-03-11 10:19:34
안녕하세요
예스스탁입니다.
{ }와 ( )의 짝이 맞지 않는 부분이 있어 수정해 드립니다.
Input:변동률(0.01),레벨(1),익절틱수(20),손절틱수(15);
Var:행(0,data1),열(0,data1),고점(1,data1),저점(-1,data1),신규(1,data1),연장(2,data1),연속(3,data1),삼선(4,data1),cnt(0,data1),
고라인기울기(0,data1),고라인시작(0,data1),고라인끝(0,data1),
저라인기울기(0,data1),저라인시작(0,data1),저라인끝(0,data1),
시작일(0,data1),시작시각(0,data1),v1(0,data1),val1(0,data1),val2(0,data1);
Array:고[10,44](0,data1),저[10,44](0,data1), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0,data1),처리구분[5](0,data1),TL[3](0,data1),TL1[2](0,data1),고0[10,4](0,data1),저0[10,4](0,data1),결과리턴[8](0,data1);
//=========================================================//
If 레벨 <= 4 Then
{
v1 = 레벨 * 10;
val1 = data1(ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분));
If 최종상태[레벨] == 고점 Then
{
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then
{
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then
{
TL[0] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1]);
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then
{
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then
{
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then
{
TL[0] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1]);
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
}
}
Else
{
Alert("4레벨까지만 가능합니다!!");
}
//=========================================================//
cnt = cnt + 1;
If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then
{
For 행 = 1 To 10
{
For 열 = 1 To 4 { // 추세채널을 판단할 레벨만 사용자함수에 전달
고0[행,열] = 고[행,v1 + 열];
저0[행,열] = 저[행,v1 + 열];
}
}
val2 = data1(YHS_Channel(고0,저0,결과리턴));
If val2 == 1 Then { // 추세대가 형성되었다면
시작일 = 결과리턴[0];
시작시각 = 결과리턴[1];
고라인기울기 = 결과리턴[2];
고라인시작 = 결과리턴[3];
고라인끝 = 결과리턴[4];
저라인기울기 = 결과리턴[5];
저라인시작 = 결과리턴[6];
저라인끝 = 결과리턴[7];
If 고라인시작[1] == 고라인시작 and 고라인기울기[1] == 고라인기울기 Then { // 겹쳐 그리지 않도록
TL_SetEnd(TL1[0],sDate,sTime,고라인끝);
} Else {
TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝);
TL_SetColor(TL1[0],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[0],3);
}
If 저라인시작[1] == 저라인시작 and 저라인기울기[1] == 저라인기울기 Then {
TL_SetEnd(TL1[1],sDate,sTime,저라인끝);
} Else {
TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝);
TL_SetColor(TL1[1],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[1],3);
}
}
}
Var:행2(0,data2),열2(0,data2),고점2(1,data2),저점2(-1,data2),신규2(1,data2),연장2(2,data2),연속2(3,data2),삼선2(4,data2),cnt2(0,data2),
고라인기울기2(0,data2),고라인시작2(0,data2),고라인끝2(0,data2),
저라인기울기2(0,data2),저라인시작2(0,data2),저라인끝2(0,data2),
시작일2(0,data2),시작시각2(0,data2),v12(0,data2),val12(0,data2),val22(0,data2);
Array:고2[10,44](0,data2),저2[10,44](0,data2), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태2[5](0,data2),처리구분2[5](0,data2),TL2[3](0,data2),TL12[2](0,data2),고02[10,4](0,data2),저02[10,4](0,data2),결과리턴2[8](0,data2);
//=========================================================//
If 레벨 <= 4 Then
{
v1 = 레벨 * 10;
val1 = data2(ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분));
If 최종상태[레벨] == 고점 Then
{
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1]);
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then
{
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then
{
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then
{
TL[0] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1]);
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
}
}
Else
{
Alert("4레벨까지만 가능합니다!!");
}
//=========================================================//
cnt = cnt + 1;
If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then
{
For 행 = 1 To 10
{
For 열 = 1 To 4 { // 추세채널을 판단할 레벨만 사용자함수에 전달
고0[행,열] = 고[행,v1 + 열];
저0[행,열] = 저[행,v1 + 열];
}
}
val2 = data1(YHS_Channel(고0,저0,결과리턴));
If val2 == 1 Then { // 추세대가 형성되었다면
시작일 = 결과리턴[0];
시작시각 = 결과리턴[1];
고라인기울기 = 결과리턴[2];
고라인시작 = 결과리턴[3];
고라인끝 = 결과리턴[4];
저라인기울기 = 결과리턴[5];
저라인시작 = 결과리턴[6];
저라인끝 = 결과리턴[7];
If 고라인시작[1] == 고라인시작 and 고라인기울기[1] == 고라인기울기 Then { // 겹쳐 그리지 않도록
TL_SetEnd(TL1[0],sDate,sTime,고라인끝);
} Else {
TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝);
TL_SetColor(TL1[0],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[0],3);
}
If 저라인시작[1] == 저라인시작 and 저라인기울기[1] == 저라인기울기 Then {
TL_SetEnd(TL1[1],sDate,sTime,저라인끝);
} Else {
TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝);
TL_SetColor(TL1[1],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[1],3);
}
}
If (cnt = 0) and (cnt2 > 0 and cnt2 < (레벨 + 1) * 20) Then
{
고라인끝2 = 고라인끝2 + 고라인기울기2;
저라인끝2 = 저라인끝2 + 저라인기울기2;
If (max(고라인끝,저라인끝) >= data1(C)) and (data1(c) >= min(고라인끝,저라인끝)) and (CrossUp(data2(C), max(고라인끝2, 저라인끝2)))
Then
Buy();
}
If (cnt > 0) and (cnt < (레벨 + 1) * 20) and (cnt2 = 0) Then
{
고라인끝 = 고라인끝 + 고라인기울기;
저라인끝 = 저라인끝 + 저라인기울기;
If (CrossUp(data1(C), max(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2))
Then
Buy();
}
If (cnt = 0) and (cnt2 > 0 and cnt2 < (레벨 + 1) * 20) Then
{
고라인끝2 = 고라인끝2 + 고라인기울기2;
저라인끝2 = 저라인끝2 + 저라인기울기2;
If (CrossDown(data1(C), Min(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2))
Then
Sell();
}
If (cnt > 0) and (cnt < (레벨 + 1) * 20) and (cnt2 = 0) Then
{
고라인끝 = 고라인끝 + 고라인기울기;
저라인끝 = 저라인끝 + 저라인기울기;
If (max(고라인끝,저라인끝) >= data1(C)) and (data1(c) >= min(고라인끝,저라인끝)) and (CrossDown(data2(C), max(고라인끝2, 저라인끝2)))
Then
Sell();
}
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
즐거운 하루되세요
> maker 님이 쓴 글입니다.
> 제목 : 수정 부탁드립니다.
> Data2 의 지표를 적용하려면 시간이 많이 걸린다고 하셔서
시간이 많이 걸릴 것 같은 부분은 제가 직접 작업을 했는데 오류가 있습니다.
진입 조건 첫 번째와 네 번째 Then, 마지막 스탑로스에서 오류가 나는데
수정 부탁 드립니다.
감사합니다.
////////////////////////////////////////////////////////////////////////////////
Input:변동률(0.01),레벨(1),익절틱수(20),손절틱수(15);
Var:행(0,data1),열(0,data1),고점(1,data1),저점(-1,data1),신규(1,data1),연장(2,data1),연속(3,data1),삼선(4,data1),cnt(0,data1),
고라인기울기(0,data1),고라인시작(0,data1),고라인끝(0,data1),
저라인기울기(0,data1),저라인시작(0,data1),저라인끝(0,data1),
시작일(0,data1),시작시각(0,data1),v1(0,data1),val1(0,data1),val2(0,data1);
Array:고[10,44](0,data1),저[10,44](0,data1), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태[5](0,data1),처리구분[5](0,data1),TL[3](0,data1),TL1[2](0,data1),고0[10,4](0,data1),저0[10,4](0,data1),결과리턴[8](0,data1);
//=========================================================//
If 레벨 <= 4 Then {
v1 = 레벨 * 10;
val1 = data1(ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분));
If 최종상태[레벨] == 고점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1]);
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1]);
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
}
} Else {
Alert("4레벨까지만 가능합니다!!");
}
//=========================================================//
cnt = cnt + 1;
If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then {
For 행 = 1 To 10 {
For 열 = 1 To 4 { // 추세채널을 판단할 레벨만 사용자함수에 전달
고0[행,열] = 고[행,v1 + 열];
저0[행,열] = 저[행,v1 + 열];
}
}
val2 = data1(YHS_Channel(고0,저0,결과리턴));
If val2 == 1 Then { // 추세대가 형성되었다면
시작일 = 결과리턴[0];
시작시각 = 결과리턴[1];
고라인기울기 = 결과리턴[2];
고라인시작 = 결과리턴[3];
고라인끝 = 결과리턴[4];
저라인기울기 = 결과리턴[5];
저라인시작 = 결과리턴[6];
저라인끝 = 결과리턴[7];
If 고라인시작[1] == 고라인시작 and 고라인기울기[1] == 고라인기울기 Then { // 겹쳐 그리지 않도록
TL_SetEnd(TL1[0],sDate,sTime,고라인끝);
} Else {
TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝);
TL_SetColor(TL1[0],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[0],3);
}
If 저라인시작[1] == 저라인시작 and 저라인기울기[1] == 저라인기울기 Then {
TL_SetEnd(TL1[1],sDate,sTime,저라인끝);
} Else {
TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝);
TL_SetColor(TL1[1],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[1],3);
}
Var:행2(0,data2),열2(0,data2),고점2(1,data2),저점2(-1,data2),신규2(1,data2),연장2(2,data2),연속2(3,data2),삼선2(4,data2),cnt2(0,data2),
고라인기울기2(0,data2),고라인시작2(0,data2),고라인끝2(0,data2),
저라인기울기2(0,data2),저라인시작2(0,data2),저라인끝2(0,data2),
시작일2(0,data2),시작시각2(0,data2),v12(0,data2),val12(0,data2),val22(0,data2);
Array:고2[10,44](0,data2),저2[10,44](0,data2), // 열번호 : 1=가격,2=Index,3=sDate,4=sTime,11=가격,12=Index,13=sDate,14=sTime
최종상태2[5](0,data2),처리구분2[5](0,data2),TL2[3](0,data2),TL12[2](0,data2),고02[10,4](0,data2),저02[10,4](0,data2),결과리턴2[8](0,data2);
//=========================================================//
If 레벨 <= 4 Then {
v1 = 레벨 * 10;
val1 = data2(ChgRateZigZag301(H,L,변동률,고,저,최종상태,처리구분));
If 최종상태[레벨] == 고점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1]);
TL[1] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
TL[2] = TL_New(저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
}
}
If 최종상태[레벨] == 저점 Then {
If 처리구분[레벨] == 신규 Then
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연장 Then
TL_SetEnd(TL[2],저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
If 처리구분[레벨] == 연속 Then {
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
If 처리구분[레벨] == 삼선 Then {
TL[0] = TL_New(고[2,v1 + 3],고[2,v1 + 4],고[2,v1 + 1],
저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1]);
TL[1] = TL_New(저[2,v1 + 3],저[2,v1 + 4],저[2,v1 + 1],
고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1]);
TL[2] = TL_New(고[1,v1 + 3],고[1,v1 + 4],고[1,v1 + 1],
저[1,v1 + 3],저[1,v1 + 4],저[1,v1 + 1]);
}
}
} Else {
Alert("4레벨까지만 가능합니다!!");
}
//=========================================================//
cnt = cnt + 1;
If (처리구분[레벨] == 신규 or 처리구분[레벨] == 연속) Then {
For 행 = 1 To 10 {
For 열 = 1 To 4 { // 추세채널을 판단할 레벨만 사용자함수에 전달
고0[행,열] = 고[행,v1 + 열];
저0[행,열] = 저[행,v1 + 열];
}
}
val2 = data1(YHS_Channel(고0,저0,결과리턴));
If val2 == 1 Then { // 추세대가 형성되었다면
시작일 = 결과리턴[0];
시작시각 = 결과리턴[1];
고라인기울기 = 결과리턴[2];
고라인시작 = 결과리턴[3];
고라인끝 = 결과리턴[4];
저라인기울기 = 결과리턴[5];
저라인시작 = 결과리턴[6];
저라인끝 = 결과리턴[7];
If 고라인시작[1] == 고라인시작 and 고라인기울기[1] == 고라인기울기 Then { // 겹쳐 그리지 않도록
TL_SetEnd(TL1[0],sDate,sTime,고라인끝);
} Else {
TL1[0] = TL_New(시작일,시작시각,고라인시작,sDate,sTime,고라인끝);
TL_SetColor(TL1[0],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[0],3);
}
If 저라인시작[1] == 저라인시작 and 저라인기울기[1] == 저라인기울기 Then {
TL_SetEnd(TL1[1],sDate,sTime,저라인끝);
} Else {
TL1[1] = TL_New(시작일,시작시각,저라인시작,sDate,sTime,저라인끝);
TL_SetColor(TL1[1],IFF(고라인기울기<0,RED,BLUE));
TL_SetSize(TL1[1],3);
}
If (cnt = 0) and (cnt2 > 0 and cnt2 < (레벨 + 1) * 20) Then {
고라인끝2 = 고라인끝2 + 고라인기울기2;
저라인끝2 = 저라인끝2 + 저라인기울기2;
If (max(고라인끝,저라인끝) >= data1(C)) and (data1(c) >= min(고라인끝,저라인끝)) and (CrossUp(data2(C), max(고라인끝2, 저라인끝2))
Then
Buy();
}
If (cnt > 0) and (cnt < (레벨 + 1) * 20) and (cnt2 = 0) Then {
고라인끝 = 고라인끝 + 고라인기울기;
저라인끝 = 저라인끝 + 저라인기울기;
If (CrossUp(data1(C), max(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2))
Then
Buy();
}
If (cnt = 0) and (cnt2 > 0 and cnt2 < (레벨 + 1) * 20) Then {
고라인끝2 = 고라인끝2 + 고라인기울기2;
저라인끝2 = 저라인끝2 + 저라인기울기2;
If (CrossDown(data1(C), Min(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2))
Then
Sell();
}
If (cnt > 0) and (cnt < (레벨 + 1) * 20) and (cnt2 = 0) Then {
고라인끝 = 고라인끝 + 고라인기울기;
저라인끝 = 저라인끝 + 저라인기울기;
If (max(고라인끝,저라인끝) >= data1(C)) and (data1(c) >= min(고라인끝,저라인끝)) and (CrossDown(data2(C), max(고라인끝2, 저라인끝2))
Then
Sell();
}
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);