커뮤니티

시스템 문의

프로필 이미지
labio
2016-10-19 20:03:51
122
글번호 103104
답변완료
안녕하세요. 일전에 문의드렸던 건 중에 아래와 같은 식을 답변 받았습니다. 아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다. 도와주시면 감사하겠습니다. ======================== input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); }
시스템
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2016-10-20 09:35:45

안녕하세요 예스스탁입니다. "아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다." 문의하신 내용이 스위칭을 막고자 하는시는지 모호합니다. 해당식이 기본적으로 스위칭이 되는 식입니다. buy진입 후 sell발생하면 청산후 매도진입 sell진입 후 buy발생하면 청산후 매수진입 진입후 설정하신 다른 강제청산으로 청산되기 전에는 다른 진입으로 스위칭이 안되게 작성해 올려드립니다. input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 and MarketPosition == 0 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 and MarketPosition == 0 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); } 즐거운 하루되세요 > labio 님이 쓴 글입니다. > 제목 : 시스템 문의 > 안녕하세요. 일전에 문의드렸던 건 중에 아래와 같은 식을 답변 받았습니다. 아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다. 도와주시면 감사하겠습니다. ======================== input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); }
프로필 이미지

labio

2016-10-20 09:56:01

스위칭이 되었으면 하는데 되지 않습니다. 이런 경우는 어디에 문의를 하는게 좋을까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템 문의 > 안녕하세요 예스스탁입니다. "아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다." 문의하신 내용이 스위칭을 막고자 하는시는지 모호합니다. 해당식이 기본적으로 스위칭이 되는 식입니다. buy진입 후 sell발생하면 청산후 매도진입 sell진입 후 buy발생하면 청산후 매수진입 진입후 설정하신 다른 강제청산으로 청산되기 전에는 다른 진입으로 스위칭이 안되게 작성해 올려드립니다. input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 and MarketPosition == 0 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 and MarketPosition == 0 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); } 즐거운 하루되세요 > labio 님이 쓴 글입니다. > 제목 : 시스템 문의 > 안녕하세요. 일전에 문의드렸던 건 중에 아래와 같은 식을 답변 받았습니다. 아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다. 도와주시면 감사하겠습니다. ======================== input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); }
프로필 이미지

예스스탁 예스스탁 답변

2016-10-20 10:06:57

> labio 님이 쓴 글입니다. > 제목 : Re : Re : 시스템 문의 > 스위칭이 되었으면 하는데 되지 않습니다. 이런 경우는 어디에 문의를 하는게 좋을까요? > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 시스템 문의 > 안녕하세요 예스스탁입니다. "아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다." 문의하신 내용이 스위칭을 막고자 하는시는지 모호합니다. 해당식이 기본적으로 스위칭이 되는 식입니다. buy진입 후 sell발생하면 청산후 매도진입 sell진입 후 buy발생하면 청산후 매수진입 진입후 설정하신 다른 강제청산으로 청산되기 전에는 다른 진입으로 스위칭이 안되게 작성해 올려드립니다. input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 and MarketPosition == 0 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 and MarketPosition == 0 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); } 즐거운 하루되세요 > labio 님이 쓴 글입니다. > 제목 : 시스템 문의 > 안녕하세요. 일전에 문의드렸던 건 중에 아래와 같은 식을 답변 받았습니다. 아래식은 매수 진입도중 강제청산조건이 되기 전에 매도조건이 될 경우, 반대 매매로 들어가서 청산이 되는 것 같이 됩니다. 청산과 동시에 매도도 성립이 되어야하는데 (스위치), 어떻게 수정하면 될지 잘 모르겠습니다. 도와주시면 감사하겠습니다. ======================== input : Left(5),Right(5); var : T(0),cnt(0); var : Hi(0),SH(0),Y1(0),Y2(0),Y3(0),LL1(0),LD1(0),LT1(0),LL2(0),LD2(0),LT2(0),BTL(0); var : Li(0),SL(0),Z1(0),Z2(0),Z3(0),HH1(0),HD1(0),HT1(0),HH2(0),HD2(0),HT2(0),STL(0); #고점발생 if SwingHigh(1,H,Left,right,Left+Right+1) != -1 Then{ T = 1; Hi = index[Right]; SH = H[right]; } #저점발생 if SwingLow(1,L,Left,right,Left+Right+1) != -1 Then{ T = -1; Li = index[right]; SL = L[right]; } #고점이 발생후 고점보다 높은 고가 발생하면 다음 고점/저점 판별까지 대기 if T >= 1 and H > SH Then T = 0; #저점이 발생후 저점보다 낮은 저가 발생하면 다음 고점/저점 판별까지 대기 if T <= -1 and L < SL Then T = 0; #고점발생후 양봉 2개 발생 if T == 1 and countif(C>O,index-Hi) >= 2 Then{ T = 2; #첫양봉과 두번째 양봉 위치 계산 Y1 = 0; Y2 = 0; Y3 = 0; for cnt = (index-Hi)-1 downto 0{ if C[cnt] > O[cnt] Then{ Y1 = Y1+1; if Y1 == 1 Then Y2 = cnt; if Y1 == 2 Then Y3 = cnt; } } #고점에서 첫양봉까지의 최저가위치와 값 계산 LL1 = L[(index-Hi)-1]; LD1 = sdate[(index-Hi)-1]; LT1 = sTime[(index-Hi)-1]; for cnt = Y2 to (index-Hi)-1{ if L[cnt] < LL1 then{ LL1 = L[cnt]; LD1 = sdate[cnt]; LT1 = stime[cnt]; } } #첫양봉에서 두번째양봉까지의 최저가위치와 값 계산 LL2 = L[Y3]; LD2 = sdate[Y3]; LT2 = sTime[Y3]; for cnt = Y3 to Y2-1{ if L[cnt] < LL2 then{ LL2 = L[cnt]; LD2 = sdate[cnt]; LT2 = stime[cnt]; } } #매수 추세선 출력 BTL = TL_New(LD1,LT1,LL1,LD2,LT2,LL2); TL_SetExtRight(BTL,true); TL_SetColor(BTL,RED); } #추세선 발생 후 해당 추세선 보다 낮은 종가 발생하면 매수 if T == 2 then{ if C < TL_GetValue(BTL,sdate,stime) Then buy("b"); } #저점발생후 음봉 2개 발생 if T == -1 and countif(C<O,index-Li) >= 2 Then{ T = -2; #첫음봉과 두번째 음봉 위치 계산 Z1 = 0; Z2 = 0; Z3 = 0; for cnt = (index-Li)-1 downto 0{ if C[cnt] < O[cnt] Then{ Z1 = Z1+1; if Z1 == 1 Then Z2 = cnt; if Z1 == 2 Then Z3 = cnt; } } #저점에서 첫음봉까지의 최고가위치와 값 계산 HH1 = H[(index-Li)-1]; HD1 = sdate[(index-Li)-1]; HT1 = sTime[(index-Li)-1]; for cnt = Z2 to (index-Li)-1{ if H[cnt] > HH1 then{ HH1 = H[cnt]; HD1 = sdate[cnt]; HT1 = stime[cnt]; } } #첫음봉에서 두번째음봉까지의 최고가위치와 값 계산 HH2 = H[Z3]; HD2 = sdate[Z3]; HT2 = sTime[Z3]; for cnt = Z3 to Z2-1{ if H[cnt] > HH2 then{ HH2 = H[cnt]; HD2 = sdate[cnt]; HT2 = stime[cnt]; } } #매도 추세선 출력 STL = TL_New(HD1,HT1,HH1,HD2,HT2,HH2); TL_SetExtRight(STL,true); TL_SetColor(STL,BLUE); } #추세선 발생 후 해당 추세선 보다 높은 종가 발생하면 매도 if T == -2 then{ if C > TL_GetValue(STL,sdate,stime) Then sell("s"); }