커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7539
글번호 230811
답변완료
수식 부탁합니다
오류내용 확인해주세요
답변기다리다 하루 다갔네요 ㅠㅠ
2013-09-13
183
글번호 67536
답변완료
초보 입니다^^
안녕하세 수고 많으십니다.^^
시스템식인데요 부탁드립니다.
1. 가) priec < 250 매수진입 priec > 251 청산
나) priec < 251 매수진입 priec > 252 청산
다) priec < 252 매수진입 priec > 253 청산
라) priec < 253 매수진입 priec > 254 청산
마) priec < 254 매수진입 priec > 255 청산
예“ 봉미완성 진입 및 청산입니다.
현재 가격이 249.05 라면 순차적으로 총5계약이 진입 됬을 것입니다
만약 가격이 252.05 올라왔다면 2계약이 순차적으로 청산되고 3계약이 남아 있고
다시 가격이 250.95 가격이 내려 왔다면 1계약 추가 진입되어 청산안된 4계약이
남을 것입니다.
위 와 같은 시스템식을 만들려합니다.
2. 진입할 잔고가 15,000,000원 보다 적다면 진입이 않되게 하는 표현입니다.
(진입 할 때는 만약 잔고가 부족하여 실제 매수진입은 없는데, 다른 곳에서 청산이 되어
잔고가 생겨 청산때 매도진입이되어 반대로 시스템이 돌아갈까 우려되서입니다.)
수고하시고 즐거운 추석 보내세요^^
2013-09-13
199
글번호 67531
답변완료
수식 부탁드립니다.
1분봉에서
거래량이 2000 개 이상이면서, 이평 5, 20 이 정방향 일때 매수,
10, 50 이평이 역방향일때 청산.
거래량이 1500개 이상이면서 , 5, 10 이평이 역방향 일때 매도.
10, 60 이평이 정방향일때 청산.
시초가 진입가능,
수익이 나면 하루 한번 매매,
손실이 나면 수익날때까지 당일 4번까지 배수(1, 2, 4, 8)로 진입.
하루 손실 폭 -3p도달 시 강제 청산 및 이후 진입금지.
위 내용으로 수식 부탁드립니다.
감사합니다 ^^
2013-09-13
174
글번호 67530
답변완료
초보입니다
안녕하세요
정규장 데이시스템을 야간장에 그대로 적용할려고하는데 당일청산신호만 삭제하엿더니 전혀 야간장에는 신규진입이이루어지지않네요 .. 신호가 나오게 할려면 어떻게 설정해야 하나요?
정규장데이시스템내용입니다
If Date<>Date[1] then {
var1=0;
var2=c;
}
if crossup(c,dayopen+var1) then buy;
if crossdown(c,dayopen-var2) then sell ;
SetStopEndofday(145800);
정규장시간 오전9시-오후3시 , 야간장은 저녁9시부터 새벽2시30분에장마감입니다 ..
참고로상하이거래소 ag1312 종목입니다
정규장 시작시 시스템세팅해서 - 야간장 -정규장 돌릴려고합니다
수고해주세요
2013-09-13
189
글번호 67529
카카 님에 의해서 삭제되었습니다.
2013-09-12
29
글번호 67528
답변완료
수식부탁합니다..
선물 120틱 차트를 사용하고 있습니다...
선물 1틱 종가선차트를 겹쳐서 보고 싶은데...
어떻게 해야 하나요???
2013-09-12
171
글번호 67527
답변완료
질문드립니다.
var : upv(0),dnv(0),upsum(0),dnsum(0);
var1 = C - C[1];#전일대비값
if var1 > 0 Then{
value1 = 1;
UPv = abs(var1);#최근 상승시 전일대비값 - 절대값으로 저장
}
if var1 < 0 Then{
value1 = -1;
dnv = abs(var1); #최근 하락시 전일대비값 - 절대값으로 저장
}
#상승구간으로 전환
if value1 == 1 and value1 != 1 Then
upsum = 0;
if value1 == 1 Then{
#상승구간에서 전일대비값 절대값 누적
upsum = upsum+abs(var1);
#누적값이 최근하락구간의 마지막 전일대비값보다 크면 매수
if UPsum > dnv Then
buy();
}
#하락구간으로 전환
if value1 == 1 and value1 != 1 Then
dnsum = 0;
if value1 == -1 Then{
#하락구간에서 전일대비 절대값 누적
dnsum = dnsum+abs(var1);
#누적값이 최근상승구간의 마지막 전일대비값보다 크면 매도
if dnsum >= Upv Then
sell();
}
위식은 어제 제가 문의드렸던 답변인데요
위식은 if c>c[1] then buy();
if c<c[1] then sell(); 과 똑같은 결과가 나오는 것 같습니다.
제가 구현하고 싶은것은 전일대비 상승 또는 하락시 매수매도가 나오는게 아니라
전일대비 상승폭과 하락폭을 기준값으로 잡고 계속 종가값이 오르면 마지막상승일의 (오늘종가-전일종가)의 상승폭을 다음에 나올 봉이 하락시 하락폭이 상승폭을 넘어서면 매도 또는 매수값이 나오게 하는겁니다.
예) 1일 100
2일 102(전일대비 상승폭 +2) 기준값: +2
3일 105(전일대비 상승폭 +3) 기준값:+3
4일 101(전일대비 하락폭 -4) 기준값:-4 이전기준값의 +3의 절대값을 넘는 4의 하락폭이
나와서 매도신호 발생
5일 106(전일대비 상승폭 +5) 기준값:+5 이전기준값의 -4의 절대값을 넘는 5의 상승폭이
나와서 매수신호 발생
6일 107(전일대비 상승폭 +1) 기준값:+1
위의 예는 쉽게 말해서 종가값이 계속상승하면 마지막 상승폭을 기준값을 가지고 있다가
기준값의 절대값을 넘는 하락폭이 나오면 매도신호가 발생하는 겁니다.
위의 예에서 만일
마지막 상승폭이 +5가 나와서 기준값이 +5일때
예) 1일 100
2일 105 (상승폭+5) 기준값:+5
3일 103 (하락폭-3) 기준값은 여전히 +5
4일 100 (하락폭-3) 이틀연속하락하여 이틀연속하락값은 더하면 -6 이전기준값 +5를 넘는
하락폭이 나와서 매도신호발생 및 기준값은 마지막 하락폭 -3
위의 예에서
1일 100
2일 105 (상승폭 +5) 기준값 :+5
3일 103 (하락폭 -3) 기준값: +5
4일 102 (하락폭 -1) 기준값:+5 이틀연속하락하여 하락값은 더하더라도 -4이므로 기준값
+5보다 작으므로 기존 기준값 유지
5일 104 (상승폭 +2) 기준값:+2
이해가 힘드시죠? 아래에 종합주가 지수를 토대로 기준값 및 신호발생을 만들어보았습니다.
밑에서 부터 위로 보세요
날짜 종가 전일대비 기준값 연속상승,하락값을 더한값 매매신호
2013-08-29 1,907.54 ▲23.02 23.02
2013-08-28 1,884.52 ▼1.32 17.7
2013-08-27 1,885.84 ▼2.02 17.7
2013-08-26 1,887.86 ▲17.70 17.7
2013-08-23 1,870.16 ▲21.04 21.04 기준값 -18.34보다 큰 21.04의 상승폭이므로 매수신호발생
2013-08-22 1,849.12 ▼18.34 -18.34
2013-08-21 1,867.46 ▼20.39 -20.39
2013-08-20 1,887.85 ▼29.79 -29.79 -36.06 기준값 +10.88보다 3일연속하락폭의 합이 -36.06 하락폭이 더 크므로 매도신호발생
2013-08-19 1,917.64 ▼2.47 10.88 -6.27
2013-08-16 1,920.11 ▼3.80 10.88 -3.8
2013-08-14 1,923.91 ▲10.88 10.88
2013-08-13 1,913.03 ▲28.20 28.2
2013-08-12 1,884.83 ▲4.12 4.12 기준값 -3.26보다 큰 4.12의 상승폭이므로 매수신호발생
2013-08-09 1,880.71 ▼3.26 -3.26
2013-08-08 1,883.97 ▲5.64 -28.29
2013-08-07 1,878.33 ▼28.29 -28.29
2013-08-06 1,906.62 ▼9.60 -9.6
2013-08-05 1,916.22 ▼7.16 -7.16 기준값 +2.64보다 큰 -7.16의 하락폭이므로 매도신호발생
2013-08-02 1,923.38 ▲2.64 2.64
2013-08-01 1,920.74 ▲6.71 6.71
2013-07-31 1,914.03 ▼3.02 17.16
2013-07-30 1,917.05 ▲17.16 17.16 기준값 -10.92보다 큰 17.16의 상승폭이므로 매수신호발생
2013-07-29 1,899.89 ▼10.92 -10.92 기준값 +1.20보다 큰 -10.92의 하락폭이므로 매도신호발생
2013-07-26 1,910.81 ▲1.20 1.2
2013-07-25 1,909.61 ▼2.47 7.93
2013-07-24 1,912.08 ▲7.93 7.93
2013-07-23 1,904.15 ▲23.80 23.08
2013-07-22 1,880.35 ▲8.94 8.94 기준값-4.07보다 큰 8.94의 상승폭이므로 매수신호발생
2013-07-19 1,871.41 ▼4.07 -4.07
2013-07-18 1,875.48 ▼12.01 -12.01
2013-09-12
302
글번호 67526
답변완료
부탁드립니다
var1=int((c-dayopen)/1.5)*1.5+DayOpen;
if var1 > var1[1] Then
value1 = 1;
if var1 < var1[1] Then
value1 = -1;
if value1 == 1 Then
plot1(var1+1.5,"1",RED);
Else
plot1(var1-1.5,"1",BLUE);
위의 지표를 차트에 점으로 표시하여 사용하고 있습니다...
가격이 갱신될때 그전 가격이 선이나 점으로 계속 나타내어 지도록 하고 싶습니다...
만약 255에 점으로 표시되었다고 256으로 목표가 바뀌면 그전 255는 나타내어졌던
시간대에만 있고 갱신되어 버리면 갱신된 자리에 새로운 점으로 변경되어지는데
그전 255에 나타내어졌던 가격의 점이 계속 선이나 점으로 나타내어지도록 하고싶은데,,,,
가능한지,,,
부탁드립니다....
간단히 한번나타났던 가격은 계속 표시되도록 하고싶습니다....
감사합니다,,,
2013-09-12
192
글번호 67525
답변완료
한가지 추가 부탁드립니다.
아래 식에 청산을 추가해 주세요. 감사합니다.
-매수 후 다음날 부터, 시초가가 5일(일봉)이동평균선 이격도 98이상 100 미만이면, 100 이상이 될때, 다음 첫봉에 청산.
-매수 후 다음날 부터, 시초가가 5일(일봉)이동평균선 이격도 97이상 98 미만이면, 99.5 이상이 될때, 다음 첫봉에 청산.
-매수 후 다음날 부터, 시초가가 5일(일봉)이동평균선 이격도 97 미만이면, 99 이상이 될때, 다음 첫봉에 청산.
<한가지 여쭤볼께 있는데요, 시스템식에 거래량의 조건이 들어 있을때, 전략실행시 차트에 거래량 봉을 삭제해도 상관이 없나요?>
======================================
input : P(5);
var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),dis(0),dis1(0),daycnt(0),PredayVol(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
if date != date[1] Then
Daycnt = daycnt+1;
sum = 0;
sum1 = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
sum1 = sum1+DayClose(cnt+1);
}
mav = sum/P;
mav1 = sum1/P;
dis = c/mav*100;
dis1 = DayClose(1)/mav1*100;
for cnt = 1 to 1000 {
if stime == stime[cnt] and sdate != sdate[cnt] then{
PredayVol = DayVolume[cnt];
cnt = 1001;
}
}
if dayopen <= DayClose(1)*1.05 and
dayhigh <= dayopen*1.05 and
dis1 >= 103 and
ExitDate(1) != sdate and
DayVolume < PredayVol*1 Then{
if stime >= 90000 and stime < 100000 and dis >= 100.5 and dis < 101.5 Then
buy("b1",AtMarket);
if stime >= 100000 and stime < 110000 and dis >= 100.5 and dis < 102.0 Then
buy("b2",AtMarket);
if stime >= 110000 and stime < 120000 and dis >= 100.5 and dis < 102.5 Then
buy("b3",AtMarket);
if stime >= 120000 and stime < 130000 and dis >= 100.5 and dis < 103.0 Then
buy("b4",AtMarket);
if stime >= 130000 and stime < 140000 and dis >= 100.5 and dis < 103.5 Then
buy("b5",AtMarket);
if stime >= 140000 and stime < 144800 and dis >= 100.5 and dis < 104.0 Then
buy("b6",AtMarket);
if stime >= 143000 and stime < 144800 and c < Pivot and dis >= 100.5 and dis < 105.0 Then
buy("b7",AtMarket);
}
if MarketPosition == 1 Then{
if C >= EntryPrice*1.06 Then
exitlong("bx1",AtMarket);
if C <= EntryPrice*0.945 Then
exitlong("bx2",AtMarket);
if sdate == EntryDate and C >= EntryPrice*1.045 then
exitlong("bx3",AtMarket);
if sdate > EntryDate and daycnt == daycnt[BarsSinceEntry]+2 and stime >= 94000 Then
exitlong("bx4",AtMarket);
}
2013-09-13
164
글번호 67524