커뮤니티
수식 해석, 질문드립니다.
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는 첫진입으로부터를 의미하는 것인지, 두번째 진입으로부터를 의미하는 것인지...
등등 도움말씀 상세히 부탁드리겠습니다.
다음글
이전글