커뮤니티

수식 부탁드립니다.

프로필 이미지
하우즐영
2009-10-27 15:36:20
585
글번호 25687
답변완료
제 시스템은 단타시스템이라서 지난 기간에 조금 수익이 났었습니다. 그런데 어제 사단이 터졌습니다. 한달 전쯤에도 시스템 만들 초기에 질문을 드린바 있었고, 성실하게 예문도 보내주셔서 공부해 보았습니다. 어제 강한 상승추세에서 중간에 매도신호 나온 후 고점 돌파 당해서 곧이어 손절 신호가 나왔습니다. 문제는 손절신호가 atlimit 방식이었는데 동일 캔들에서 손절되자 마자 또 매도진입 신호가 나와서 이런게 어제 2번 있었습니다. 또 비슷한 경우인데요. setstoptrailing을 걸어서 수익이 나자마자 또 다시 그 캔들에서 진입 신호가 나와서 손실을 입었습니다. ( 지난 기간에는 신호가 다시 나와서 이익 보는 경우가 많아서 혹시나 해서 놔두었던 것이 화근이 되었습니다.) 아무래도 진입이 특정시점이 아니라 특정기간으로 해 놔서 진입시점과 청산이나 손절, setstop 시점이 3-4캔들 이내에 걸리면 이러한 현상이 일어날 수 밖에 없다고 봅니다. 아무래도 시스템은 안전이 우선이니깐, 혹시나 추가 신호가 더 이익 주지 않을까 하는 마음은 접었습니다. 그래서 다시 도움을 부탁드립니다. (어제 전에 보내주신 예문으로 해 봤는데 잘 안되서 다시 설명 드리고 도움을 부탁드리겠습니다) 제 식의 구조는 다음과 같은 형식입니다. if 조건a then { sell("a"); } if isentryname("a") == true then { if 청산조건 then exitshort("청산a"); if 손절조건 then exitshort("손절a"); } if isexitname("손절a",1)== true then if 재진입조건a then sell("재매도a"); if isentryname("a") == true then { if 청산조건 then exitshort("재매도청산a"); if 손절조건 then exitshort("재매도손절a"); } if 조건b then { sell("b"); } if isentryname("b") == true then { if 청산조건 then exitshort("청산b"); if 손절조건 then exitshort("손절b"); } 이렇게 동일한 방식으로 조건식이 c,d,e 식으로 몇 개 있고 마지막으로 if IsEntryName("a") == true Then SetStopTrailing(0.05,0.34,PointStop); else if IsEntryName("b") == true Then SetStopTrailing(0.05,0.34,PointStop); else if IsEntryName("c") == true Then SetStopTrailing(0.05,0.55,PointStop); . . . . Else SetStopTrailing(0,0); 이렇게 되어있습니다. 이 상태에서 아까 질문드린 대로 청산,손절,setstoptrailing 과 동시에 청산 주문이 안 나오게 했으면 좋겠습니다. 더불어 청산,손절setstoptrailing 후 몇 캔들 내에서는 재진입 금지도 알려 주세요. 늘 바쁘신대 감사드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-10-28 11:10:15

안녕하세요 예스스탁입니다. 청산과 동시에 진입을 막으시기 위해서는 진입식을 수정해야 합니다. 진입식에 marketposition == 0이라는 조건을 추가하시면 무포지션임을 확인하고 진입에 들어가게 됩니다. if 조건a and marketposition == 0 then { sell("a"); } 아래는 청산후 N개봉 이후 진입하는 식입니다. input : N(0); var : cnt(0),count(0); count = 0; for cnt = 0 to 20{ if sdate == EntryDate(cnt) Then count = count+1; } if (count == 0 and 조건a and marketposition == 0) or # 당일 첫진입은 조건a만족하면 진입하고 (count > 0 and BarsSinceExit(1) >= N and 조건a and marketposition == 0) # 당일 두번쨰 진입부터는 청산후 N개봉 후에 진입 then { sell("a"); } 즐거운 하루되세요 > 하우즐영 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다. > 제 시스템은 단타시스템이라서 지난 기간에 조금 수익이 났었습니다. 그런데 어제 사단이 터졌습니다. 한달 전쯤에도 시스템 만들 초기에 질문을 드린바 있었고, 성실하게 예문도 보내주셔서 공부해 보았습니다. 어제 강한 상승추세에서 중간에 매도신호 나온 후 고점 돌파 당해서 곧이어 손절 신호가 나왔습니다. 문제는 손절신호가 atlimit 방식이었는데 동일 캔들에서 손절되자 마자 또 매도진입 신호가 나와서 이런게 어제 2번 있었습니다. 또 비슷한 경우인데요. setstoptrailing을 걸어서 수익이 나자마자 또 다시 그 캔들에서 진입 신호가 나와서 손실을 입었습니다. ( 지난 기간에는 신호가 다시 나와서 이익 보는 경우가 많아서 혹시나 해서 놔두었던 것이 화근이 되었습니다.) 아무래도 진입이 특정시점이 아니라 특정기간으로 해 놔서 진입시점과 청산이나 손절, setstop 시점이 3-4캔들 이내에 걸리면 이러한 현상이 일어날 수 밖에 없다고 봅니다. 아무래도 시스템은 안전이 우선이니깐, 혹시나 추가 신호가 더 이익 주지 않을까 하는 마음은 접었습니다. 그래서 다시 도움을 부탁드립니다. (어제 전에 보내주신 예문으로 해 봤는데 잘 안되서 다시 설명 드리고 도움을 부탁드리겠습니다) 제 식의 구조는 다음과 같은 형식입니다. if 조건a then { sell("a"); } if isentryname("a") == true then { if 청산조건 then exitshort("청산a"); if 손절조건 then exitshort("손절a"); } if isexitname("손절a",1)== true then if 재진입조건a then sell("재매도a"); if isentryname("a") == true then { if 청산조건 then exitshort("재매도청산a"); if 손절조건 then exitshort("재매도손절a"); } if 조건b then { sell("b"); } if isentryname("b") == true then { if 청산조건 then exitshort("청산b"); if 손절조건 then exitshort("손절b"); } 이렇게 동일한 방식으로 조건식이 c,d,e 식으로 몇 개 있고 마지막으로 if IsEntryName("a") == true Then SetStopTrailing(0.05,0.34,PointStop); else if IsEntryName("b") == true Then SetStopTrailing(0.05,0.34,PointStop); else if IsEntryName("c") == true Then SetStopTrailing(0.05,0.55,PointStop); . . . . Else SetStopTrailing(0,0); 이렇게 되어있습니다. 이 상태에서 아까 질문드린 대로 청산,손절,setstoptrailing 과 동시에 청산 주문이 안 나오게 했으면 좋겠습니다. 더불어 청산,손절setstoptrailing 후 몇 캔들 내에서는 재진입 금지도 알려 주세요. 늘 바쁘신대 감사드립니다.