커뮤니티

철옹성같은 수식을 짜고 싶습니다.

프로필 이미지
철옹성
2011-12-01 06:09:29
503
글번호 45353
답변완료
안녕하세요. 제가 구현하고 싶은 청산방법은 매수 진입이후 다음봉 부터 체크하여, 양봉이 나올때마다 저가 두틱아래에 Exitlong을 atstop로 지정하는 것입니다. if O < C and marketposition == 1 then value1 = L; Exitlong("매수청산",atstop,value1 - pricescale*2 ); 이런식으로 하면 일단, 진입된 봉부터 판단하는 결과가 나와서 엉뚱한 청산지점이 지정됩니다. 질문 1... if 의 조건에 "진입 OO번째 다음의 봉"을 넣는 방법과 그걸 이용해서 올바르게 짠 청산수식이 궁금합니다. --------------------------------------------------------------------------------- 또한, if O < C and H - EntryPrice > Pricescale*5 and marketposition == 1 Then value1 = L; Exitlong("매수청산",atstop,value1 - pricescale*2 ); 이런 로직으로 짜보면, 결과적으로 대부분은 의도대로 진입지점이 나오지만, 상세히 살펴보면 몇 몇 군데에서 도저히 이해할 수 없는 곳에 청산이 발생하는 경우가 발생합니다. 질문2.. 위의 경우대로 구현하려면 수식을 어떻게 짜야 하는지 궁금합니다. 또한, 말씀드린 경우처럼 수식작성 후 시스템을 적용했을 때, 의도대로 되는 주문과 전혀 의도하지 않은 주문이 섞여서 나온다면, 오류지점을 잡아내기 위해서는 어떤 순서와 주안점을 가지고, 접근해가며 검토해 보아야 하는지 감이 잘 안 잡힙니다. 처음에 완성한 수식이 엉뚱하게 나오게 되면, 다시 여러번 살펴봐도 오류점을 발견하지 못해서, 이것저것 방법을 바꾸어 새로운 수식을 부분적으로 바꾸어가며, 원하는 주문 결과를 만들기 위해 귀납적으로 접근하다보면, 어느정도까지는 원하는 대로는 되는데, 몇몇 주문은 엉뚱한 곳에 체결이 되어있고, 그에 대한 오류점을 발견해 낼 수 없는 상황이됩니다. 조언 좀 부탁드리겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-12-01 14:03:49

안녕하세요 예스스탁입니다. 진입이후의 경과된 봉수는 BarsSinceEntry로 설정하시면 됩니다. 진입신호가 난 봉이 0, 다음봉이 1, 그 다음봉이 2 순으로 1씩 증가합니다. 가령 진입이후 5번째 봉이면 BarsSinceEntry >= 5 로 표현하시면 됩니다. 아래와 같이 작성하시면 진입이후 5개봉이상 경과후 양봉이 발생하면 양봉의 저가를 저장하고 다음봉이 양봉의 저가-2틱이하의 시세가 형성되면 청산되며 항상 양봉이 발생하고 그 다음봉 한봉만 감시를 합니다. if marketposition == 1 then{ if C > O and BarsSinceEntry >= 5 Then{ value1 = L; Exitlong("매수청산",atstop,value1 - pricescale*2 ); } } 만약 양봉 다음봉 한봉만 감시하는 것이 아니라 그 으후의 봉들까지도 최근 발생한 양봉의 저가-2틱으로 계속 감시하고자 하시면 식을 아래와 같이 작성해 주셔야 합니다. 매수진입후 5개봉 이후에 양봉이 발생하면 condition1이 true가 되고 condition1이 true가 된 후에 계속 직전에 양봉-2틱의 시세가 형성되는 것을 감시합니다. if marketposition == 1 then{ if C > O and BarsSinceEntry >= 5 Then{ value1 = L; Condition1 = true; } if Condition1 == true Then Exitlong("매수청산",atstop,value1 - pricescale*2 ); } Else Condition1 = false; 신호가 의도와 다르시면 보통은 2가지 경우입니다. 신호의 발생원칙에 대해 오해하시는 부분이 있거나 혹은 신호타입이나 조건문등을 잘못사용하시는 경우입니다. 발생원칙에 대해 충분한 숙지가 되어 있으시다면 단지 변수의 할당등의 문제일 경우가 많습니다. 즐거운 하루되세요 > 철옹성 님이 쓴 글입니다. > 제목 : 철옹성같은 수식을 짜고 싶습니다. > 안녕하세요. 제가 구현하고 싶은 청산방법은 매수 진입이후 다음봉 부터 체크하여, 양봉이 나올때마다 저가 두틱아래에 Exitlong을 atstop로 지정하는 것입니다. if O < C and marketposition == 1 then value1 = L; Exitlong("매수청산",atstop,value1 - pricescale*2 ); 이런식으로 하면 일단, 진입된 봉부터 판단하는 결과가 나와서 엉뚱한 청산지점이 지정됩니다. 질문 1... if 의 조건에 "진입 OO번째 다음의 봉"을 넣는 방법과 그걸 이용해서 올바르게 짠 청산수식이 궁금합니다. --------------------------------------------------------------------------------- 또한, if O < C and H - EntryPrice > Pricescale*5 and marketposition == 1 Then value1 = L; Exitlong("매수청산",atstop,value1 - pricescale*2 ); 이런 로직으로 짜보면, 결과적으로 대부분은 의도대로 진입지점이 나오지만, 상세히 살펴보면 몇 몇 군데에서 도저히 이해할 수 없는 곳에 청산이 발생하는 경우가 발생합니다. 질문2.. 위의 경우대로 구현하려면 수식을 어떻게 짜야 하는지 궁금합니다. 또한, 말씀드린 경우처럼 수식작성 후 시스템을 적용했을 때, 의도대로 되는 주문과 전혀 의도하지 않은 주문이 섞여서 나온다면, 오류지점을 잡아내기 위해서는 어떤 순서와 주안점을 가지고, 접근해가며 검토해 보아야 하는지 감이 잘 안 잡힙니다. 처음에 완성한 수식이 엉뚱하게 나오게 되면, 다시 여러번 살펴봐도 오류점을 발견하지 못해서, 이것저것 방법을 바꾸어 새로운 수식을 부분적으로 바꾸어가며, 원하는 주문 결과를 만들기 위해 귀납적으로 접근하다보면, 어느정도까지는 원하는 대로는 되는데, 몇몇 주문은 엉뚱한 곳에 체결이 되어있고, 그에 대한 오류점을 발견해 낼 수 없는 상황이됩니다. 조언 좀 부탁드리겠습니다.