커뮤니티
문의 드립니다
2014-10-13 19:32:38
150
글번호 79339
다음 수식을 가지고 테스트 중입니다
input : Left(3),Right(3);
var : SWHbarrier(0),SWLbarrier(0),stls(0);
#매수
if SwingHigh(1,c,Left,Right,Left+right+1) != -1 Then{
SWHbarrier = SwingHigh(1,c,Left,Right,Left+right+1);
}
if c>swhbarrier and swhbarrier>o Then
{ buy("AL-1-1");
stls=c-o;}
if MarketPosition == 1 Then
setstoploss(stls,PointStop);
#매도
if SwingLow(1,c,Left,Right,Left+right+1) != -1 Then{
SWLbarrier = Swinglow(1,c,Left,Right,Left+right+1);
}
if c<swlbarrier and swlbarrier<o Then
{ sell("AS-1-1");
stls=o-c;}
if MarketPosition == -1 Then
setstoploss(stls,PointStop);
진입한 봉의 시가가 훼손될시 손절을 하기위해
종가와 시가의 차를 stls라는 변수로 기록하고
setstoploss 함수로 손절을 하려고 하는데,
예로 09/12/10 14:15분 진입, 18분 손절처럼 의도치 않은 손절이 발생하였습니다
(첨부파일 노란 상자로 하이라이트)
수식에 어떤 문제 있는지 말씀 부탁드리고
혹시 다른 함수등을 사용하여 더 효율적인 수식을 작성할 수 있는지 궁금합니다
감사합니다
- 1. ys문의141013.jpg (0.51 MB)
답변 1
예스스탁 예스스탁 답변
2014-10-14 11:41:28
안녕하세요
예스스탁입니다.
스탑로스는 봉완성시 값이 한번세팅이 되면
다음셋팅조건이 만족되기 전까지 그 값이 유지가 됩니다.
작성하신 식에서 진입 후에 포지션(marketposition)이 변경되는것은 다음봉입니다.
다음봉 완성시 포지션변경이 인식되므로 진입봉 다음봉에 나온 청산은 그 이전
진입시에 값입니다.
또한 진입봉이 양봉과 음봉에 따라 stls값이 양수가 되기도 하고
음수가 되기도 합니다. 강제청산함수는 양수로 손실값을 지정합니다.
수식을 아래와 같이 변경하셔야 합니다.
input : Left(3),Right(3);
var : SWHbarrier(0),SWLbarrier(0),stls(0);
#매수
if SwingHigh(1,c,Left,Right,Left+right+1) != -1 Then{
SWHbarrier = SwingHigh(1,c,Left,Right,Left+right+1);
}
if c > swhbarrier and swhbarrier>o Then{
buy("AL-1-1");
exitlong("bx1",AtStop,C-abs(C-O));
}
if MarketPosition == 1 Then
exitlong("bx2",AtStop,EntryPrice-abs(C[BarsSinceEntry]-O[BarsSinceEntry]));
#매도
if SwingLow(1,c,Left,Right,Left+right+1) != -1 Then{
SWLbarrier = Swinglow(1,c,Left,Right,Left+right+1);
}
if c<swlbarrier and swlbarrier<o Then
{
sell("AS-1-1");
ExitShort("sx1",AtStop,C+abs(C-O));
}
if MarketPosition == -1 Then
ExitShort("sx2",AtStop,EntryPrice+abs(C[BarsSinceEntry]-O[BarsSinceEntry]));
즐거운 하루되세요
> blah 님이 쓴 글입니다.
> 제목 : 문의 드립니다
> 다음 수식을 가지고 테스트 중입니다
input : Left(3),Right(3);
var : SWHbarrier(0),SWLbarrier(0),stls(0);
#매수
if SwingHigh(1,c,Left,Right,Left+right+1) != -1 Then{
SWHbarrier = SwingHigh(1,c,Left,Right,Left+right+1);
}
if c>swhbarrier and swhbarrier>o Then
{ buy("AL-1-1");
stls=c-o;}
if MarketPosition == 1 Then
setstoploss(stls,PointStop);
#매도
if SwingLow(1,c,Left,Right,Left+right+1) != -1 Then{
SWLbarrier = Swinglow(1,c,Left,Right,Left+right+1);
}
if c<swlbarrier and swlbarrier<o Then
{ sell("AS-1-1");
stls=o-c;}
if MarketPosition == -1 Then
setstoploss(stls,PointStop);
진입한 봉의 시가가 훼손될시 손절을 하기위해
종가와 시가의 차를 stls라는 변수로 기록하고
setstoploss 함수로 손절을 하려고 하는데,
예로 09/12/10 14:15분 진입, 18분 손절처럼 의도치 않은 손절이 발생하였습니다
(첨부파일 노란 상자로 하이라이트)
수식에 어떤 문제 있는지 말씀 부탁드리고
혹시 다른 함수등을 사용하여 더 효율적인 수식을 작성할 수 있는지 궁금합니다
감사합니다