커뮤니티

문의드립니다.

프로필 이미지
산골소년
2024-04-04 06:14:39
898
글번호 178260
답변완료
늘 고맙습니다. 복많이 받으세요. #1 아래 주석처리 해놓은 것을 주석 풀어서 지표로 보면 일목균형표가 정상적으로 그려집니다. 그런데 시스템식으로 바꿔서 아래와 같이 돌려보면 현재봉이 생성될 때 선행스팬의 교차가 일어나면 신호가 나옵니다. 25캔들 앞에 있는 선행스팬이 아닌 현재봉에서의 선행스팬1이나 선행스팬2를 표현하려면 어떻게 해야 하나요? 또한 과거봉에서의 선행스팬 표현방법도 알고 싶습니다. 예) 5~10캔들전 사이에, 선행스팬1이 선행스팬2보다 크고(양운이고), 캔들의 저가가 선행스팬1위에 있었던 적이 있었다. var : 전환선(0),기준선(0),후행스팬(0),선행스팬1(0),선행스팬2(0),중심선52(0),중심선129(0); 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 후행스팬 = C; 선행스팬1 = (전환선+기준선)/2; 선행스팬2 = (highest(H,52)+lowest(L,52))/2; #후행스팬 plot3을 과거 25봉전으로 이동 #fixPlotshift(3, -25); #선행스팬1 plot4을 앞으로 25봉 이동 #fixPlotshift(4, 25); #선행스팬2 plot5를 앞으로 25봉 이동 #fixPlotshift(5, 25); If crossup(선행스팬1,선행스팬2) Then { Buy ("BB") ; } If crossdown(선행스팬1,선행스팬2) Then { Sell ("SS"); } #2 86548번 재질문입니다. 앞에 질문이 조금 틀렸습니다. 진입봉을 포함해서 N개봉까지의 저가중 최저가를 이탈하면 손절하는 식을 부탁드립니다. 추가로 위 최저가에서 K틱만큼 더 하락하면 손절한다. 이것도 부탁드립니다. 그리고 아래 수식을 해석하면 매수포지션이라면 { 현재봉 포지션값과 직전봉 포지션값이 다르다면 즉, 현재봉에서 진입이 됐다면, LL에 진입 N봉전 저가를 저장하고,. LL값 미만이 되면 청산한다. } 맞게 해석한건가요? if MarketPosition == 1 Then { if MarketPosition != MarketPosition[1] Then ll = l[BarsSinceEntry+n]; ExitLong("bx",AtStop,ll); } #2 86574번 재질문입니다. 고맙습니다. 아래 식중 이렇게 표현해도 되는지요? 아직 문법에 대한 이해가 많이 부족합니다. 제가 원하는 것은 양봉 음봉 분리해서 각각 거래량이 최고인 양봉과 음봉 캔들중 각 하나의 캔들에서 고점과 저점과 중간값을 찾고자 한겁니다. 글을 제대로 못써서 죄송합니다. # cond1과 cond3의 고점과 저점 및 중간값을 진입신호에 적용할 때 구분해서 쓰려면 어떻게 해야 하나요? 아래처럼 똑같이 HH,LL,value 이렇게 써도 되나요? #cond1이 true일때 HH에 고가저장, LL에 저가저장, MM에 중간값저장# if cond1 == true then { HH = H; LL = L; value = (H+L)/2; } #cond3이 true일때 HH에 고가저장, LL에 저가저장, MM에 중간값저장# if cond3 == true then { HH = H; LL = L; value = (H+L)/2; } 초보라 아직 문법이 서투릅니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2024-04-04 14:12:34

안녕하세요 예스스탁입니다. 1 fixPlotshift함수는 지표식에서 사용하는 함수입니다. 지표를 과거 혹은 미래로 이동시켜 표시를 할때 사용하고 지표식 외에는 동작하지 않습니다. 선행스팬은 현재봉에 25개 전봉의 값이 위치하게 되므로 시스템식이나 종목검색등에서는 25개봉전값을 가져와 조건을 지정하셔야 합니다. var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0),중심선52(0),중심선129(0); 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 선행스팬1 = (전환선[25]+기준선[25])/2; #25봉전 값으로 계산 선행스팬2 = (highest(H,52)[25]+lowest(L,52)[25])/2; #25봉전 값으로 계산 If crossup(선행스팬1,선행스팬2) Then { Buy ("BB") ; } If crossdown(선행스팬1,선행스팬2) Then { Sell ("SS"); } 2 해석하신 내용은 맞습니다. input : N(10); var : LL(0); #매수진입 중 if MarketPosition == 1 Then { #진입기봉 기준 N개봉 최저가를 LL에 저장 if MarketPosition != MarketPosition[1] Then LL = lowest(L,N)[BarsSinceEntry]; #LL값 이하의 시세가 발생하면 즉시 청산 ExitLong("bx",AtStop,LL); } 3 값을 저장하는 변수만 다른이름으로 선언해 사용하시면 됩니다. var : cond1(False),h1(0),l1(0),v1(0); var : cond3(False),h3(0),l3(0),v3(0); if cond1 == true then { H1 = H; L1 = L; v1 = (H+L)/2; } #cond3이 true일때 HH에 고가저장, LL에 저가저장, MM에 중간값저장# if cond3 == true then { H3 = H; L3 = L; v3 = (H+L)/2; } 즐거운 하루되세요 > 산골소년 님이 쓴 글입니다. > 제목 : 문의드립니다. > 늘 고맙습니다. 복많이 받으세요. #1 아래 주석처리 해놓은 것을 주석 풀어서 지표로 보면 일목균형표가 정상적으로 그려집니다. 그런데 시스템식으로 바꿔서 아래와 같이 돌려보면 현재봉이 생성될 때 선행스팬의 교차가 일어나면 신호가 나옵니다. 25캔들 앞에 있는 선행스팬이 아닌 현재봉에서의 선행스팬1이나 선행스팬2를 표현하려면 어떻게 해야 하나요? 또한 과거봉에서의 선행스팬 표현방법도 알고 싶습니다. 예) 5~10캔들전 사이에, 선행스팬1이 선행스팬2보다 크고(양운이고), 캔들의 저가가 선행스팬1위에 있었던 적이 있었다. var : 전환선(0),기준선(0),후행스팬(0),선행스팬1(0),선행스팬2(0),중심선52(0),중심선129(0); 전환선 = (highest(H,9)+lowest(L,9))/2; 기준선 = (highest(H,26)+lowest(L,26))/2; 후행스팬 = C; 선행스팬1 = (전환선+기준선)/2; 선행스팬2 = (highest(H,52)+lowest(L,52))/2; #후행스팬 plot3을 과거 25봉전으로 이동 #fixPlotshift(3, -25); #선행스팬1 plot4을 앞으로 25봉 이동 #fixPlotshift(4, 25); #선행스팬2 plot5를 앞으로 25봉 이동 #fixPlotshift(5, 25); If crossup(선행스팬1,선행스팬2) Then { Buy ("BB") ; } If crossdown(선행스팬1,선행스팬2) Then { Sell ("SS"); } #2 86548번 재질문입니다. 앞에 질문이 조금 틀렸습니다. 진입봉을 포함해서 N개봉까지의 저가중 최저가를 이탈하면 손절하는 식을 부탁드립니다. 추가로 위 최저가에서 K틱만큼 더 하락하면 손절한다. 이것도 부탁드립니다. 그리고 아래 수식을 해석하면 매수포지션이라면 { 현재봉 포지션값과 직전봉 포지션값이 다르다면 즉, 현재봉에서 진입이 됐다면, LL에 진입 N봉전 저가를 저장하고,. LL값 미만이 되면 청산한다. } 맞게 해석한건가요? if MarketPosition == 1 Then { if MarketPosition != MarketPosition[1] Then ll = l[BarsSinceEntry+n]; ExitLong("bx",AtStop,ll); } #2 86574번 재질문입니다. 고맙습니다. 아래 식중 이렇게 표현해도 되는지요? 아직 문법에 대한 이해가 많이 부족합니다. 제가 원하는 것은 양봉 음봉 분리해서 각각 거래량이 최고인 양봉과 음봉 캔들중 각 하나의 캔들에서 고점과 저점과 중간값을 찾고자 한겁니다. 글을 제대로 못써서 죄송합니다. # cond1과 cond3의 고점과 저점 및 중간값을 진입신호에 적용할 때 구분해서 쓰려면 어떻게 해야 하나요? 아래처럼 똑같이 HH,LL,value 이렇게 써도 되나요? #cond1이 true일때 HH에 고가저장, LL에 저가저장, MM에 중간값저장# if cond1 == true then { HH = H; LL = L; value = (H+L)/2; } #cond3이 true일때 HH에 고가저장, LL에 저가저장, MM에 중간값저장# if cond3 == true then { HH = H; LL = L; value = (H+L)/2; } 초보라 아직 문법이 서투릅니다.