커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7036
글번호 230811
답변완료
진입을 하루 한번만 하고 싶어요 도와주세요
Input : Period(12), sigPeriod(9);
value1 = TRIX(Period);
value2 = ema(value1, sigPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy();
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell();
}
2022-05-10
1034
글번호 158727
답변완료
수식 수정부탁드립니다.
안녕하십니까
아래수식 중 일부 수정 부탁드립니다.
input : 금액(10000000),ntime(100000);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
input : P1(5),P2(20),P3(60),P(20),진입횟수(3),BBP(20),dv(2);
input : 진입시작1(91500),진입종료1(110000);
input : 진입시작2(130000),진입종료2(153000);
var : mav1(0),mav2(0),mav3(0),entry(0),volma(0),Tcond(False),BBup(0);
if Bdate != Bdate[1] Then
{
entry = 0;
Condition1 = False;
}
if TotalTrades > TotalTrades[1] Then
Condition1 = False;
if (MarketPosition != 0 and MarketPosition != MarketPosition[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
mav1 = ma(C,P1);
mav2 = ma(C,P2);
mav3 = ma(C,P3);
volma = ma(V,P);
BBup = BollBandUp(BBP,dv);
Tcond = (sTime >= 진입시작1 and sTime < 진입종료1) or (sTime >= 진입시작2 and sTime < 진입종료2); #오전 09:30~11:00, 오후 1:00~15:30분 사이만 매수
if date >= 19981207 then {
if date < 20050328 && CodeCategory() == 2 then
UpLimit = (BP[0] * 1.12);
Else if date >= 20050328 and date < 20150615 Then
UpLimit = (BP[0] * 1.15);
Else
UpLimit = (BP[0] * 1.30);
if CodeCategory() == 2 then
{
if date >= 20030721 then
{
up1 = int(UpLimit/100+0.00001)*100;
up2 = int(UpLimit/100+0.00001)*100;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/10+0.00001)*10;
up7 = int(UpLimit/1+0.00001)*1;
}
}
Else
{
up1 = int(UpLimit/1000+0.00001)*1000;
up2 = int(UpLimit/500+0.00001)*500;
up3 = int(UpLimit/100+0.00001)*100;
up4 = int(UpLimit/50+0.00001)*50;
up5 = int(UpLimit/10+0.00001)*10;
up6 = int(UpLimit/5+0.00001)*5;
up7 = int(UpLimit/1+0.00001)*1;
}
if CodeCategory() == 1 || CodeCategory() == 2 then
{
if sdate < 20101004 Then
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up6);
}
Else
{
If BP >= 500000 Then
상한가 = up1;
Else If BP >= 100000 Then
상한가 = iff(up2>=500000, up1, up2);
Else If BP >= 50000 Then
상한가 = iff(up3>=100000, up2, up3);
Else If BP >= 10000 Then
상한가 = iff(up4>=50000, up3, up4);
Else If BP >= 5000 Then
상한가 = iff(up5>=10000, up4, up5);
Else If BP >= 1000 Then
상한가 = iff(up5>=5000, up5, up6);
Else
상한가 = iff(up6>=1000, up6, up7);
}
}
else if CodeCategory() == 8 || CodeCategory() == 9 then { // ETF
상한가 = up6;
}
}
var1 = ma(v,P1);
var2 = ma(v,P2);
var3 = ma(v,P3);
if MarketPosition == 0 Then
{
if Tcond == true and
entry < 진입횟수 and #당일진입은 3회까지
C > DayOpen and #일봉양봉
mav2 > mav2[1] and
(TotalTrades == 0 or (TotalTrades > 0 and CountIf(mav2<mav2[1],BarsSinceExit(1)) >= 1)) and
V >= volma[1]*2.0 Then #20거래량 평균 2배이상 거래량 발생
{
Condition1 = true;
TL_New(sDate,sTime,0,sDate,sTime,9999999);
}
if Condition1 == true and
CrossDown(var1,var3) and var1 < Var2 and
mav1 > mav2 and mav2 > mav3 and mav2 > mav2[1] Then
Buy("b");
}
if MarketPosition == 1 Then
#if CrossDown(C,BBup) Then #볼밴상단 하향돌파
#ExitLong("bx2");
ExitLong("bx",AtLimit,상한가);
SetStopProfittarget(1.7,PercentStop);
SetStopLoss(1.3,PercentStop);
SetStopEndofday(151500);
#ㅇ 현재 조건
#1. 일봉양봉
#2. 20거래량 평균 2배이상 거래량 발생
#위 조건 만족후
#3. 5거래량 이동평균이 20, 60일 거래량 이동평균을 차례로 하향돌파
#4. 5,20,60일 가격이동 평균선이 정배열
#5. 20일선 가격이동평균선 상승
#ㅇ 수정 요청 사항
#1. 일봉양봉
#2. 5거래량 이동평균이 20, 60일 거래량 이동평균을 차례로 하향돌파
#3. 5,20,60일 가격이동 평균선이 정배열
#4. 20일선 가격이동평균선 상승
잘 부탁 드립니다.
감사합니다.
2022-05-10
996
글번호 158726
답변완료
문의 드립니다.
항상 친절히 답변 주셔셔 감사 드려요.. ^^
다름이 아니오라 아래와 같이 간단한 조건수식 문의 드립니다.
[ 문의사항 ]
1. 전일 종가대비 시가가 (3% 이상)으로 시작하고
이때 분챠트상 음봉으로 밀렸다가
다시 시가를 회복하며 양봉으로 전환 상승하는 조건 수식을 문의 드립니다.
- 오늘도 즐거운 하루 되시고 수고 하세요 ! -
2022-05-10
1268
글번호 158725
답변완료
수식 문의드립니다!
항상 수고가 많으십니다. 수식작성중 어려움이 있어 도움을 받고자 글 남깁니다.
제가 구현하고자 하는 수식은
1. 볼벤 상하단을 일목균형표의 후행스팬이 상향,하향 돌파했을시. 그 값을 저장
(이후부터는 빠른 이해를 위해 상향돌파 기준으로만 작성하지만 실제식은 하,상향 둘다 적용시길 예정)
2. 후행스팬이 볼벤 상단을 유지중일때 1번값 밑으로 내려간가면 손절, 다시 위로 올라간다면 재진입
3. 340포인트 이상 나왔을시나 볼벤안으로 후행스팬이 재진입했을시 익절
4. 하루 340포인트 이상 수익이 나왔을시 그날은 거래 중지.
5. 340포인트의 수익을 봤다면 볼밴 진입전까지는 거래 중지.
이렇게 수식을 짜고싶습니다. 지금 대략적으로 수식을 짠게 있지만 생각처럼 작동하지 않아서 한번 부탁드립니다. 언제나 고생이 많으십니다. 감사합니다
기존 수식)
Input : Period(20), MultiD(2);
var : BBup(0),BBdn(0),B_Money(0),S_Money(0),StateSwich(True);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if CrossUp(c,BBup[25]) Then{
StateSwich = True;
B_Money = c;
}
if CrossDown(c,BBdn[25]) Then{
StateSwich = False;
S_Money = c;
}
if StateSwich Then{
if c > BBup[25] and C > B_Money Then
Buy();
if c <= BBup[25] or c <= B_Money Then
ExitLong();
}
if !StateSwich Then{
if c < BBup[25] and C < S_Money Then
Sell();
if c >= BBup[25] Then
ExitShort();
if c >= S_Money Then
ExitShort();
}
빠른 답변 부탁드립니다.
2022-05-10
1133
글번호 158719
답변완료
주문 오류 관련 문의드립니다.
안녕하세요,
이베스트를 통해 YesTrader 사용중이며,시스템트레이딩 중에 피라미딩 미허용 상태에서
1계약씩만 EURO FX을 시험삼아 시장가로만 거래중인데
세 가지 질문이 있습니다.
1. $5000이 넘는 잔액이 있는데도 아래와 같이 접수오류가 발생했습니다.
이전에도 몇번 정상거래를 했던 알고리즘인데 이상합니다.
잔고 부족외에 확인해야할 사항이 있을까요?
"접수오류(02707) 주문금액이 주문가능금액을 초과하였습니다."
2. 접수 오류 발생 하였으나 알고리즘은 계속 포지션 보유한 것으로 인지합니다.
이러한 경우 어떻게 MarketPosition을 0으로 되돌릴수 있을까요?
실계좌 상황과 알고리즘 인지 상황이 불일치 하는 경우 해결방법을 여쭙습니다.
3. 추가로, 현재 사용중인 알고리즘이 short Only 인데,
주문오류 상태로 실제 포지션이 없는데도 불구하고
알고리즘이 Exitshort을 발생시키고 실계좌에 정상동작한다면 Buy로 인식이 되는건가요?
미리 감사하다는 말씀드립니다
좋은 하루되세요.
2022-05-10
1202
글번호 158716
약수삼천 님에 의해서 삭제되었습니다.
2022-05-10
14
글번호 158715
답변완료
수식 부탁드립니다.
안녕하세요~
캡쳐한 부분은 barindex값과 지표값입니다.
5월6일 0시 56분에 barindex가 10777이고, 지표값이 865.4입니다.
55분의 barindex값은 10776이고, 지표값은 없습니다.
지표값이 처음 나오는 barindex값을 불러오고 싶은데 어떻게 수식을 짜야할까요?
결과값으로 10777을 얻고 싶은겁니다.
수식부탁드립니다. 감사합니다..
2022-05-10
952
글번호 158714
답변완료
질문이 있습니다. 감사합니다.^^
1. If Adx>30 and crossup(dp,dm) then
Buy();
-> 이런식으로 넣어서 실행해보니 dp,dm 크로스는 잘 발생하는데 adx는 수치가
한참 낮은 수치에서 매수가 되더라구요. 200틱에서 실행해서 그런지..왜그럴까요?
2. Adx 강도가 꺽이면, 즉 수평이 되거나 꺽일때 청산한다고 표현할때,
단순히 adx <= adx[1]....라고 표현하면 될까요?
3.기본차트를 200틱으로 하고 400틱과 600틱을 참조지표로 사용하여 시스템을 만든다고 할때
문제가 생기나요?
이제 시작한지 며칠안되 질문이 많습니다.^^;; 항상 감사드립니다.
2022-05-10
1204
글번호 158713
답변완료
지표 문의드립니다
만들어 주신 수식으로 수정해서 지표를 만들어 테스트하는 중입니다
저는 3분봉 차트를 사용하는데 조건이 겹치는 부분이 생겨서
지표가 원하는데로 그려지지 않습니다
사진과 같이 1분봉에는 정확하게 그려지는데 3분봉에서는 나오지 말아야 할 라인이 생깁니다
혹시 3분봉 차트에서 지표만 1분봉의 지표로 볼 수 있을까요?
또는 다른 해결방법이 있을까요? 항상 도움을 주셔서 감사합니다^^
3분봉에서 저점이 갱신되니
if L < LL then
t = -1 ;
부분이 바로 적용되어서 LH1 = LH; 됩니다.
var : HH(0),LL(0),HL(0),T(0),HL1(0),LH(0),LH1(0),S(0),idx(0);
if Bdate != Bdate[1] Then
{
HH = H;
LL = L;
HL = 0;
LH = 0;
HL1 = 0;
LH1 = 0;
}
Else
{
if H > HH Then
{
T = 1;
LH = 0;
LH1 = 0;
HH = H;
if HL > 0 Then
HL1 = HL;
HL = 0;
}
if L < LL Then
{
T = -1;
HL = 0;
HL1 = 0;
LL = L;
if LH > 0 Then
LH1 = LH;
LH = 0;
}
if T == 1 and L > LL and L < LL+(HH-LL)*0.5 then
{
if HL == 0 or (HL > 0 and L < HL) Then
HL = L;
}
if T == -1 and H < HH and H > LL+(HH-LL)*0.5 Then
{
if LH == 0 or (LH > 0 and H > LH) Then
LH = H;
}
}
if T > 0 Then
Plot1(HL1,"1");
if T < 0 Then
plot2(LH1,"2");
2022-05-10
1256
글번호 158712