커뮤니티
도움주신 수식이 잘 작동이 안되네요...
2013-11-28 15:28:39
179
글번호 69930
var : cond(false,data1);
if data1(date != date[1]) Then
cond = false;
if cond == false and data2(C >= CloseD(1)*1.003) Then{
buy();
cond = true;
}
#진입가 대비 5% 상승시 매수청산
if MarketPosition == 1 Then
ExitLong("bx",AtStop,EntryPrice*1.05);
#14시 45분 당일청산
SetStopEndofday(144500);
------------------------
위와 같이 수식 주셨는데요. 주종목 레버리지, 일봉 차트로 설정하고 data2에 kospi200 종합 지수를 넣고 시뮬레이션을 돌려봤습니다. 그랬더니, 진입시 가격이 "시가"가 아니라 "종가" 로 들어가서.. C를 Dayopen으로 바꿔봤습니다. 그리고 당일 청산이 안되길래 마찬가지로 Exitlong의 옵션도 바꿔서 아래와 같이 만들어 봤습니다.
var : cond(false,data1);
if data1(date != date[1]) Then
cond = false;
if cond == false and data2(dayopen>closed(1)*1.003) Then{
buy("DO",AtMarket);
cond = true;
}
if MarketPosition == 1 Then
ExitLong("bx",OnClose);
-----------------------------------------------
이렇게 하니까 시가 매수, 종가 매도는 됐는데.... 분명 전일종가가 263.86, 당일시가가 263.19 이렇게 확실하게 갭하락이 있음에도 불구하고 당일시가로 매수가 이루어진다거나.... 거꾸로 갭상승이 있음에도 불구하고 당일시가로 매수가 이루어지지 않는 경우가 빈번하더군요.
그뿐만이 아니라 data2(Dayopen>CloseD(1)*1.003) 대신에 data2(crossup(DayOpen , closed(1)*1.003)) 을 썼을 때... 의미는 같다고 생각되는데도 불구하고 전혀 다른 결과가 나오네요?
일단 일봉 차트에서 일일이 전일종가(종)와 당일시가(시)를 확인했을때 분명 전일종가*1.003<당일시가임에도 불구하고 매수신호가 발생하지 않는게 정말 이해가 안되네요... 도움 부탁드립니다 ㅠㅠ
답변 1
예스스탁 예스스탁 답변
2013-11-29 12:57:58
안녕하세요
예스스탁입니다.
1.
작성해드린식은 분봉용입니다.
1분봉에 적용하시면 됩니다.
문의하신 내용은 참조데이터를 이용해야 하는식이고
당일청산을 해야 하고
코스피200지수는 데이터자체가 장시작후 1분 후부터 제공되고
코덱스 종목은 9시부터 시세가 발생되는 종목이므로
코덱스 시초가에 진입은 할수가 없고 봉완성시에
조건판단해 종가로 진입하게 작성해야만 합니다.
2.
위와 같은 이유로 분봉에 적용하셔야 하며
시뮬레이션 차트에서 5000개봉 이상의 데이터를 조회할수 있으므로
기간 지정해서 종목차트를 여시고 아래식 적용해서 보시면 됩니다.
코스피200 선물이 아닌 지수를 이용하시므로
진입에 주종목과 참조종목의 날짜가 서로 같은때만 신호가 발생
하게 조건이 추가되었습니다
청산쪽의 타입이 반대로 되어 해당 부분도 수정했습니다.
3. 주종목 KODEX 레버리지, 참조종목(data2) KOSPI200
var : cond(false,data1);
if data1(date != date[1]) Then
cond = false;
if cond == false and data2(C >= CloseD(1)*1.003) and data1(sdate) == data2(sdate) Then{
buy("b");
cond = true;
}
#진입가 대비 5% 상승시 매수청산
if MarketPosition == 1 Then
ExitLong("bx",AtLimit,EntryPrice*1.05);
#14시 45분 당일청산
SetStopEndofday(144500);
4 주종목 KODEX 인버스, 참조종목(data2) KOSPI200
var : cond(false,data1);
if data1(date != date[1]) Then
cond = false;
if cond == false and data2(C <= CloseD(1)*0.999) Then{
buy("b");
cond = true;
}
#진입가 대비 4.5% 상승시 매수청산
if MarketPosition == 1 Then
ExitLong("bx",Atlimit,EntryPrice*1.045);
#14시 45분 당일청산
SetStopEndofday(144500);
즐거운 하루되세요
> 프레녹스 님이 쓴 글입니다.
> 제목 : 도움주신 수식이 잘 작동이 안되네요...
> var : cond(false,data1);
if data1(date != date[1]) Then
cond = false;
if cond == false and data2(C >= CloseD(1)*1.003) Then{
buy();
cond = true;
}
#진입가 대비 5% 상승시 매수청산
if MarketPosition == 1 Then
ExitLong("bx",AtStop,EntryPrice*1.05);
#14시 45분 당일청산
SetStopEndofday(144500);
------------------------
위와 같이 수식 주셨는데요. 주종목 레버리지, 일봉 차트로 설정하고 data2에 kospi200 종합 지수를 넣고 시뮬레이션을 돌려봤습니다. 그랬더니, 진입시 가격이 "시가"가 아니라 "종가" 로 들어가서.. C를 Dayopen으로 바꿔봤습니다. 그리고 당일 청산이 안되길래 마찬가지로 Exitlong의 옵션도 바꿔서 아래와 같이 만들어 봤습니다.
var : cond(false,data1);
if data1(date != date[1]) Then
cond = false;
if cond == false and data2(dayopen>closed(1)*1.003) Then{
buy("DO",AtMarket);
cond = true;
}
if MarketPosition == 1 Then
ExitLong("bx",OnClose);
-----------------------------------------------
이렇게 하니까 시가 매수, 종가 매도는 됐는데.... 분명 전일종가가 263.86, 당일시가가 263.19 이렇게 확실하게 갭하락이 있음에도 불구하고 당일시가로 매수가 이루어진다거나.... 거꾸로 갭상승이 있음에도 불구하고 당일시가로 매수가 이루어지지 않는 경우가 빈번하더군요.
그뿐만이 아니라 data2(Dayopen>CloseD(1)*1.003) 대신에 data2(crossup(DayOpen , closed(1)*1.003)) 을 썼을 때... 의미는 같다고 생각되는데도 불구하고 전혀 다른 결과가 나오네요?
일단 일봉 차트에서 일일이 전일종가(종)와 당일시가(시)를 확인했을때 분명 전일종가*1.003<당일시가임에도 불구하고 매수신호가 발생하지 않는게 정말 이해가 안되네요... 도움 부탁드립니다 ㅠㅠ
다음글
이전글