안녕하세요~ 이해가 잘 안가는 부분이 있어서 다시 글 남깁니다~
(작성해주신 글)===================================
수식은 봉완성이 기본체계입니다.
봉완성시 if조건을 체크하고 실행문을 수행합니다.
예스랭귀지에는 신호타입이 4가지 제공됩니다.
onclose,atmarket,atstop,atlimit
신호가 onclose나 atmarket으로 지정되어 있으면
ir조건이 만족하는 봉완성시 신호입니다.
봉완성은 다음봉시가수신될때이고
onclose는 완성봉의 종가에,
atmarket은 다음봉시가에 신호를 표시하고
해당값을 리포트의 진입청산가격으로 사용합니다.
atstop과 atlimit은
봉완성시 if조건을 만족하면 값을 셋팅하고 다음봉에서 셋팅된 가격을 이용한 추가 조건이 만족하면 즉시 신호가 발생합니다.
올리신 그림으로 보면 작성하신 식은 모두 onclose타입인것 같고
종가에 신호가 표시되는 것이 맞습니다
===========================================================================
추가 질문입니다.
if문이 현재 봉의 완성 기준이라고 말씀해 주셨는데, 5분봉을 기준으로 잡는다고 치면. 09:05에 2번째 봉이 생겨서 5분동안 움직이다가 09:10에 3번째 5분봉이 생기겠죠?
그럼 만약 제가 if문으로 5일선 위에 주가가 있고, 캔들의 크기가 0.3P 이상이면 매수라는 아래의 수식을 사용한다고 가정해 보겠습니다.
if C >= MA(C,5) and C-0 >= 0.3 THEN
BUY()
1. 09:05에 형성된 캔들이 5일선 위에 있고, 해당 캔들의 상승이 0.3P 이상이면 조건에 해당되는데요. 이때 09:05분에 캔들 2번째 봉이 시가를 만들고나서 상승할때 조건을 만족하는 순간에 매수주문이 바로 나가는게 아니고, 봉완성의 기준이 다음봉 시가니까. 조건을 충족해도 다음봉이 나올때까지 주문이 안나간다는 말씀인가요??
그럼 09:05분에 강한 상승이 나와서 형성된 2번째 캔들이 1.5P까지 고가를 만들고 다음봉 시가가 고가에서 형성될텐데 이때 주문이 나가면 1.2P 손해를 보게 되는 완전 후행 아닌가요? ㅠㅠ
2. atstop과 atlimit은
봉완성시 if조건을 만족하면 값을 셋팅하고 다음봉에서 셋팅된 가격을 이용한 추가 조건이 만족하면 즉시 신호가 발생합니다.
이렇게 써주셨는데 그럼 ATSTOP과 ATLIMIT을 쓰면 신호 발생 즉시 주문이 나간다는 말씀인가요? 위에 봉완성의 기준이 다음봉 시가라고 하셔서 헷갈리네요..
3. if C >= MA(C,5) and C-0 >= 0.3 THEN
BUY()
이 조건을 만족하는 순간 주문이 나가게 하는게 atstop과 atlimit을 사용하면 될 경우, 어떻게 수정해 주어야 하는지요?
4. 글을 몇개 보다 보니 이렇게 답변을 해주신 걸 찾았는데요
================================================
일반청산함수로 진입 후 다음봉에서도 청산을 하고자 하시면
진입과 동시에 청산도 같이 셋팅이 되게 해야 하는데
진입신호가 onclose나 atmarket으로 신호타입일때만 가능합니다.
진입이 atstop이나 atlimit이면 봉미완성시에 신호가 발생해서 진입가를 알수가 없습니다.
if C >= MA(C,5) and C-0 >= 0.3 THEN
BUY()
위의 식으로 시장가 매수 진입하고나서
if MarketPosition == 1 Then
{
if C < MA(C,5) AND C<0 Then
ExitLong();
if H-O >= 1 Then
ExitLong();
}
이렇게 설정할 경우 두번째에 있는 고가 - 시가 >= 1P 인 경우는 주문이 안나간다는 말씀이신건가요? 그럼 이럴 경우 함수나 다른 방식으론 구현이 불가능하고, 시스템 적용할때 나타나는 창에서 목표가 설정으로만 가능한거지요~?
답변 1
예스스탁
예스스탁 답변
2022-07-04 18:29:01
안녕하세요
예스스탁입니다.
아래 내용을 참고하시기 바랍니다.
아래 내용은 예스랭귀지 신호체계이고 해당 내용을 벋어난 부분은
구현이 불가능합니다.
1
설명하신 내용이 맞습니다.
예스랭귀지는 완성봉의 값만 사용이 가능하고 if문도 봉완성시만 조건만족여부를 체크합니다.
봉미완성시에 if조건체크해서 신호를 발생하지 못합니다.
2.3
atstop과 atlimit은
봉미완성시에 if문을 체크해서 신호를 발생하기 위한 신호타입이 아닙니다.
특정 가격수준을 체크하기 위해서 사용하는 타입으로
특정가격 수준도 봉완성시에 셋팅한 값과 다음봉 현재가와 비교만 가능합니다.
또한 2개 조건이상 가격비교는 불가능하고
반드시 완성봉에서 계산된 값과 다음봉 현재가와 비교만 가능합니다.
미완성봉의 특정값과 현재가와 비교는 불가능합니다.
해당 타입들은 일반적으로
if조건 만족하고 다음봉에서 한번더 특정가격조건을 충족하는지 보고 신호를 발생하기 위함입니다.
#봉완성시 조건이 만족하면
#해당봉의 고가+0.1가격을 셋팅하고
#다음봉에서 셋팅된 가격 이상의 시세가 발생하면 즉시 진입
if 조건 then
buy("b",atstop,H+0.1);
봉완성시에 if조건이 만족하면
특정가격(atstop뒤에 지정한 가격)을 셋팅하고
다음봉에서 지정한 가격이상이나 이하의 시세가 발생하면 즉시 신호가 발생하는 타입입니다.
4
if H-O >= 1 Then
ExitLong();
if문은 봉완성시이므로 위와 같이 작성하면 봉미완성시 발생하지 않습니다.
하지만 해당 청산내용은 atlimit 신호타입으로 처리할수 있습니다.
아래와 atlimit을 이용해 작성해 주시면 됩니다.
#봉완성시 매수조건 만족하면
if MarketPosition <= 0 and C >= MA(C,5) and C-0 >= 0.3 THEN
{
#매수
BUY();
#다음봉시세가 다음봉시가+1포인트까지 상승하면 즉시 청산
ExitLong("bx1",AtLimit,NextBarOpen+1);
}
#봉완성시 매수포지션이면
if MarketPosition == 1 Then
{
if C < MA(C,5) AND C<0 Then
ExitLong();
#다음봉이 다음봉시가+1포인트 까지 상승하면 즉시 청산
ExitLong("bx1",AtLimit,NextBarOpen+1);
}
시가대비 1포인트 상승을
bx1과 bx2로 처리한 이유는 if문이 봉완성시 이기 떄문입니다.
진입이 onclose타입이므로 진입신호가 표시된 봉 다음봉이 완성이 되어야
if marketposition == 1then 조건이 만족되므로
bx1 청사이 없으면 진입봉 다음봉에서 신호가 발생하지 못합니다.
그래서 진입신호와 함께 다음봉 체크하는 bx1식을 만들고
다음봉 완성후 부터는 bx2로 체크하게 만든식입니다.
atstop,atlimit은 지정한 하나의 가격과 현재가와 비교만 가능하고
2개이상 가격을 감시하지는 못합니다.
그러므로 C < MA(C,5) AND C<0와 같은 조건은 if문으로만 조건체크 가능합니다.
5
atstop과 atlimit은
신호함수에 따라 바라보는 방향이 다릅니다.
atstop은
buy,exitshort함수에서는 지정한 값 이상의 현재가 발생
sell,exitlong함수에서는 지정한 값 이하의 현재가 발생
atlimit은
buy,exitshort함수에서는 지정한 값 이하의 현재가 발생
sell,exitlong함수에서는 지정한 값 이상의 현재가 발생
즐거운 하루되세요
> 분당고래 님이 쓴 글입니다.
> 제목 : atstop과 atlimit 관련
> 안녕하세요~ 이해가 잘 안가는 부분이 있어서 다시 글 남깁니다~
(작성해주신 글)===================================
수식은 봉완성이 기본체계입니다.
봉완성시 if조건을 체크하고 실행문을 수행합니다.
예스랭귀지에는 신호타입이 4가지 제공됩니다.
onclose,atmarket,atstop,atlimit
신호가 onclose나 atmarket으로 지정되어 있으면
ir조건이 만족하는 봉완성시 신호입니다.
봉완성은 다음봉시가수신될때이고
onclose는 완성봉의 종가에,
atmarket은 다음봉시가에 신호를 표시하고
해당값을 리포트의 진입청산가격으로 사용합니다.
atstop과 atlimit은
봉완성시 if조건을 만족하면 값을 셋팅하고 다음봉에서 셋팅된 가격을 이용한 추가 조건이 만족하면 즉시 신호가 발생합니다.
올리신 그림으로 보면 작성하신 식은 모두 onclose타입인것 같고
종가에 신호가 표시되는 것이 맞습니다
===========================================================================
추가 질문입니다.
if문이 현재 봉의 완성 기준이라고 말씀해 주셨는데, 5분봉을 기준으로 잡는다고 치면. 09:05에 2번째 봉이 생겨서 5분동안 움직이다가 09:10에 3번째 5분봉이 생기겠죠?
그럼 만약 제가 if문으로 5일선 위에 주가가 있고, 캔들의 크기가 0.3P 이상이면 매수라는 아래의 수식을 사용한다고 가정해 보겠습니다.
if C >= MA(C,5) and C-0 >= 0.3 THEN
BUY()
1. 09:05에 형성된 캔들이 5일선 위에 있고, 해당 캔들의 상승이 0.3P 이상이면 조건에 해당되는데요. 이때 09:05분에 캔들 2번째 봉이 시가를 만들고나서 상승할때 조건을 만족하는 순간에 매수주문이 바로 나가는게 아니고, 봉완성의 기준이 다음봉 시가니까. 조건을 충족해도 다음봉이 나올때까지 주문이 안나간다는 말씀인가요??
그럼 09:05분에 강한 상승이 나와서 형성된 2번째 캔들이 1.5P까지 고가를 만들고 다음봉 시가가 고가에서 형성될텐데 이때 주문이 나가면 1.2P 손해를 보게 되는 완전 후행 아닌가요? ㅠㅠ
2. atstop과 atlimit은
봉완성시 if조건을 만족하면 값을 셋팅하고 다음봉에서 셋팅된 가격을 이용한 추가 조건이 만족하면 즉시 신호가 발생합니다.
이렇게 써주셨는데 그럼 ATSTOP과 ATLIMIT을 쓰면 신호 발생 즉시 주문이 나간다는 말씀인가요? 위에 봉완성의 기준이 다음봉 시가라고 하셔서 헷갈리네요..
3. if C >= MA(C,5) and C-0 >= 0.3 THEN
BUY()
이 조건을 만족하는 순간 주문이 나가게 하는게 atstop과 atlimit을 사용하면 될 경우, 어떻게 수정해 주어야 하는지요?
4. 글을 몇개 보다 보니 이렇게 답변을 해주신 걸 찾았는데요
================================================
일반청산함수로 진입 후 다음봉에서도 청산을 하고자 하시면
진입과 동시에 청산도 같이 셋팅이 되게 해야 하는데
진입신호가 onclose나 atmarket으로 신호타입일때만 가능합니다.
진입이 atstop이나 atlimit이면 봉미완성시에 신호가 발생해서 진입가를 알수가 없습니다.
if C >= MA(C,5) and C-0 >= 0.3 THEN
BUY()
위의 식으로 시장가 매수 진입하고나서
if MarketPosition == 1 Then
{
if C < MA(C,5) AND C<0 Then
ExitLong();
if H-O >= 1 Then
ExitLong();
}
이렇게 설정할 경우 두번째에 있는 고가 - 시가 >= 1P 인 경우는 주문이 안나간다는 말씀이신건가요? 그럼 이럴 경우 함수나 다른 방식으론 구현이 불가능하고, 시스템 적용할때 나타나는 창에서 목표가 설정으로만 가능한거지요~?