커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7530
글번호 230811
답변완료
부탁드립니다
__________________________________________________
if MarketPosition == 1 and (stime == 115800 or stime == 035800) Then
exitlong();
if MarketPosition == -1 and (stime == 115800 or stime == 035800) Then
ExitShort();
______________________________________________________
위의 식을 틱차트에 적용해서 하니 지정된시간에 청산신호가 안나옵니다,,,,
저는 틱차트를 사용하니 그냥 장 마지막봉에 무조건 청산신호가 나오도록
부탁드립니다
저녁12시 마지막봉/새벽5시마지막봉
한가지더 질문드립니다,,,
수렴지표를 구한는데 어떠한것이 있을런지요
한가지 추천 부탁드립니다
2013-10-11
239
글번호 68326
답변완료
부탁드립니다.
안녕하세요..
수식을 처음부터 배울려고 하니 정신이 하나도 없고
속이 울렁거리네요..
죄송하지만 부탁드립니다..
Typical pric(가격지표) 를 기준으로
Typical pric 선이 5분 이평선 돌파 시 매수진입 ,, 이탈시 매수청산
매수청산후 같은 위치에서 매도진입은 금지하고 위 조건충족시 다음봉에서 매도 진입..
Typical pric 선이 5분 이평선 이탈 시 매도진입,,, 돌파시 매도청산
매수청산후 같은 위치에서 매수진입은 금지하고 위 조건충족시 다음봉에서 매수 진입..계약은 1계약이며...14시 30분 이후에는 신규매매는 금하고 조건 충족시까지 유지후
15시에 최종청산한다..
수식이 가능할런지요..
뼈대만이라도 만들었으면 감사하겠습니다..
행복한 나날되세요..
2013-10-10
201
글번호 68325
답변완료
수식문의 드립니다.
기존 수식 수정 바랍니다.
[기존수식]
input : BBP(20),dv(2),CCI18(18),CCIP(9),af(0.02), maxAF(0.2);
var : BBup(0),BBdn(0),CCIV18(0),CCiv(0),Sarv(0);
BBup = BollBandUp(BBP,dv);
BBdn = BollBandDown(BBp,Dv);
CCIV18 = CCI(CCI18);
CCiv = CCI(CCIP);
Sarv = sar(af,maxAF);
if C > O and H > BBdn and BBdn > L and CCIV18 <= -100 Then
var1 = 1;
if var1 == 1 and CrossDown(CCIV,-100) Then
var1 = 2;
if var1 == 2 and CrossUp(c,sarv) Then{
var1 = 3;
Buy();
}
if C < O and H > BBup and BBUp> L and CCIV18 >= 100 Then
var1 = -1;
if var1 == -1 and crossup(CCIV,100) Then
var1 = -2;
if var1 == -2 and CrossDown(c,sarv) Then{
var1 = -3;
sell();
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
var1 = 0;
[수정내용]
1. 봉 차트상 분별 최적화가 가능하도록 수정바랍니다.(변수설정) 1분부터 200분까지(단위:1분)
cci18 +100/-100 수치를 최적화가 가능하도록 수정바랍니다.
+100은 +50부터 +200까지(단위:1)
-100은 -50부터 -200까지(단위:1)
2. 볼린저밴드에 상단선/하단선에 음봉(매수시)/ 양봉(매도시)이 몸통만 걸치는 것만 적용되도록 수정바랍니다.
현재, 몸통말고 꼬리만 걸치는 경우도 적용이 되어있습니다.
3. 분봉(양봉이든 음봉이든)에서 cci 과매도/ 과매수가 발생한후 파라볼릭 매수/매도가 동시에 발생을 하는 경우는 매수/매도진입이 현재 적용이 되고 있지 않습니다.
(같은분봉에서/봉완성시)
동시에 발생을 할경우에도 진입신호가 발생할수 있도록 수정바랍니다.
4. 최종 매수/매도 진입 신호가 발생한후
a. 매수신호 발생후 볼린전 밴드 하단선에 음봉의 몸통또는 꼬리 둘중 하나라도 걸리는 경우 바로 청산
b. 매도신호 발생후 볼린전 밴드 상단선에 양봉의 몸통또는 꼬리 둘중 하나라도 걸리는 경우 바로 청산
*** 단, 진입과 반대방향으로 움직일때(손실중일때)만 청산되도록 수정바랍니다.
따라서, 수익발생시는 그대로 두시면 됩니다.
ex) 매수진입시 손실발생중 --> 조건해당(a.경우) --> 청산
매도진입시 손실발생중 --> 조건해당(b.경우) --> 청산
5. 강제청산에서 손절매와 목표수익을 변수로 설정해주세요(단위:0.00001pt)
변수 설정이 가능하다면 1번 내용과 같이 손절매와 목표수익이 최적화가
가능하도록 수정바랍니다.
많은 도움을 주셔서 정말 감사합니다
그럼 수고하세요^^
2013-10-11
191
글번호 68324
답변완료
재문의
32827번 답변 감사드립니다.
다만,, 질문은 9시 1분 종가값과 시가를 비교하고자 했는데
답변은 첫봉 종가와 시가를 비교하는 수식이더군요.
그래서 챠트 설정 시간에 따라서 종가값이 달라지는 문제가 생깁니다.
챠트의 설정된 시간과 상관없이 9시 1분 종가값(시간을 조절하면 2분, 3분등등..)
을 기준으로 하고자 하는데 불가능한가요 ?
가능토록 수식 수정 부탁드립니다.
2013-10-10
168
글번호 68323
답변완료
문의드립니다
항상 빠르고 친절한 답변 감사합니다
1)
date2~99 에 수식의모든값과 계산식을 데이터 번호로 쒸우면 된다고 하셨는데
초보라서 잘몰라서 다시 여쭈어봅니다
예를들어서 이평의교차시점을 date2 에 만들거나 콜과풋의 교차시점 만들어서 그
결과를 date1 에 시스템으로 나타내고 싶은데 잘되지 않읍니다
2)
date2 에서 제가 정한시점에 매수 매도 신호가 나올수 있도록 부탁드립니다
감사합니다
2013-10-10
160
글번호 68322
답변완료
다시 문의 드립니다.
안녕하세요
예스스탁입니다.
문의하신 내용 어떻게 수식을 작성해야할지 잘 모르겠습니다.
도움을 드리지 못해 죄송합니다.
> 1. adx지표에서 +di가 지표값 23이 되기 위해서 현재가가 가져야 하는 값을 나타내는 지표
2. adx지표에서 -di가 지표값 23이 되기 위해서 현재가가 가져야 하는 값을 나타내는 지표
제 실력으로는 도저히 만들수가 없네요...
1번의 경우 adx 지표를 설정하면 +di값이 지표란에 출력이 됩니다.
즉 제가 구현하고자 하는 것은 +di의 값이 23이 되려면 현재가가 얼마인지 나타내고자 하는 겁니다.
2번은 -di에 대한 같읁 내용이구요
2013-10-10
162
글번호 68321
답변완료
한 가지 더 부탁드립니다. 감사합니다.
*현물 분봉 사용합니다. 감사합니다.
<매수조건 공통>
-시초가는 전일종가 대비 +4~-2%이고,
-당일 시초가 대비 +2%이상 상승하지 않아야 하고,
-전일 총 거래량 대비 매수시점 거래량이 20% 이하이고,
<매수>
-09:08시~09:10시 : 전일종가대비 3.5% 하락시 매수
-09:18시~09:20시 : 전일종가대비 3.3% 하락시 매수
-09:28시~09:30시 : 전일종가대비 3.1% 하락시 매수
<청산>
-매수가 대비 +5%상승시, 첫봉에 청산
-매수가 대비 -4.5% 하락시, 첫봉에 청산
-09:40시~09:42시 : 당일 매수가 대비 +4% 이상시 첫봉에 청산
-09:50시~09:52시 : 당일 매수가 대비 +3.5% 이상시 첫봉에 청산
-09:55시에 전일 총 거래량대비 금일 거래량이 40% 이상이면, 첫봉에 청산
-11:00시 이후 첫봉에 청산
2013-10-10
144
글번호 68320
답변완료
청산 추가 부탁드립니다.
아래식에 추가 부탁드립니다. 감사합니다.
<매수 당일 청산>
-5일(일봉)이평선 이격도 100.1 미만이면, 첫봉에 청산
-매수가 대비 4.5% 상승하면, 첫봉에 청산
<매수 +1일에 청산>
-09:08시~09:10시까지 : 전일종가 대비 5%이상시, 첫봉에 청산
-09:18시~09:20시까지 : 전일종가 대비 4%이상시, 첫봉에 청산
-09:28시~09:30시까지 : 전일종가 대비 3%이상시, 첫봉에 청산
-09:38시~09:40시까지 : 전일종가 대비 2%이상시, 첫봉에 청산
-매수가 대비 10%상승시, 첫봉에 청산
-전일 종가대비 8% 상승시, 첫봉에 청산
-09:55시 이후 첫봉에 청산
-------------------------------------------------------------------
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;
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 date != date[1] Then{
Daycnt = daycnt+1;
var1 = dayopen/mav*100;
}
if dayopen <= DayClose(1)*1.01 and
dayhigh <= dayopen*1.04 and
dis1 >= 103 and
ExitDate(1) != sdate and
DayVolume < PredayVol*1 and
var1 > 100 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 < 104.5 Then
buy("b7",AtMarket);
}
2013-10-11
179
글번호 68319
답변완료
수정부탁해요
자꾸 문의드려서 죄송요
생각했던것같이 안되네요
1.이평선을 빼주세요
2.특정시간대에만 매수가능하게만들어주세요 아침 9시부터~9시30분까지 매수신호가 나오게 해주세요 나머지시간에는 매수신호는 안나오게해주세요
3.아침시가가 플러스로시작되경우 매수하게 해주세요 에을들어 어제종가 1000원 오늘1100원이 되어햐 해요 시가출발이 990원으로 출발할경우 매수금지요
4.12프로이상시 매수금지로 되어있는데요 이것도 삭제해주세요
수고하세요
input : 투입금액(100000),P(20);
var : ma1(0),ma2(0),ma3(0),ma4(0),cond(false);
ma1 = ma(c,5);
ma2 = ma(c,20);
ma3 = ma(c,60);
ma4 = ma(c,240);
cond = ma1 > ma2 and ma2 > ma3 and ma3 > ma4;
if CodeCategory == 1 Then{ #코스피
if BasePrice < 50000 Then
Var1 = int(int(투입금액/C)/10)*10;
Else
Var1 = int(투입금액/C);
}
if CodeCategory == 2 Then#코스닥
Var1 = int(투입금액/C);
if CodeCategory == 6 Then#옵션
Var1 = int(투입금액/(C*BigPointValue));
If V >50000 and Upvol/DownVol*100 >=150 and c < DayClose(1)*1.12 and C > O and C > ma2 and cond == true Then{
if MarketPosition == 0 or (MarketPosition == 1 and C <= EntryPrice*0.95) Then
buy("매수",onclose,def,var1);
}
if CodeCategory == 1 Then{
if BasePrice < 50000 Then
value1 = int(int(투입금액/C)/10)*10;
Else
value1 = int(투입금액/C);
}
if CodeCategory == 2 or CodeCategory == 8 Then
value1 = int(투입금액/C);
if MarketPosition == 0 and ExitDate(1) != sdate and C < DayClose(1)*1.12 and C > O and C > ma2 and cond == true Then
buy("매수2",OnClose,def,value1) ;
if MarketPosition == 1 Then{
if BarsSinceEntry >= 1 Then
ExitLong("손절",AtStop,L[BarsSinceEntry-1]-PriceScale);
}
value1 = ema(C, 1);
value2 = ema(C, 5);
# 매도/매수청산
If CrossDown(value1, value2) and C > EntryPrice Then
{
Sell();
}
2013-10-10
159
글번호 68308