커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6180
글번호 230811
이심전심 님에 의해서 삭제되었습니다.
2018-02-06
0
글번호 116342
답변완료
질문입니다.
선물에서 거래를 분봉에서 진행하려고 합니다.
예를들어
if crossup(c, ma(5)) then {buy("B", atmarket, def, 1); }
if crossdown(c, ma(10)) then { sell("S", atmarket, def, 1); }
이라는 수식이 있다고 가정했을때,
이 시스템에 피라미딩을 쌓으려고 합니다.
피라미딩 로직은 다음과 같습니다.
매수진입 후 다음봉의 open가격이 최초매수진입가격보다 높다면 추가로 1계약진입합니다.
그 다음봉의 open가격이 추가로 진입한 1계약 가격보다 높다면 다시 1계약 더 진입합니다.
이렇게 진입을 매도 시그널이 나올때까지 계속 진행합니다.
매도진입도 마찬가지입니다.
매도진입 후 다음봉의 open가격이 최초매도진입가격보다 낮다면 추가로 1계약진입하고,
그 다음봉의 open가격이 추가로 진입한 1계약의 가격보다 낮다면 다시 1계약을 진입합니다.
단, 매수피라미딩을 쌓다가 매도진입시그널이 발생한 봉에서는
매도진입만 발생시키고 싶습니다.
즉, 매수피라미딩 진입과 신호가 겹치게 나오게 하고 싶지 않습니다.
예시로든 위 시스템을 예로들자면,
매수시그널이 나온후 피라미딩을 쌓다가,
매도시그널이 나오는 봉이 있다면,
이 매도봉에서는 매도시그널만 발생시키고, 매수피라미딩 시그널은 발생시키지 않게 하는 것입니다.
간단히 설명하자면,
매수시그널 후 봉이 진행됨에 따라 직전진입가격보다 open가격이 높다면,
몇계약이든 1계약씩 추가로 진입합니다.
매도시그널이 나오기 전까지 말이죠.
마찬가지로 매도시그널 후 봉이 진행됨에 따라 직전진입가격보다 open가격이 낮다면,
몇계약이든 1계약씩 추가로 진입합니다. 역시 매수시그널이 나오기전까지 말이죠.
그리고 매수시그널이나 매도시그널이 발생한 봉에서는 피라미딩진입이 발생하지 않게 하고 싶습니다.
예시로 부탁드립니다.
감사합니다.
2018-02-06
187
글번호 116340
답변완료
문의드립니다.
input : period(20);
var1 = ma(Volume,period);
plot1(round(var1/1000000,1),"거래량");
틀린게 있나요?? 왜 지표가 나타나지 않는지 모르겠습니다.
2018-02-05
174
글번호 116339
답변완료
수식 문의합니다.
매수/매도 진입 후
청산수식 바랍니다.
- 매수일때
1. 매수가 < 당일시가 < 전일 중심선 중심선 청산
매수가 < 전일 중심선 < 당일 시가 당일시가 청산
전일 중심선 < 매수가 < 당일 시가 당일 시가 청산
당일 시가 < 매수가 < 전일 중심선 전일 중심선 청산
- 매도일때
1. 매도가 > 당일시가 > 전일 중심선 중심선 청산
매도가 > 전일 중심선 > 당일 시가 당일시가 청산
전일 중심선 > 매도가 > 당일 시가 당일 시가 청산
당일 시가 > 매도가 > 전일 중심선 전일 중심선 청산
2018-02-05
175
글번호 116338
답변완료
감사합니다 수정부탁드립니다
1,3분봉에서 120일이평 우하양이면 검색 제외 시켜 주세요
당일 장시작 부터 또는 전날 120일 이평이 우 하양 이면 제외 부탁
2, 현재가 1000원 이하 짜리는 검색에서 제외 시켜주세요
3, 부족한 점이 많아서 자주 문의드려도 이해 부탁드립니다
input : P1(33),P2(42),P3(52),P4(120);
input : Per(5);
input : 단기(5),장기(60);
var : 매수가(0),매도가(0),단기이평(0),장기이평(0);
var1 = wma(C,P1);
var2 = wma(C,P2);
var3 = wma(C,P3);
var4 = wma(C,P4);
단기이평 = ma(C,단기);
장기이평 = ma(C,장기);
if crossup(단기이평,장기이평) Then
매수가 = C;
if CrossDown(단기이평,장기이평) Then
매도가 = C;
if max(var1,var2,var3) <= min(var1,var2,var3)*(1+per/100) and
C > var4 and
min(var1,var2,var3) > 매수가 and
매수가 > 매도가 and 매수가 <= 매수가*(1+Per/100) Then
find(1);
2018-02-05
180
글번호 116337
답변완료
문의 드립니다
안녕 하세요.
매번 도움 주셔서 고개 숙여 감사 드립니다.^^
매수나 매도 진입식은 되있으므로 청산 수식만을 부탁을 드립니다.^^
1.매수 진입후 종가기준 현재의가격이 단순이동평균 20 이평선을 하락 돌파하면 청산
매도 진입후 종가기준 현재의 가격이 단순이동평균 20이평선을 상승돌파하면 청산
2.매수진입후 종가기준 현재의 가격이 일목균형표 기준선이 하락하면 청산
매도진입후 종가기준 현재의 가격이 일목 균형표 기준선이 상승하면 청산
2018-02-05
170
글번호 116336
답변완료
수식 문의 드립니다.
안녕하세요 수식 문의 드립니다.
60분봉 기준으로
60분봉이 볼린저밴드 상향 돌파 마감시 직전가격으로 매도진입 20일이평선 터치시 시장가 매수청산
60분봉이 볼린저밴드 하향 돌파 마감시 직전가격으로 매수진입 20일이평선 터치시 시장가 매도청산
즐거운 하루 보내세요.
2018-02-05
187
글번호 116333
답변완료
문의 드립니다
(1)
- 전저점 : 신호발생 이후 현재까지 가장 낮은 가격
- 전고점 : 신호발생 이후 현재까지 가장 높은 가격
- 지지선 : 그래프에서 주가 파동의 저점과 저점을 연결한 직선을 말한다
- 저항선 : 그래프에서 주가 파동의 고점과 고점을 연결한 직선을 말한다
1.1. 매수진입 : 전저점+50틱(b) 도달시
1.2. 매수1차청산 : 매수후 40틱 상승시 1/2청산
1.3. 매수2차청산 : 매수후 60틱 상승시 잔여량 전부 청산
1.4. 매수손절 : 진입후 최고점(신호발생 이후 이므로 전고점) 도달후 -50틱 하락하면 잔여량 전량 청산
2.1. 매도진입 : 전고점-50틱(s) 도달시
2.2. 매도1차청산 : 매도후 40틱 하락시 1/2청산
3.3. 매도2차청산 : 매도후 60틱 하락시 잔여량 전부 청산
4.4. 매도손절 : 진입후 최저점(신호발생 이후 이므로 전저점) 도달후 +50틱 상승하면 잔여량 전량 청산
------------------------------------------------------------------------------
(2)
- envelope (10, 0.65)
- 20 이평
- 파라볼릭 (0.02, 0.12)
- 전저점 : 신호발생 이후 현재까지 가장 낮은 가격
- 전고점 : 신호발생 이후 현재까지 가장 높은 가격
- 지지선 : 그래프에서 주가 파동의 저점과 저점을 연결한 직선을 말한다
- 저항선 : 그래프에서 주가 파동의 고점과 고점을 연결한 직선을 말한다
1.1. 매수진입 : 전저점+50틱(b) 도달시
- 전저점이 지지선 위에 있는 경우, 파라볼릭 터치후 b에서 매수 (b가 저항선 위 파라볼릭 아래에 위치하고 있을때)
- 전저점이 지지선 위에 있는 경우, 저항선 터치후 b에서 매수 (b가 20이평위 저항선 아래 위치하고 있을때)
- 전저점이 지지선 아래에 있는 경우, 저항선 터치후 b에서 매수 (b가 파라볼릭위 저항선아래에 위치하고 있을때)
- 전저점이 지지선 아래에 있는 경우, 파라볼릭 터치후 b에서 매수 (b가 20이평위 파라볼릭아래에 위치하고 있을때)
- 전저점이 지지선 아래에 있는 경우, 20이평터치후 b에서 매수 (b가 지지선위 20이평 아래에 위치하고 있을때)
1.2. 특별매수진입 : 전저점+50틱(b)가 지지선 아래인 경우 지지선에서 매수
전저점+50틱(b)가 저항선 위에 위치한 경우 b터치후 저항선에서 매수
1.3. 매수1차청산 : 매수후 40틱 상승시 1/2청산
1.4. 매수2차청산 : 매수후 60틱 상승시 잔여량 전부 청산
1.5. 매수손절 : 진입후 최고점(신호발생 이후 이므로 전고점) 도달후 -50틱 하락하면 잔여량 전량 청산
2.1. 매도진입 : 전고점-50틱(s) 도달시
- 전고점이 저항선 아래에 있는 경우, 파라볼릭 터치후 s에서 매도 (s가 지지선위 파라볼릭 아래에 위치하고 있을때)
- 전고점이 저항선 아래에 있는 경우, 지지선 터치후 s에서 매도 (s가 20이평 아래 지지선 위에 위치하고있을때)
- 전고점이 저항선 위에 있는 경우, 지지선 터치후 s에서 매도 (s가 지지선위 파라볼릭아래에 위치하고 있을때)
- 전고점이 저항선 위에 있는 경우, 파라볼릭 터치후 s에서 매도 (s가 20이평아래 파라볼릭위에 위치하고 있을때)
- 전고점이 저항선 위에 있는 경우, 20이평터치후 s에서 매도 (s가 저항선아래 20이평 위에위치하고 있을때)
2.2. 특별매도진입 : 전고점-50틱(s)가 저항선 위인 경우 저항선에서 매도
전고점-50틱(s)가 지지선 아래인 경우 s터치후 지지선에서 매도
2.3. 매도1차청산 : 매도후 40틱 하락시 1/2청산
2.4. 매도2차청산 : 매도후 60틱 하락시 잔여량 전부 청산
2.5. 매도손절 : 진입후 최저점(신호발생 이후 이므로 전저점) 도달후 +50틱 상승하면 잔여량 전량 청산
------------------------------------------------------------------------------
(3)
아래의 수식에 1차 청산은 40틱에 2차 청산은 60틱에 청산되게 수식 변경을 부탁 드립니다
Infut : pAF(0.02), pAFMAX(0.12);
Var : value(0);
value = sar(paf,pAFMAX);
If crossup(C,value) Then
{
Buy();
}
If CrossDown(C,value) Then
{
Sell();
}
SetStopProfittarget(PriceScale*40,PointStop);
------------------------------------------------------------------------------
(4)
- A:100분봉 캔들 500개
- B:100분봉 캔들 1,000개
A의 30분선이 B의 30분선을 돌파시 매수
A의 30분선이 B의 30분선을 이탈시 매도 하여
1차 40틱에 청산,2차 80틱에 청산 하는 수식을 부탁 드립니다
------------------------------------------------------------------------------
(5)
- A:100분봉 캔들 500개
- B:100분봉 캔들 1,000개
A의 30분선이 B의 30분선을 돌파시 매수
A의 30분선이 B의 30분선을 이탈시 매도 하는 수식을 부탁 드립니다
------------------------------------------------------------------------------
(6)
아래의 수식에서
1차청산=30틱
2차청산=40틱
3차청산은 신호가 바뀔때(반대의 신호시 완청)로 만들어 주세요
Input : Period(14);
Var : value(0);
value = LRL(C, Period);
# 매수/매도청산
If CrossUP(C, value) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(C, value) Then
{
Sell();
}
------------------------------------------------------------------------------
(7)
아래의 수식에서
1차청산=30틱
2차청산=40틱
Input : Period(14);
Var : value(0);
value = LRL(C, Period);
# 매수/매도청산
If CrossUP(C, value) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(C, value) Then
{
Sell();
}
------------------------------------------------------------------------------
(8)
아래의 수식에서
1차청산=30틱
2차청산=2차청산은 신호가 바뀔때(반대의 신호시 완청)로 만들어 주세요
Input : Period(14);
Var : value(0);
value = LRL(C, Period);
# 매수/매도청산
If CrossUP(C, value) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(C, value) Then
{
Sell();
}
------------------------------------------------------------------------------
(9)
- 전저점 : 신호발생 이후 현재까지 가장 낮은 가격
- 전고점 : 신호발생 이후 현재까지 가장 높은 가격
- 지지선 : 그래프에서 주가 파동의 저점과 저점을 연결한 직선을 말한다
- 저항선 : 그래프에서 주가 파동의 고점과 고점을 연결한 직선을 말한다
1.1. 매수진입 : 전저점+50틱(b) 도달시
1.2. 매수1차청산 : 매수후 40틱 상승시 1/2청산
1.3. 매수2차청산 : 매수후 최고점에서 20틱 하락시 잔여량 전부 청산
1.4. 매수손절 : 진입후 최고점(신호발생 이후 이므로 전고점) 도달후 -50틱 하락하면 잔여량 전량 청산
2.1. 매도진입 : 전고점-50틱(s) 도달시
2.2. 매도1차청산 : 매도후 40틱 하락시 1/2청산
3.3. 매도2차청산 : 매도후 최저점에서 20틱 상승시 잔여량 전부 청산
4.4. 매도손절 : 진입후 최저점(신호발생 이후 이므로 전저점) 도달후 +50틱 상승하면 잔여량 전량 청산
------------------------------------------------------------------------------
(10)
아래의 수식에 1차 청산은 40틱에,2차 청산은 최고점을 찍고 20틱 하락에 매수 청산,최저점을 찍고 20틱 상승에 매도 청산되게 수식 변경을 부탁 드립니다
Infut : pAF(0.02), pAFMAX(0.12);
Var : value(0);
value = sar(paf,pAFMAX);
If crossup(C,value) Then
{
Buy();
}
If CrossDown(C,value) Then
{
Sell();
}
SetStopProfittarget(PriceScale*40,PointStop);
2018-02-06
192
글번호 116331
답변완료
문의드립니다.
수고가 많으십니다.
신호가 의도대로 되기는 하는데....
문제는 시간지정을 해서 1시부터05시까지 설정을 했을때
설정 시점부터 저점, 고점을 갱신했을때만 조건에 맞게 신호 발생되게 하고 싶습니다.
현재로직으로는 시간 지정 추가해서 해보니....시간지정 이전에 당일저점과 고점이 갱신되었던 이력이 있을시 시간범위안에서는 저점 고점 갱신이 없었는데도 이전 갱신 이력때문에 조건범위에 들어오면 신호가 발생됩니다.
즉, 1시부터 신호가 발생되도록 하되...1시 부터 고점 갱신 저점 갱신이 없으면 조건범위에 와도 신호발생되지 않고....1시 이후 새롭게 고점과 저점 갱신이 발생되었을때만 조건범위에 오면 신호가 발생되도록 부탁드립니다.
//////////////////////////////
₩안녕하세요
예스스탁입니다.
Var : Bcond1(False), Scond1(False), TT(0), HH(0), LL(0);
TT = TotalTrades;
HH = dayhigh(0);
LL = daylow(0);
If bdate != bdate[1] Then {
Bcond1 = False;
scond1 = False;
}
else{
If HH > HH[1] Then
Bcond1 = true;
If LL < LL[1] Then
Scond1 = true;
}
if TT <> TT[1] Then{
Bcond1 = False;
Scond1 = False;
}
If Bcond1 = true Then {
If 조건 Then
Buy("1차매수");
If MarketPosition == 1 And MaxEntries == 1 and 조건2 Then
Buy("2차매수");
}
If Scond1 = true Then {
If 조건 Then
Sell("1차매도");
If marketPosition == -1 And MaxEntries == 1 and 조건2 Then
sell("2차매도");
}
2018-02-05
182
글번호 116330