커뮤니티
시스템 설명 부탁드립니다.
2019-08-15 22:01:38
161
글번호 131174
항상 도움 주셔서 감사합니다.
제가 초보라서요.
아래 시스템식이 이해가 안됩니다.
시스템식 설명 좀 부탁드립니다.
if (sdate != sdate[1] and NextBarStime >= 70000) or
(sdate == sdate[1] and stime < 70000 and NextBarStime >= 70000) Then
{
if MarketPosition == 1 Then
ExitLong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx",AtMarket);
}
특히 sdate != sdate[1] 의미와
sdate == sdate[1]의 의미가 이해가 안됩니다.
또 아래식도 같이 설명 부탁드립니다.
if stime == 055000 or (stime > 055000 and stime[1] < 055000) then { # 포지션 청산
exitlong("BDF");
exitshort("SDF");
}
감사합니다.
답변 1
예스스탁 예스스탁 답변
2019-08-16 14:48:37
안녕하세요
예스스탁입니다.
일반적으로 특정시간봉을 지정할 떄
if stime == 70000 then
으로 특정시간봉을 지정하지만 해당 시간대에 거래가 없으면
stime == 70000이란 조건이 만족하지 않게 됩니다.
그래서 아래와 같이 지정해
if stime == 70000 or (stime > 70000 and stime[1] < 70000) then
7시봉이 없는 상황도 가정해 (stime > 70000 and stime[1] < 70000)조건을 추가하게 됩니다.
현재봉은 7시보다 큰데 전봉은 7시보다 작은봉이라는 내용입니다.
하지만 지정한 시간이 0시 기준으로 날짜가 변경되는 첫봉이면
1봉전 시간이 235900으로 조건(stime[1] < 70000)이 만족하지 않게 됩니다.
따라서 아래와 같은 표현을 사용하게 됩니다.
봉완성시 0시 기준으로 첫봉(sdate != sdate[1])이 지정한 시간을 충족하는 봉일경우와
봉완성시 0시 시준으로 첫봉(sdate == sdate[1])이 아닐때를 구분해서 조건을 지정한 것입니다.
if (sdate != sdate[1] and stime>= 70000) or
(sdate == sdate[1] and stime >= 70000 and Stime < 70000) Then
{
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
위는 봉 종가기준으로 청산할떄 사용하는 내용이고
올려주신 아래식은 봉의 시가시간을 기준으로 시가가 지정한 시간을 충족하면 청산하는 내용입니다.
그래서 봉완성시(다음봉시가수신) 될때 다음봉시가의 시간을 리턴하는 NextBarStime가 사용되었고
청산함수에도 다음봉시가에 신호표시하는 atmarket이 사용되었습니다.
if (sdate != sdate[1] and NextBarStime >= 70000) or
(sdate == sdate[1] and stime < 70000 and NextBarStime >= 70000) Then
{
if MarketPosition == 1 Then
ExitLong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx",AtMarket);
}
봉완성시 0시 기준으로 첫봉(sdate != sdate[1])이고 다음봉시가가 지정한 시간을 충족하거나
봉완성시 0시 시준으로 첫봉이 아니고 (sdate == sdate[1]) 지정한 시간을 충족하면 조건충족하고
신호가 발생하게 됩니다.
즐거운 하루되세요
> 양치기 님이 쓴 글입니다.
> 제목 : 시스템 설명 부탁드립니다.
> 항상 도움 주셔서 감사합니다.
제가 초보라서요.
아래 시스템식이 이해가 안됩니다.
시스템식 설명 좀 부탁드립니다.
if (sdate != sdate[1] and NextBarStime >= 70000) or
(sdate == sdate[1] and stime < 70000 and NextBarStime >= 70000) Then
{
if MarketPosition == 1 Then
ExitLong("bx",AtMarket);
if MarketPosition == -1 Then
ExitShort("sx",AtMarket);
}
특히 sdate != sdate[1] 의미와
sdate == sdate[1]의 의미가 이해가 안됩니다.
또 아래식도 같이 설명 부탁드립니다.
if stime == 055000 or (stime > 055000 and stime[1] < 055000) then { # 포지션 청산
exitlong("BDF");
exitshort("SDF");
}
감사합니다.