커뮤니티

71809 답변 감사히 잘 보았습니다. 그런데 적용해도 걸리는게 없네요 ㅠㅠ

프로필 이미지
yosong
2021-04-06 17:54:11
846
글번호 147751
답변완료
답변 감사히 잘 보았습니다. 그런데 적용해도 걸리는게 없네요 ㅠㅠ 그리고 if S >= 1 and C > SHV Then S = 0; 이 부분이 B쪽에는 없고 S쪽만 있는데 맞는건가요?? 그리고 빠진 조건이 있는거 같아서.. 1.S(저점)은 현재가가 S(저점)를 깨면 매도(진입) 후 20선을 넘으면 손절 또는 청산 2.B(고점)은 현재가가 B(고점)를 돌파하면 매수(진입) 후 20선을 깨면 손절 또는 청산 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 지표 부탁드립니다 > 안녕하세요 예스스탁입니다. 신호종류가 불명확하여 1번은 매도, 2번은 매수식으로 작성해 드립니다. input : left(3),Right(3); var : cnt(0),mav(0); var : SHV(0),SHV1(0),SLV(0),SLV1(0),LL(0),S(0),SV(0); var : SHI(0),SHI1(0),SLI(0),SLI1(0),HH(0),B(0),BV(0); mav = ma(C,9); if SwingHigh(1,H,Left,Right,Left+right+1) != -1 then { S = 1; SHV = H[right]; SHV1 = SHV[1]; SHI = Index[right]; SHI1 = SHI[1]; #스윙하이 사이의 최저점 계산 if SHV1 > 0 and SHV > SHV1 Then { S = 2; LL = 0; for cnt = Index-SHI to Index-SHI1 { Condition1 = False; if LL == 0 or (LL > 0 and L[cnt] < LL) Then { LL = L[cnt]; if L[cnt] < mav[cnt] and L[cnt+1] < mav[cnt+1] Then { Condition1 = true; } } } if Condition1 == true Then { S = 3; SV = LL; } } } if S >= 1 and C > SHV Then S = 0; if SwingLow(1,L,Left,Right,Left+right+1) != -1 then { B = 1; SLV = L[right]; SLV1 = SLV[1]; SLI = Index[right]; SLI1 = SLI[1]; #스윙하이 사이의 최저점 계산 if SLV1 > 0 and SLV < SLV1 Then { B = 2; HH = 0; for cnt = Index-SLI to Index-SLI1 { Condition2 = False; if HH == 0 or (HH > 0 and H[cnt] > HH) Then { HH = H[cnt]; if H[cnt] > mav[cnt] and H[cnt+1] > mav[cnt+1] Then { Condition2 = true; } } } if Condition2 == true Then { B = 3; BV = HH; } } } if S == 3 Then Sell("s",AtStop,SV); if B == 3 Then Buy("b",AtStop,BV); 즐거운 하루되세요 > yosong 님이 쓴 글입니다. > 제목 : 지표 부탁드립니다 > 첨부 파일에서(1번그림) 1.1번 스윙과 2번스윙에서 1번보다 2번이 클때 저점 3번을 저장 2.2번 고점을 넘기 전까지는 저점 3번을 저장(넘으면 새로운 저점 3번 생성) 3.저점 3번은 9이평(빨간선)보다 L,L[1]가 작아야 함(9이평보다 저점이 2번이상 작아야함) 4.저점 3번이 깨지면 4번 신호 발생 첨부 파일에서(2번그림) 위와 반대 1.1번 스윙과 2번스윙에서 1번보다 2번이 작을때 고점 3번을 저장 2.2번 저점이 깨지기 전까지는 고점 3번을 저장(깨지면 새로운 고점 3번 생성) 3.고점 3번은 9이평(빨간선)보다 H,H[1]가 커야 함(9이평보다 고점이 2번이상커야함) 4.고점 3번이 넘으면 4번신호 발생
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-04-07 10:48:51

안녕하세요 예스스탁입니다. 1 if B >= 1 and C < SLV Then B = 0; B쪽에 내용이 빠져있어 추가했습니다. 2 신호가 많이 없어 스윙사이의 최고가와 최저가 체크의 조건이 수정했습니다. 스윙함수의 좌우측 봉수 조절해서 원하시는 스윙지점을 지정하시기 바랍니다. 스윙에 대한 부분은 예스랭귀지 도움말에서 swinghigh, swinglow함수 설명 참고하시기 바랍니다. 3 input : left(3),Right(3); var : cnt(0),mav(0); var : SHV(0),SHV1(0),SLV(0),SLV1(0),LL(0),S(0),SV(0); var : SHI(0),SHI1(0),SLI(0),SLI1(0),HH(0),B(0),BV(0); mav = ma(C,9); if SwingHigh(1,H,Left,Right,Left+right+1) != -1 then { S = 1; SHV = H[right]; SHV1 = SHV[1]; SHI = Index[right]; SHI1 = SHI[1]; #스윙하이 사이의 최저점 계산 if SHV1 > 0 and SHV > SHV1 Then { S = 2; LL = 0; for cnt = Index-SHI to Index-SHI1 { if LL == 0 or (LL > 0 and L[cnt] < LL) Then { LL = L[cnt]; if L[cnt] < mav[cnt] and L[cnt+1] < mav[cnt+1] Then Condition1 = true; Else Condition1 = False; } } if Condition1 == true Then { S = 3; SV = LL; } } } if S >= 1 and C > SHV Then S = 0; if SwingLow(1,L,Left,Right,Left+right+1) != -1 then { B = 1; SLV = L[right]; SLV1 = SLV[1]; SLI = Index[right]; SLI1 = SLI[1]; #스윙하이 사이의 최저점 계산 if SLV1 > 0 and SLV < SLV1 Then { B = 2; HH = 0; for cnt = Index-SLI to Index-SLI1 { if HH == 0 or (HH > 0 and H[cnt] > HH) Then { HH = H[cnt]; if H[cnt] > mav[cnt] and H[cnt+1] > mav[cnt+1] Then Condition2 = true; Else Condition2 = False; } } if Condition2 == true Then { B = 3; BV = HH; } } } if B >= 1 and C < SLV Then B = 0; if S == 3 Then Sell("s",AtStop,SV); if B == 3 Then Buy("b",AtStop,BV); if MarketPosition == 1 Then { B = 0; if CrossDown(c,mav) Then ExitLong(); } if MarketPosition == -1 Then { S = 0; if CrossUp(c,mav) Then ExitShort(); } 즐거운 하루되세요 > yosong 님이 쓴 글입니다. > 제목 : 71809 답변 감사히 잘 보았습니다. 그런데 적용해도 걸리는게 없네요 ㅠㅠ > 답변 감사히 잘 보았습니다. 그런데 적용해도 걸리는게 없네요 ㅠㅠ 그리고 if S >= 1 and C > SHV Then S = 0; 이 부분이 B쪽에는 없고 S쪽만 있는데 맞는건가요?? 그리고 빠진 조건이 있는거 같아서.. 1.S(저점)은 현재가가 S(저점)를 깨면 매도(진입) 후 20선을 넘으면 손절 또는 청산 2.B(고점)은 현재가가 B(고점)를 돌파하면 매수(진입) 후 20선을 깨면 손절 또는 청산 > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 지표 부탁드립니다 > 안녕하세요 예스스탁입니다. 신호종류가 불명확하여 1번은 매도, 2번은 매수식으로 작성해 드립니다. input : left(3),Right(3); var : cnt(0),mav(0); var : SHV(0),SHV1(0),SLV(0),SLV1(0),LL(0),S(0),SV(0); var : SHI(0),SHI1(0),SLI(0),SLI1(0),HH(0),B(0),BV(0); mav = ma(C,9); if SwingHigh(1,H,Left,Right,Left+right+1) != -1 then { S = 1; SHV = H[right]; SHV1 = SHV[1]; SHI = Index[right]; SHI1 = SHI[1]; #스윙하이 사이의 최저점 계산 if SHV1 > 0 and SHV > SHV1 Then { S = 2; LL = 0; for cnt = Index-SHI to Index-SHI1 { Condition1 = False; if LL == 0 or (LL > 0 and L[cnt] < LL) Then { LL = L[cnt]; if L[cnt] < mav[cnt] and L[cnt+1] < mav[cnt+1] Then { Condition1 = true; } } } if Condition1 == true Then { S = 3; SV = LL; } } } if S >= 1 and C > SHV Then S = 0; if SwingLow(1,L,Left,Right,Left+right+1) != -1 then { B = 1; SLV = L[right]; SLV1 = SLV[1]; SLI = Index[right]; SLI1 = SLI[1]; #스윙하이 사이의 최저점 계산 if SLV1 > 0 and SLV < SLV1 Then { B = 2; HH = 0; for cnt = Index-SLI to Index-SLI1 { Condition2 = False; if HH == 0 or (HH > 0 and H[cnt] > HH) Then { HH = H[cnt]; if H[cnt] > mav[cnt] and H[cnt+1] > mav[cnt+1] Then { Condition2 = true; } } } if Condition2 == true Then { B = 3; BV = HH; } } } if S == 3 Then Sell("s",AtStop,SV); if B == 3 Then Buy("b",AtStop,BV); 즐거운 하루되세요 > yosong 님이 쓴 글입니다. > 제목 : 지표 부탁드립니다 > 첨부 파일에서(1번그림) 1.1번 스윙과 2번스윙에서 1번보다 2번이 클때 저점 3번을 저장 2.2번 고점을 넘기 전까지는 저점 3번을 저장(넘으면 새로운 저점 3번 생성) 3.저점 3번은 9이평(빨간선)보다 L,L[1]가 작아야 함(9이평보다 저점이 2번이상 작아야함) 4.저점 3번이 깨지면 4번 신호 발생 첨부 파일에서(2번그림) 위와 반대 1.1번 스윙과 2번스윙에서 1번보다 2번이 작을때 고점 3번을 저장 2.2번 저점이 깨지기 전까지는 고점 3번을 저장(깨지면 새로운 고점 3번 생성) 3.고점 3번은 9이평(빨간선)보다 H,H[1]가 커야 함(9이평보다 고점이 2번이상커야함) 4.고점 3번이 넘으면 4번신호 발생