커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7529
글번호 230811
오라클 님에 의해서 삭제되었습니다.
2013-11-01
25
글번호 69144
답변완료
부탁드립니다.
아래 식을 만들어 주셨는데요...
한가지 수정 부탁드립니다.
적용을 해보니까요...
1분봉에서 매매하는데, 1분봉 기준으로 청산이 되어버리네요. 청산은 일봉기준입니다.
*청산은 일봉의 종가가 이평선(20,60) 이격 99.5미만이면, 다음봉(익일 첫봉이 됩니다.)에 청산합니다.
----------------------------------------------------------
1.
input : P(60);
var : cnt(0),sum(0),mav(0),dis(0);
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
mav = sum/P;
dis = C/mav*100;
if MarketPosition == 0 And
ExitDate(1) != sdate and
C < dayopen And
dis >= 100 and dis <= 102.5 Then
buy("b",AtMarket);
if MarketPosition == 1 Then{
if countif(dis < 99.5,2) == 2 Then
ExitLong("bx1",AtMarket);
if C >= EntryPrice*1.10 Then
ExitLong("bx2",AtMarket);
if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then
ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3);
}
2.
input : P(20);
var : cnt(0),sum(0),mav(0),dis(0);
sum = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
}
mav = sum/P;
dis = C/mav*100;
if MarketPosition == 0 And
ExitDate(1) != sdate and
C < dayopen And
dis >= 100 and dis <= 102.5 Then
buy("b",AtMarket);
if MarketPosition == 1 Then{
if dis < 99.5 Then
ExitLong("bx1",AtMarket);
if C >= EntryPrice*1.10 Then
ExitLong("bx2",AtMarket);
if highest(h,BarsSinceEntry) >= EntryPrice*1.05 Then
ExitLong("bx3",AtStop,highest(h,BarsSinceEntry)-(highest(h,BarsSinceEntry)-EntryPrice)*0.3);
}
> 현물, 분봉사용합니다. 2가지 부탁드립니다.
1번.
<매수>
-주가가 당일 시초가보다 이하이고(즉, 당일 음봉 중),
-60일(일봉) 이평선 이격도 100~102.5이면 다음 첫봉에 매수
-오늘 청산되었다면 매수 금지
<청산>
-일 종가가 60일(일봉) 이평선 이격도 99.5미만이 2회이면 다음 첫봉에 청산
-매수가대비 +10%이상 상승시 다음 첫봉에 청산
-매수가 대비 +5%이상 상승 후, 매수가와 최고상승가(+100%로 가정) 대비 +30%로 하락하면 청산
2번.
<매수>
-주가가 당일 시초가보다 이하이고(즉, 당일 음봉 중),
-20일(일봉) 이평선 이격도 100~102.5이면 다음 첫봉에 매수
-오늘 청산되었다면 매수 금지
<청산>
-일 종가가 20일(일봉) 이평선 이격도 99.5미만(1회)이면 다음 첫봉에 정산
-매수가 대비 10%이상 상승시 다음 첫봉에 청산
-매수가 대비 +5%이상 상승 후, 매수가와 최고상승가(+100%로 가정) 대비 +30%로 하락하면 청산
2013-11-01
165
글번호 69140
답변완료
문의드립니다
아래식수정을 부탁합니다
장시작후 var3의 절대값을기억하여 장중에 두배가되었을때 현재값에 표시
var3 = Abs(var1-var2);
if dayindex == 1 Then
value1 = var3;
if dayindex > 0 Then{
if var4 = Abs(var3 <= value1*2) Then
var4 = (H+L)/2;
2013-11-01
154
글번호 69133
답변완료
문의 드립니다
아래식은 제가 사용하는 매수/매도수식일부입니다,,,
------------------------------------------------------------
if CrossUp(c,s20) && c>fr[2] && c<fr[0]+(fr[1]-fr[5]) && c>r2 && c<r2+1 and mav > mav[1] and c>mav and Condition1 == false Then{
if (PreBuyPrice == 0 or (PreBuyPrice > 0 and c > PreBuyPrice)) Then
buy("매수");
}
if CrossDown(c,fr[4]) && c<fr[4] && c>fr[6]-(fr[1]-fr[5]) && c<s2 && c>s2-1 and mav < mav[1] and c<mav and Condition1 == false Then{
if (PreSellPrice == 0 or (PreSellPrice > 0 and c < PreSellPrice)) Then
Sell("매도");
}
-----------------------------------------------------------------------------
여기에 아래의 지표중 red일때만 매수신호가 나오고,blue일때만 매도신호가 나오게 하고 싶은데 잘안되네요,,,,,
지표)
var5=int((c-dayopen)/0.764)*0.764+DayOpen;
if var5 > var5[5] Then
value5 = 5;
if var5 < var5[5] Then
value5 = -5;
if value5 == 5 Then
plot19(var5+0.764,"5",RED);
Else
plot19(var5-0.764,"5",BLUE);
위지표의 내용을 시스템수식에 적용하여 red(var5+0.764)조건일때만 매수신호,,,,blue( var5-0.764)일때는 매도신호가 나오게 설정부탁드립니다
2013-11-01
178
글번호 69125
답변완료
수정 바랍니다
아래식 수정 바랍니다
1. 매도식 Trailing 반영
매수가 대비 5% 돌파한 종목이 분봉 저가가 2% 하락 전환시 잔량 즉시 매도
2. 매도 Closing time 반영
매수가 대비 수익 중인 경우 매수일 (sdate) 대비 다음날 아침 09:55 기준 전량 매도
3. 매도식 수정
분봉 고가가 매수가 대비 4.5% 이상 초과 돌파시 매수량 40% 즉시 매도
분봉 고가가 매수가 대비 7% 이상 초과 돌파시 매수량 잔량 즉시 매도
아래는 사용 수식입니다.
input : 투자금액(5200000),N(1);
var : vol(0),count(0);
Count = 0 ;
for Value1 = 0 to 10 {
if EntryDate( Value1 ) == sdate then
Count = Count + 1;
}
vol = int(int((투자금액)/C)/10)*10;
var5 = 1098;
var6 = var5*0.9955;
If sdate >= 20131101 and stime >= 90000 and crossdown(L,var6) and count < N
then
buy("b",OnClose,def,vol);
if MarketPosition == 1 Then{
var2 = round(var6[BarsSinceEntry],0);
exitlong("bx1",Atlimit, var2*1.045,"",int(int(MaxContracts*0.4)/10)*10,1);
exitlong("bx2",Atlimit, var2*1.075);
}
2013-11-01
147
글번호 69124
답변완료
안녕하세요
아래식을 복합챠트에서 사용 할 수있도록 수정 부탁 올립니다.
자정시간에이상하게 나타납니다.
input : N1(300);
if date != date[1] Then
var1 = 0;
var1 = var1+Ticks;
var2 = (var1-Ticks)%N1;
if dayindex == 0 or (dayindex > 0 and var2 < var2[1]) Then{
value1 = O;
value2 = H;
value3 = L;
}
if H > value2 Then
value2 = H;
if L < value3 Then
value3 = L;
value4 = c;
감사합니다 ==꾸뻑==
2013-11-01
161
글번호 69123
회원 님에 의해서 삭제되었습니다.
2013-11-01
27
글번호 69120
답변완료
수식 부탁드립니다
아래 수식은 미보정차트에서 갭보정 이동평균선을 보는건데요
단순종가 이평입니다.
지수이평으로 변경할 수있나요?
----------------------------------------------------------------------------
input : N1(10),N2(20);
var : Acnt(0),Bcnt(0),gab(0),t(0);
array : sum[2](0), N[2](0);
//N1과 N2는 이평선 주기
gab = dayopen(0) - dayclose(1); // 갭 값 = 당일 시가 - 전일 종가
t = MinutesToTime(540 + (Interval * N2)); // 봉의 주기를 변경해도 계산되도록 조정
N[0] = N1;
N[1] = N2;
for Acnt = 0 to 1 Begin
sum[Acnt] = 0; //sum값 초기화
For Bcnt = 0 to N[Acnt]-1 Begin
If sDate[0] == sDate[Bcnt] Then{
sum[Acnt] = sum[Acnt] + c[Bcnt]; // 봉의 시작 날짜가 지금과 같으면 그냥 더함
}
Else{
sum[Acnt] = sum[Acnt] + c[Bcnt] + gab; // 봉의 시작 날짜가 지금과 같지 않으면 갭 값도 더함
}
End
sum[Acnt] = sum[Acnt] / N[Acnt];
End
Plot1(sum[0], "N1이평", BLUE);
Plot2(sum[1], "N2이평", BLACK);
2013-11-01
190
글번호 69119
답변완료
수고 하십니다
신나고 즐거운 11월이 되시길 바랍니다
이 지표식을 시스템으로 바꿀수 있읍니까?
부탁드립니다
감사합니다
2013-11-01
184
글번호 69115