커뮤니티
Envelope 를 이용한 시스템에서 주문에러
2010-02-26 11:35:40
658
글번호 28422
아주 간단한 Envelope 지표를 이용한 시스템입니다. 그런데 주문이 제가 생각하는 데
로 나가지 않습니다. 전날 저가가 엔벨로프 하단에 닿지 않으면 당일 엔벨로프하단에
지정가 주문을 넣는 시스템입니다. 첨부한 그림에서 보면 첫번째 주문을 제가 생각한데로 나가는데 두번째 주문은 전날 저가가 엔벨로프하단을 깨고 내려왔는데도 매수 주문이 나갔습니다. 답변 부탁드립니다.
Input:EnvelWidth(3),ProfitCut(0.03);
If marketposition==0 and ENvelopeDown(20,EnvelWidth)[1]<=L[1] then {
Buy("LongEnv",AtLimit,EnvelopeDown(20,EnvelWidth));
}
If Marketposition==1 then {
ExitLong("LossCut",AtStop,EntryPrice*(1-ProfitCut));
ExitLong("LongEnvExit1",AtLimit,EntryPrice*(1+ProfitCut));
}
- 1. 사본 -CurrentChart.gif (0.02 MB)
답변 1
예스스탁 예스스탁 답변
2010-02-26 11:51:36
안녕하세요
예스스탁입니다.
시스템으로는 현재봉의 값을 현재봉의 시세가 건드렸는지를
판단하여 주문을 내시려면 봉완성시로 작성하셔야 합니다.
atlimit이나 atstop은 완성된봉(전봉)에서 가격이 셋팅되서
현재봉의 시세를 감시하는 타입 입니다. 현재봉의 어떤값을 현재봉의 시세를 감시하게는 작동될수 없습니다.
작성하신 진입식은
If marketposition==0 and ENvelopeDown(20,EnvelWidth)[1]<=L[1] then {
Buy("LongEnv",AtLimit,EnvelopeDown(20,EnvelWidth));
}
전봉의 저가가 전봉의 엔벨로프하단선보다 크거나 같으면
atlimit조건으로 현재봉의 엔벨로프 하단선을 지정하고
다음봉에서 그 가격 이하의 시세가 발생하면 주문하라는 식입니다.
즉 신호가 발생한 봉에서 보면 전봉이 아닌 전전봉의 저가가 전전봉의 엔벨로프 하단보다 크거나 같다라는 표현이므로 해당 신호가 맞습니다.
진입식을 변경하여
If marketposition==0 and ENvelopeDown(20,EnvelWidth)<=L then {
Buy("LongEnv",AtLimit,EnvelopeDown(20,EnvelWidth));
}
로 작성하여
현재봉의 저가가 현재봉의 엔벨로프 하단보다 크거나 작으면
현재봉의 엔벨로프 하단을 atlimit기준값으로 삼고
다음봉이 이 기준값이하의 시세가 형성하면 신호를 발생하게 작성하시거나
아래와 같이 봉완성시로 작성하셔야 합니다.
If marketposition==0 and ENvelopeDown(20,EnvelWidth)[1] <= L[1] and L < EnvelopeDown(20,EnvelWidth) then {
Buy("LongEnv");
}
즐거운 하루되세요
> guest 님이 쓴 글입니다.
> 제목 : Envelope 를 이용한 시스템에서 주문에러
> 아주 간단한 Envelope 지표를 이용한 시스템입니다. 그런데 주문이 제가 생각하는 데
로 나가지 않습니다. 전날 저가가 엔벨로프 하단에 닿지 않으면 당일 엔벨로프하단에
지정가 주문을 넣는 시스템입니다. 첨부한 그림에서 보면 첫번째 주문을 제가 생각한데로 나가는데 두번째 주문은 전날 저가가 엔벨로프하단을 깨고 내려왔는데도 매수 주문이 나갔습니다. 답변 부탁드립니다.
Input:EnvelWidth(3),ProfitCut(0.03);
If marketposition==0 and ENvelopeDown(20,EnvelWidth)[1]<=L[1] then {
Buy("LongEnv",AtLimit,EnvelopeDown(20,EnvelWidth));
}
If Marketposition==1 then {
ExitLong("LossCut",AtStop,EntryPrice*(1-ProfitCut));
ExitLong("LongEnvExit1",AtLimit,EntryPrice*(1+ProfitCut));
}
이전글