커뮤니티

추가 질문입니다.

프로필 이미지
프레스티지
2004-06-11 15:16:28
1332
글번호 4029
답변완료
지난 번 답변에 감사드립니다. 그런데 지난번 수식에 의도하지 않은 사항이 발생하여 추가 질문드립니다. 지난번 질문과 답변은 아래에 기재된 내용이었습니다. ---------------------------------------------------------------------------- [지난 번 질문] 캔들의 이평선 돌파와 stochastic K_D의 교차가 일치시 매매신호가 발생하는 시스템식에서 i) stochastic K_D가 교차된 상태에서 캔들이 이평선 돌파하는 경우 하는 매매신호가 발생하는데 ii)캔들의 이평선 돌파가 먼저 있고 나중에 stochastic K_D의 교차가 발생하는 경우에는 매매 신호가 발생하지 않습니다. i), ii) 경우 모두 매매신호가 나오게 하려면 어떻게 수정해야 하나요? 예를 들어, if crossup(c, ma(c, 10)) then var1 = H; ### 매수 if crossup(c, var1) and stochasticsK(12,5) > stochasticsD(12,5,5) then buy(); 으로 시스템 식을 만들었다고 가정할 때 i) stochasticK > stochasticD인 상태에서 캔들이 10 이평선 돌파하고 돌파시 고점을 이후 캔들에서 갱신하는 경우에는 매수신호가 발생하는데 ii) 캔들이 10 이평선 돌파하고 돌파시 고점을 이후 캔들에서 갱신할 때는 stochasticK < stochasticD 이었고 나중에 stochastic K_D의 교차(G/C)하는 경우에는 매매 신호가 발생하지 않습니다. i)의 경우에도 매수신호가 발생하고 ii)의 경우에도(나중에 stochastic K_D 교차(G/C)하는 시점에서) 매매신호가 발생하도록 하려면 시스템식을 어떻게 작성해야 하나요? (* 즉, i), ii)의 경우 모두 매매신호가 나오게 하려면 어떻게 작성해야 하나요?) [지난번 예스스탁 답변] if crossup(c, ma(c, 10)) then var1 = H; if c > var1 and stochasticsK(12,5) > stochasticsD(12,5,5) then buy(); 즐거운 날 되세요.. ------------------------------------------------------------------------------- 여기에서 추가 질문합니다. 위의 답변식 대로 할 경우 i)과 ii)의 두가지 경우 매수 신호가 발생하므로 당초 의도대로의 조건을 충족하기는 합니다. 그런데, 최대수익대비하락청산 이나 손절 조건을 추가하여 시스템식을 만들 경우에 청산이 나오게 되면 새로 매수조건이 충족되지 않아도(즉, 다시 갠들이 이평선 돌파하고 새로운 돌파시점의 고점을 갱신하지 않아도) 당초 돌파시 고점 보다 종가가 높은 캔들이 나오면 재진입하게 되는 경우가 자주 발생합니다. 위 i), ii)에 의한 매수신호 진입후 청산 또는 손절이 나오게 될 경우 (새로 갠들이 이평선 돌파하고 새로운 돌파시점의 고점을 갱신하지 않아도 당초 돌파시 고점 보다 높은 캔들이 나오면 재진입하지 않고) 청산(또는 손절) 이후에는 캔들이 이평선을 다시 돌파하고 새로 돌파할 때의 고점을 이후 캔들에서 갱신하게 될 경우에만 (당초 고점 갱신이 아니고) 재진입(재매수) 신호가 나오도록 하려면 어떻게 식을 만들어야 하나요? 부탁드립니다. 감사드립니다.... p.s. 주말에 답변을 바탕으로 시스템식 심층연구할 수 있게 빠른 답변해주시면 더욱 더 감사하겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2004-06-11 19:01:07

안녕하세요..예스스탁입니다. 먼저 답변드렸던 식에서 목표수익 등의 강제청산을 적용하게 되면, 재집입 신호가 교차가 발생하지 않아도 나오는 문제가 있습니다. 이런 현상을 방지하기 위해서 일반적으로 Cross 함수를 이용하게 되는데, 두개를 and로 연결하면 동일한 봉에서 동시에 신호가 발생해야만 신호가 발생하게 되므로 이또한 문제를 가지고 있습니다. 그리고 문의하신 것처럼 강제청산이 발생했는지 여부를 확인해서 작성하시고자 하지만,시스템설정창이나, 강제청산 함수를 이용하여 시스템식을 작성하였을 경우 로직 상에서 강제청산이 발생하였는지 확인할 수 있는 방법이 없습니다. 이런 이유 때문에 flag를 이용하게 됩니다. 예를들어 매수나 매도조건이 발생하면 그때의 종가를 저장해놓고 그 종가에서 일정 범위 하락하거나 상승하면 청산하도록 하는 구조를 사용합니다. 하지만, 문의하신 내용과 같은 경우는 두가지 중 하나가 만족해 있는 상태에서 다른 하나가 추가로 만족하게 되면 매수하는 식이라면 이 식을 조금더 풀어서 다음과 같은 방버으로 작성해 줄 수 있습니다. if crossup(c, ma(c, 10)) then var1 = H; if ( C > var1 and CrossUp(stochasticsK(12,5) , stochasticsD(12,5,5) ) ) or ( CrossUp(C, var1) and stochasticsK(12,5) > stochasticsD(12,5,5) ) then buy(); 일단 이 형태로 작성해서 확인해 보시기 바랍니다. 참고로, 저희 홈페이지 > 예스트레이더프로 > 수식작성예제에는 YesLanguage를 이용해서 작성할 수 있는 대부분의 설명이 담겨져 있습니다. 이곳에 작성된 내용들을 참고해 보시면 수식 작성법을 익히시는데 많은 도움이 되실 수 있을 것으로 생각합니다. 즐거운 주말 보내세요.. > 프레스티지 님이 쓴 글입니다. > 제목 : 추가 질문입니다. > 지난 번 답변에 감사드립니다. 그런데 지난번 수식에 의도하지 않은 사항이 발생하여 추가 질문드립니다. 지난번 질문과 답변은 아래에 기재된 내용이었습니다. ---------------------------------------------------------------------------- [지난 번 질문] 캔들의 이평선 돌파와 stochastic K_D의 교차가 일치시 매매신호가 발생하는 시스템식에서 i) stochastic K_D가 교차된 상태에서 캔들이 이평선 돌파하는 경우 하는 매매신호가 발생하는데 ii)캔들의 이평선 돌파가 먼저 있고 나중에 stochastic K_D의 교차가 발생하는 경우에는 매매 신호가 발생하지 않습니다. i), ii) 경우 모두 매매신호가 나오게 하려면 어떻게 수정해야 하나요? 예를 들어, if crossup(c, ma(c, 10)) then var1 = H; ### 매수 if crossup(c, var1) and stochasticsK(12,5) > stochasticsD(12,5,5) then buy(); 으로 시스템 식을 만들었다고 가정할 때 i) stochasticK > stochasticD인 상태에서 캔들이 10 이평선 돌파하고 돌파시 고점을 이후 캔들에서 갱신하는 경우에는 매수신호가 발생하는데 ii) 캔들이 10 이평선 돌파하고 돌파시 고점을 이후 캔들에서 갱신할 때는 stochasticK < stochasticD 이었고 나중에 stochastic K_D의 교차(G/C)하는 경우에는 매매 신호가 발생하지 않습니다. i)의 경우에도 매수신호가 발생하고 ii)의 경우에도(나중에 stochastic K_D 교차(G/C)하는 시점에서) 매매신호가 발생하도록 하려면 시스템식을 어떻게 작성해야 하나요? (* 즉, i), ii)의 경우 모두 매매신호가 나오게 하려면 어떻게 작성해야 하나요?) [지난번 예스스탁 답변] if crossup(c, ma(c, 10)) then var1 = H; if c > var1 and stochasticsK(12,5) > stochasticsD(12,5,5) then buy(); 즐거운 날 되세요.. ------------------------------------------------------------------------------- 여기에서 추가 질문합니다. 위의 답변식 대로 할 경우 i)과 ii)의 두가지 경우 매수 신호가 발생하므로 당초 의도대로의 조건을 충족하기는 합니다. 그런데, 최대수익대비하락청산 이나 손절 조건을 추가하여 시스템식을 만들 경우에 청산이 나오게 되면 새로 매수조건이 충족되지 않아도(즉, 다시 갠들이 이평선 돌파하고 새로운 돌파시점의 고점을 갱신하지 않아도) 당초 돌파시 고점 보다 종가가 높은 캔들이 나오면 재진입하게 되는 경우가 자주 발생합니다. 위 i), ii)에 의한 매수신호 진입후 청산 또는 손절이 나오게 될 경우 (새로 갠들이 이평선 돌파하고 새로운 돌파시점의 고점을 갱신하지 않아도 당초 돌파시 고점 보다 높은 캔들이 나오면 재진입하지 않고) 청산(또는 손절) 이후에는 캔들이 이평선을 다시 돌파하고 새로 돌파할 때의 고점을 이후 캔들에서 갱신하게 될 경우에만 (당초 고점 갱신이 아니고) 재진입(재매수) 신호가 나오도록 하려면 어떻게 식을 만들어야 하나요? 부탁드립니다. 감사드립니다.... p.s. 주말에 답변을 바탕으로 시스템식 심층연구할 수 있게 빠른 답변해주시면 더욱 더 감사하겠습니다.