커뮤니티
제가 만든 수식이 무엇이 잘못되었나요?
2013-06-28 05:48:18
189
글번호 64806
안녕하세요..
31110번에 문의한 수식을 답변해주셔서 감사합니다. 그 수식을 토대로 매도식을
아래와 같이 만들었습니다.
그런데 시물레이션을 해보니 진입은 되는데, 청산이 안되요 무엇이 잘못되었는지
도대체 알수가 없네요..
수정 부탁드립니다... 감사합니다.
바쁘시더라도 주석좀 부탁드립니다...
input : 기준값(225.50),진입가(224.5),목표가(223),손절가(225.30);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if MarketPosition == 0 and count == 0 and DayHigh >= 기준값 and L > 진입가 and stime < 150000 Then
Sell("b",AtStop,진입가);
if MarketPosition == 0 and count > 0 and Highest(H,BarsSinceExit(1)) >= 기준값 and L > 진입가 and stime < 150000 Then
Sell("bb",AtLimit,진입가);
if MarketPosition == 1 Then{
exitshort("목표가청산",AtStop,목표가);
exitshort("손절가청산",AtStop,손절가);
}
답변 1
예스스탁 예스스탁 답변
2013-06-28 11:53:40
안녕하세요
예스스탁입니다.
MarketPosition은 매도포지션일때는 -1입니다.
MarketPosition == 1 은 매수포지션 상태를 나타냅니다.
아래와 같이 수정하시면 됩니다.
sell에서 atstop이 지정한 값 까지 가격하락할때 진입하는 타입니다.
exitshort 매도포지션청산 함수에서
지정한 가격까지 하락하면 매도청산할때는 atlimit을 사용하셔야 하고
지정한 가격까지 상승하면 매도청산할때는 atstop을 사용하셔야 합니다.
input : 기준값(225.50),진입가(224.5),목표가(223),손절가(225.30);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
#첫진입
# 당일고가가 기즌값 이상이고
# 진입가 위에서 시세가 하락해 진입가까지 내려오면 매도진입
if MarketPosition == 0 and count == 0 and DayHigh >= 기준값 and L > 진입가 and stime < 150000 Then
Sell("b",AtStop,진입가);
# 두번째 이후의 진입부터는
# 청산이후의 최고가가 기준값보다 크고
# 진입가 위에서 시세가 하락해 진입가까지 내려오면 매도진입
if MarketPosition == 0 and count > 0 and Highest(H,BarsSinceExit(1)) >= 기준값 and L > 진입가 and stime < 150000 Then
Sell("bb",AtStop,진입가);
if MarketPosition == -1 Then{#매도진입 중이고
exitshort("목표가청산",AtLimit,목표가);#목표가까지 가격하락하면 매도청산
exitshort("손절가청산",AtStop,손절가);#손절가까지 가격상승하면 매도청산
}
즐거운 하루되세요
> bigdeal 님이 쓴 글입니다.
> 제목 : 제가 만든 수식이 무엇이 잘못되었나요?
> 안녕하세요..
31110번에 문의한 수식을 답변해주셔서 감사합니다. 그 수식을 토대로 매도식을
아래와 같이 만들었습니다.
그런데 시물레이션을 해보니 진입은 되는데, 청산이 안되요 무엇이 잘못되었는지
도대체 알수가 없네요..
수정 부탁드립니다... 감사합니다.
바쁘시더라도 주석좀 부탁드립니다...
input : 기준값(225.50),진입가(224.5),목표가(223),손절가(225.30);
var : cnt(0),count(0);
count = 0;
for cnt = 0 to 20{
if sdate == EntryDate(cnt) Then
count = count+1;
}
if MarketPosition == 0 and count == 0 and DayHigh >= 기준값 and L > 진입가 and stime < 150000 Then
Sell("b",AtStop,진입가);
if MarketPosition == 0 and count > 0 and Highest(H,BarsSinceExit(1)) >= 기준값 and L > 진입가 and stime < 150000 Then
Sell("bb",AtLimit,진입가);
if MarketPosition == 1 Then{
exitshort("목표가청산",AtStop,목표가);
exitshort("손절가청산",AtStop,손절가);
}
이전글