커뮤니티

수식 해석, 질문드립니다.

프로필 이미지
바랍이었어라
2009-05-08 00:56:59
647
글번호 22125
답변완료
### 분할청산하기 위한 식 if MarketPosition == 1 Then{ var1 = MRO(CurrentEntries > CurrentEntries[1],BarsSinceEntry,1)+1; if CurrentEntries == 2 and BarsSinceEntry > 3 and 조건 Then exitlong("bx1",OnClose,def,"",1,1); if MaxEntries == 2 and CurrentEntries == 1 and var1 > 3 and 조건 Then exitlong("bx2",OnClose,def,"",1,1); } ### 이렇게 알려주셨습니다. 3계약 피라미딩하는데,(10분봉 사용) "매수1" 두 계약이 10시, 14시에 한계약씩 피라미딩으로 진입되었습니다. 청산조건은 ( BarsSinceEntry>2 and BarsSinceEntry<=5 and c<o ) or ( BarsSinceEntry>5 and Accumn(iff(c<o,1,0),2)==2 ) 입니다. 그런데, 14시 20분에 음봉이 나왔습니다. 이 때에, 저는 10시에 진입한 한계약만 청산하고 싶은데... 14시에 진입한 것도 청산이 되어져버립니다. BarsSinceEntry>2 가 14시에 진입한 것에는 적용이 안되기 때문이죠. 그래서 14시에 진입한 것에도, BarsSinceEntry>2 가 적용되도록, 즉, 위 모든 원래의 청산조건이 두번째 진입한 것에도 그대로 적용되도록 하고 싶습니다. (그리고 나중에, 세 계약 모두 피라미딩으로 진입한 경우에, 세 계약 모두 위와같이 각각 원래의 청산식이 적용되도록도 하고 싶습니다.) 위와 같이 답해주셨는데요... 위에서는 BarSinceEntre>3으로 답해주셨습니다(질문을 3으로 잘못 올렸었거든요...) 그런데 함수설명을 찾아보고 머리를 아무리 굴려도 이해가 잘 안되어. 해석좀 부탁드리려고 합니다. CurrentEntries는 미청산 계약이 발생한 횟수인데... 왜 [1]을 붙이는지 "" 안에는 무엇을 적는지 "" 뒤의 1, 1, 은 무엇을 의미하는지 MRO는 조건이 최근에 발생한게 지금으로부터 몇번째인가... 인데, 여기에 +1을 왜 붙이는지... 둘째줄의 BarsSinceEntry는 첫진입으로부터를 의미하는 것인지, 두번째 진입으로부터를 의미하는 것인지... 등등 도움말씀 상세히 부탁드리겠습니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2009-05-08 10:07:46

안녕하세요 예스스탁입니다. CurrentEntries는 포지션의 진입횟수를 가져옵니다. 진입이 3번일어나면 CurrentEntries은 3입니다. 또한 진입세번후 청산이 한번 있으면 CurrentEntries는 2입니다. CurrentEntries > CurrentEntries[1]의 의미는 전봉대비 현재봉에서 진입횟수가 증가했음을 나타내고 진입횟수가 증가했음은 진입이 있었다는 의미입니다. MRO(CurrentEntries > CurrentEntries[1],BarsSinceEntry,1) 는 가장 최근 진입횟수가 증가한 봉이 현재로부터 몇봉전이었는지를 나타냅니다. 청산함수는 exitlong과 exitshort은 매개변수가 모두 6개 있습니다. ("청산명",신호타입,가격,"진입명",수량,수량옵션); 4번째의 ""안에 특정 진입명을 입력하면 그 진입이 발생했을때만 청산함수가 동작하고 ""만 하면 모든 진입에 적용됩니다. 이때 진입명은 피라미딩상 첫진입만 인지합니다. 수량옵션은 0또는 1로 설정할수 있습니다. 0으로 설정하시면 매 진입에서 지정된 수량만큼씩을 빼서 청산하며 1로 설정하시면 총진입수량에서 지정된 수량만 청산합니다. 즐거운 하루되세요 > 바랍이었어라 님이 쓴 글입니다. > 제목 : 수식 해석, 질문드립니다. > ### 분할청산하기 위한 식 if MarketPosition == 1 Then{ var1 = MRO(CurrentEntries > CurrentEntries[1],BarsSinceEntry,1)+1; if CurrentEntries == 2 and BarsSinceEntry > 3 and 조건 Then exitlong("bx1",OnClose,def,"",1,1); if MaxEntries == 2 and CurrentEntries == 1 and var1 > 3 and 조건 Then exitlong("bx2",OnClose,def,"",1,1); } ### 이렇게 알려주셨습니다. 3계약 피라미딩하는데,(10분봉 사용) "매수1" 두 계약이 10시, 14시에 한계약씩 피라미딩으로 진입되었습니다. 청산조건은 ( BarsSinceEntry>2 and BarsSinceEntry<=5 and c<o ) or ( BarsSinceEntry>5 and Accumn(iff(c<o,1,0),2)==2 ) 입니다. 그런데, 14시 20분에 음봉이 나왔습니다. 이 때에, 저는 10시에 진입한 한계약만 청산하고 싶은데... 14시에 진입한 것도 청산이 되어져버립니다. BarsSinceEntry>2 가 14시에 진입한 것에는 적용이 안되기 때문이죠. 그래서 14시에 진입한 것에도, BarsSinceEntry>2 가 적용되도록, 즉, 위 모든 원래의 청산조건이 두번째 진입한 것에도 그대로 적용되도록 하고 싶습니다. (그리고 나중에, 세 계약 모두 피라미딩으로 진입한 경우에, 세 계약 모두 위와같이 각각 원래의 청산식이 적용되도록도 하고 싶습니다.) 위와 같이 답해주셨는데요... 위에서는 BarSinceEntre>3으로 답해주셨습니다(질문을 3으로 잘못 올렸었거든요...) 그런데 함수설명을 찾아보고 머리를 아무리 굴려도 이해가 잘 안되어. 해석좀 부탁드리려고 합니다. CurrentEntries는 미청산 계약이 발생한 횟수인데... 왜 [1]을 붙이는지 "" 안에는 무엇을 적는지 "" 뒤의 1, 1, 은 무엇을 의미하는지 MRO는 조건이 최근에 발생한게 지금으로부터 몇번째인가... 인데, 여기에 +1을 왜 붙이는지... 둘째줄의 BarsSinceEntry는 첫진입으로부터를 의미하는 것인지, 두번째 진입으로부터를 의미하는 것인지... 등등 도움말씀 상세히 부탁드리겠습니다.