항상 감사드립니다.
미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서,
미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서,
아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데,
가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다.
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
이 코딩에 간단한 무언가를 더 첨부해서,
05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면
대단히 감사하겠습니다.
답변 3
예스스탁
예스스탁 답변
2021-04-28 15:12:31
안녕하세요
예스스탁입니다.
진입식에 시간제한 조건을 지정하셔야 합니다.
var : Tcond(false);
if (sdate != sdate[1] and stime >= 055000) or
(sdate == sdate[1] and stime >= 055000 and stime[1] < 055000) Then
Tcond = False;
if Bdate != Bdate[1] Then
Tcond = true;
if Tcond == true Then
{
진입수식
}
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
즐거운 하루되세요
> 즐겁게 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 항상 감사드립니다.
미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서,
미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서,
아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데,
가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다.
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
이 코딩에 간단한 무언가를 더 첨부해서,
05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면
대단히 감사하겠습니다.
답변 주셔서 대단히 감사합니다.
작은 추가 질문 올리고자 합니다.
if Bdate != Bdate[1]
이 것의 의미를 설명해 주시면 대단히 감사하겠습니다.
((YLHelp.docx 등에서 찾아 봐도,
bDate 영업일(Business date)
라는 설명 외에는 사용례라든지 등이 보이지 않아서 질문 올립니다))
대단히 감사합니다!
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 부탁드립니다.
> 안녕하세요
예스스탁입니다.
진입식에 시간제한 조건을 지정하셔야 합니다.
var : Tcond(false);
if (sdate != sdate[1] and stime >= 055000) or
(sdate == sdate[1] and stime >= 055000 and stime[1] < 055000) Then
Tcond = False;
if Bdate != Bdate[1] Then
Tcond = true;
if Tcond == true Then
{
진입수식
}
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
즐거운 하루되세요
> 즐겁게 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 항상 감사드립니다.
미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서,
미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서,
아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데,
가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다.
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
이 코딩에 간단한 무언가를 더 첨부해서,
05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면
대단히 감사하겠습니다.
예스스탁
예스스탁 답변
2021-04-29 16:48:40
안녕하세요
예스스탁입니다.
plot1(sdate);
plot2(bdate);
위 지표수식을 차트에 적용해 보시면
sdate는 0시를 기준으로 날짜가 변경되고
bdate는 특정시간에 변경되는 것을 보실수 있습니다.
각 거래소마다 새로운 영업일을 시작하는 기준시간이 있습니다.
예를들어 국내거래소는 9시이고 CME의 경우 우리나라시간으로 8시(썸머타임 7시)입니다.
Bdate는 영업일변경시간을 기준으로 변경되는 날짜이고 sdate는 0시 기준 변경되는 날짜입니다.
if sdate != sdate[1] then
위 조건식은 0시기준으로 오늘 첫봉을 표현하는 식이고
if bdate != bdate[1] then
위 조건식은 영업일변경기기준으로 오늘 첫봉을 표현하는 식입니다.
국내종목은 야간장이 없어 위 2개의 날짜의 구분없이 사용하지만
해외선물의 경우에는 bdate를 사용해야 합니다.
그러므로 일반적으로 모든식에 당일 첫봉을 bdate != bdate[1]로 표현합니다.
즐거운 하루되세요
> 즐겁게 님이 쓴 글입니다.
> 제목 : Re : Re : 부탁드립니다.
> 답변 주셔서 대단히 감사합니다.
작은 추가 질문 올리고자 합니다.
if Bdate != Bdate[1]
이 것의 의미를 설명해 주시면 대단히 감사하겠습니다.
((YLHelp.docx 등에서 찾아 봐도,
bDate 영업일(Business date)
라는 설명 외에는 사용례라든지 등이 보이지 않아서 질문 올립니다))
대단히 감사합니다!
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 부탁드립니다.
> 안녕하세요
예스스탁입니다.
진입식에 시간제한 조건을 지정하셔야 합니다.
var : Tcond(false);
if (sdate != sdate[1] and stime >= 055000) or
(sdate == sdate[1] and stime >= 055000 and stime[1] < 055000) Then
Tcond = False;
if Bdate != Bdate[1] Then
Tcond = true;
if Tcond == true Then
{
진입수식
}
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
즐거운 하루되세요
> 즐겁게 님이 쓴 글입니다.
> 제목 : 부탁드립니다.
> 항상 감사드립니다.
미국장이 06:00에 끝나고, 06:40 무렵에 재접속하도록 되어 있어서,
미국장 아침 폐장 직전에 모두 청산하고 07:00 이후에 컴퓨터를 다시 켜서 시작이 되도록 하려는 상황에서,
아래의 소스를 사용하면 05:50 이후에 일단 기존 포지션이 청산되는 것은 잘 되는데,
가끔씩 그 후에도 새로 진입 발생하고 바로 다음 봉에서 청산되는 일이 발생합니다.
If 055000<sTime and sTime<070000 and MarketPosition == 1
Then ExitLong("EL_EOD");
If 055000<sTime and sTime<070000 and MarketPosition == -1
Then ExitShort("ES_EOD");
이 코딩에 간단한 무언가를 더 첨부해서,
05:50~06:00 사이에 진입이 발생하지 않도록 하는 방법을 알려 주시면
대단히 감사하겠습니다.