커뮤니티

예스랭귀지 Q&A

글쓰기

새벽에 님에 의해서 삭제되었습니다.

프로필 이미지
새벽에
2020-03-11
6
글번호 136794
지표
답변완료

부탁 드립니다

수고 합니다 식좀 부탁합니다 이평선 20 이평선 고가 저가 이평선 60 이평선 이렇게 사용합니다 매수 조건 -- 60 이평선을 돌파해야하고 이평선으로 3개로 볼때 골드 데드가 아닌고요 제일 위선(60 이평선)을 종가상 돌파하고 다음봉이 종가상 위에 있으면 매수 손절 조건 -- 진입한 선 기준(60 이편선) 종가상 이평선을 이탈이나오고 다음봉이 종가상 전봉(일봉전)보다 낮으면 손절 청산 조건 -- 30틱 이상 수익이 나온다음 20 이평선 저가을 종가상 이탈시 익절입니다 30틱 아래는 손절로 대응합니다 재매수 조건 -- 60 이평선이 20이평선 고가 저가 아래있고 20 이평선으로 종가상 돌파하면 매수 재매수 손절 -- 20 이평선 저가를 이탈시 손절 단 매수청산했다고 바로 매도를 들어가면 않되요()
프로필 이미지
리치87
2020-03-11
242
글번호 136793
시스템
답변완료

수식 작성 부탁드립니다.

다음 조건의 수식 작성을 부탁드립니다. 1. 거래 종목인 주지표는 선물이며, 거래는 매일 오후 3시에 한번 만 함. 2. 보조지표1은 '거래 직전일 코스피 외인 순매수 금액'이며, 보조지표2는 '거래 직전일 코스피 개인 순매수 금액'임. 보조지표 3은 '거래 직전일 코스닥 외인 순매수 금액'임 3. 거래 시점에서 보조지표 1이 +면 1000만원(기준금액의 1.0배로 작성해도 무방) 매수함. 3. 거래 시점에서 보조지표 1과 2 모두 +면 1500만원(기준금액의 1.5배로 작성해도 무방) 매수함. 4. 거래 시점에서 보조지표 1, 2, 3, 모두 +면 2000만원(기준금액의 2.0배로 작성해도 무방) 매수함 5. 청산은 거래 다음 날 오후 3시 10분에 무조건 청산함. * 보조지표는 거래 당일의 순매수 금액이 아니라 '거래 전날'의 순매수 금액입니다. * 청산시점은 거래 당일이 아닌 거래 다음 날 오후 3시 10분입니다.
프로필 이미지
은색
2020-03-11
247
글번호 136792
시스템
답변완료

Data2 질문 드립니다.

Data2를 제가 직접 적어서 수정해봤는데 Data2가 제대로 적용이 안되는 것 같습니다. 수정 가능하시면 수정 부탁 드리며, 시간상 수정이 불가능하시면 방법이라도 부탁드리겠습니다. 부탁드립니다. 감사합니다. 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(); } } If (cnt = 0) and (cnt2 = 0) Then { If (CrossUp(data1(C), Min(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2)) or (CrossUp(data2(C), Min(고라인끝2,저라인끝2)) and max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝)) Then Buy(); } If (cnt > 0) and (cnt < (레벨 + 1) * 20) and (cnt2 > 0) and (cnt2 < (레벨 + 1) * 20) Then { 고라인끝 = 고라인끝 + 고라인기울기; 저라인끝 = 저라인끝 + 저라인기울기; 고라인끝2 = 고라인끝2 + 고라인기울기2; 저라인끝2 = 저라인끝2 + 저라인기울기2; If (CrossDown(data1(C), Max(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2)) or (CrossDown(data2(C), Max(고라인끝2,저라인끝2)) and max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝)) Then Sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
maker
2020-03-11
268
글번호 136791
시스템
답변완료

수식수정요청

안녕하세요 늘 도움 감사드립니다. 다름이아니라 아래의 수식에서 양봉 음봉 시가에 선이 다 표시가 되어 나옵니다 하여 음봉 고점에 선이 표시되도록 수정부탁드립니다 input : 기간(30),k(0.0002); var : cnt(0),bc(0),bo(0),sc(0),so(0); var1 = Highest(H,기간)*(1+k); var2 = Highest(H,기간); var3 = Lowest(L,기간)*(1+k); var4 = Lowest(L,기간); bc = 0; bo = 0; sc = 0; so = 0; for cnt = 0 to 기간-1 { if C[cnt] > O[cnt] and (bc == 0 or (bc > 0 and c[cnt] > bc)) Then { bc = c[cnt]; bo = O[cnt]; } if C[cnt] < O[cnt] and (sc == 0 or (sc > 0 and c[cnt] < sc)) Then { sc = c[cnt]; so = O[cnt]; } } plot1(var1); plot2(var2); plot3(var3); plot4(var4); plot5(bo); plot6(so);
프로필 이미지
알리섬
2020-03-11
268
글번호 136784
지표
답변완료

수정 부탁드립니다.

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(); } If (cnt = 0) and (cnt2 = 0) Then { If (CrossUp(data1(C), Min(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2)) or (CrossUp(data2(C), Min(고라인끝2,저라인끝2)) and max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝)) Then Buy(); } If (cnt > 0) and (cnt < (레벨 + 1) * 20) and (cnt2 > 0) and (cnt2 < (레벨 + 1) * 20) Then { 고라인끝 = 고라인끝 + 고라인기울기; 저라인끝 = 저라인끝 + 저라인기울기; 고라인끝2 = 고라인끝2 + 고라인기울기2; 저라인끝2 = 저라인끝2 + 저라인기울기2; If (CrossDown(data1(C), Max(고라인끝,저라인끝)) and max(고라인끝2,저라인끝2) >= data2(c) and data2(c) >= min(고라인끝2,저라인끝2)) or (CrossDown(data2(C), Max(고라인끝2,저라인끝2)) and max(고라인끝,저라인끝) >= data1(c) and data1(c) >= min(고라인끝,저라인끝)) Then Sell(); } SetStopProfittarget(PriceScale*익절틱수,PointStop); SetStopLoss(PriceScale*손절틱수,PointStop);
프로필 이미지
maker
2020-03-11
247
글번호 136783
시스템
답변완료

문의 합니다..

2. input : Period1(9),Period2(5),Period3(5),Period4(5); var : stok(0),stod(0); Stok = AccumN(C-lowest(L,Period1),Period2)/AccumN((highest(H,Period1)-lowest(L,Period1)),Period2)* 100; Stod = ema(stok,Period4); 1. if MarketPosition == -1 and data1 ( CrossUp(Sigma,-ss1)) Then Buy("b"); 1. 위 수식에서 매수 신호나고 5봉후 매수조건이돼게 수정 부탁드리고 2. 위 슬로우 스톡이 크로스 업돼면 전체 Buy 신호가나오게 부탁드립니다,
프로필 이미지
주영
2020-03-11
233
글번호 136782
시스템
답변완료

문의드립니다.

트레이딩 뷰를 참고하고있습니다. 하기 수식을 예스로 변환부탁드립니다. ( 참고 : https://www.tradingview.com/script/ibq1TYLX-BB-AO-STRAT/ ) strategy(shorttitle="BB+AO STRAT", title="BB+AO STRAT", overlay=true) // === BACKTEST RANGE === FromMonth = input(defval = 6, title = "From Month", minval = 1) FromDay = input(defval = 1, title = "From Day", minval = 1) FromYear = input(defval = 2018, title = "From Year", minval = 2014) ToMonth = input(defval = 1, title = "To Month", minval = 1) ToDay = input(defval = 1, title = "To Day", minval = 1) ToYear = input(defval = 9999, title = "To Year", minval = 2014) // Bollinger Bands Inputs bb_use_ema = input(false, title="Use EMA for Bollinger Band") bb_length = input(5, minval=1, title="Bollinger Length") bb_source = input(close, title="Bollinger Source") bb_mult = input(2.0, title="Base Multiplier", minval=0.5, maxval=10) // EMA inputs fast_ma_len = input(2, title="Fast EMA length", minval=2) // Awesome Inputs nLengthSlow = input(34, minval=1, title="Awesome Length Slow") nLengthFast = input(5, minval=1, title="Awesome Length Fast") // Breakout Indicator Inputs bb_basis = bb_use_ema ? ema(bb_source, bb_length) : sma(bb_source, bb_length) fast_ma = ema(bb_source, fast_ma_len) // Deviation dev = stdev(bb_source, bb_length) bb_dev_inner = bb_mult * dev // Upper bands inner_high = bb_basis + bb_dev_inner // Lower Bands inner_low = bb_basis - bb_dev_inner // Calculate Awesome Oscillator xSMA1_hl2 = sma(hl2, nLengthFast) xSMA2_hl2 = sma(hl2, nLengthSlow) xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2 // Calculate direction of AO AO = xSMA1_SMA2>=0? xSMA1_SMA2 > xSMA1_SMA2[1] ? 1 : 2 : xSMA1_SMA2 > xSMA1_SMA2[1] ? -1 : -2 // === PLOTTING === // plot BB basis plot(bb_basis, title="Basis Line", color=red, transp=10, linewidth=2) // plot BB upper and lower bands ubi = plot(inner_high, title="Upper Band Inner", color=blue, transp=10, linewidth=1) lbi = plot(inner_low, title="Lower Band Inner", color=blue, transp=10, linewidth=1) // center BB channel fill fill(ubi, lbi, title="Center Channel Fill", color=silver, transp=90) // plot fast ma plot(fast_ma, title="Fast EMA", color=black, transp=10, linewidth=2) // Calc breakouts break_down = crossunder(fast_ma, bb_basis) and close < bb_basis and abs(AO)==2 break_up = crossover(fast_ma, bb_basis) and close > bb_basis and abs(AO)==1 // Show Break Alerts plotshape(break_down, title="Breakout Down", style=shape.arrowdown, location=location.abovebar, size=size.auto, text="Sell", color=red, transp=0) plotshape(break_up, title="Breakout Up", style=shape.arrowup, location=location.belowbar, size=size.auto, text="Buy", color=green, transp=0) // === ALERTS === strategy.entry("L", strategy.long, when=(break_up and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) strategy.close("L", when=(break_down and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59)))) // === /PLOTTING === barcolor(AO == 2 ? red: AO == 1 ? green : blue ) // eof
프로필 이미지
as8282
2020-03-11
369
글번호 136781
지표
답변완료

주식 시스템 문의 드립니다

안녕하세요 항상 빠른 답변 감사합니다. 시스템 매수 진입 조건 장시작후 전일고가를 돌파후 하락 or 근접 후 하락 매수 진입금지 시초가는 전일고가 아래 있으며 전일저가를 하회하고 돌파 하거나 or 봉의 시가가 전일저가를 터치하면 매수한다. 청산은 매수진입 후 50%수량 5%이익실현 전일고가 돌파 나머지수량 이익실현 매매종료 손절은 전일저가 3% 하락시 50% 손절 전일저가 5% 하락시 나머지 손절 그럼 좋은 하루 되세요
프로필 이미지
느와르
2020-03-11
304
글번호 136780
시스템
답변완료

수익과 손절식을 넣고 싶습니다.

안녕하세요. 수식을 만들어 보는데 어려워서 도움을 요청드립니다. 개념은 1)5선,20선이 크로스업 이후 5선아래 음봉에서 매수를 , 크로스 다운은 5선위 양봉에서 매도를 하고 싶습니다.(1계약기준) 3)이익은 1Pt로 손실은 0.5Pt로 하고 싶습니다. INPUT : ,sPeriod(5), mPeriod(20); Value1 = ma(C, sPeriod); Value2 = ma(C, mPeriod); #매수조건 If (Value1 > Value2) and CrossDown(C,Value1) Then Buy( ); #매도조건 If (Value1 < Value2) and CrossUp(C,Value1) Then Sell( );
프로필 이미지
페파
2020-03-10
398
글번호 136779
시스템