커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1689
글번호 230811
oni 님에 의해서 삭제되었습니다.
2022-07-12
45
글번호 160681
답변완료
수정부탁드립니다
#,안녕하세요
아래식을 일봉,주봉에 적용할수 있도록 도움 부탁드립니다.
input : N(0),추세선굵기(0),추세선색상(0);
var : DD(0),D1(0),T1(0),idx(0),TF(0),TL(0),TL11(0),hh(0),ll(0),box(0);
var : MM1(0),박스색상(0),HH1(0),LL1(0);
if Bdate != Bdate[1] Then
{
DD = sDate;
idx = 0;
}
Else
idx = idx+1;
if DD > 0 Then
{
TF = idx%N;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
D1 = sDate;
T1 = sTime;
TL = TL_new(D1,T1,C,NextBarSdate,NextBarStime,C);
TL_SetColor(TL,추세선색상);
TL_SetSize(TL,추세선굵기);
hh = h;
ll = l;
HH1 = HH[1];
LL1 = LL[1];
MM1 = (HH1+LL1)/2;
box = Box_New(d1,t1,hh,NextBarSdate,NextBarStime,ll);
Box_SetFill(box,true);
}
Else
{
TL_SetBegin(TL,D1,T1,C);
TL_SetEnd(TL,sDate,sTime,C);
if h > hh Then
hh = h;
if l < ll Then
ll = l;
Box_SetBegin(box,d1,t1,hh);
Box_SetEnd(box,sDate,sTime,ll);
}
}
if C > MM1 Then
박스색상 = Magenta;#Magenta
Else
박스색상 = Blue;#LCyan
Box_SetColor(box,박스색상);
2022-07-12
1347
글번호 160680
답변완료
시스템 수식 도움 부탁드립니다.
input : Period(20),Period1(5),Period2(20),A(0);
var1 = ma(C,Period);
Var2 = ma(C,Period2);
Var3 = (ma(c,Period1)-Var2)/C*100;
if Crossup(C,Var1) and Var2 > Var2[1] and Var2[1] < Var2[2] and
CrossUp(Var3,A) Then
buy();
위의 시스템 수식으로 매도주문 수식 부탁드립니다.
조건은 매수가에서 손절-3% 익절20% 시장가 매도
추후에 손절,익절 수치만 바꾸면 수정이 되는건가요?
작성해 주실 수식을 기존 시스템조건명 화면안에 있는 위의 매수식 하단에 바로 붙여넣으면 되는지요?
2022-07-12
1446
글번호 160679
답변완료
함수요청
안녕하세요?
계좌는 한개인데 시스템 A와 시스템 B를 동시에 돌리고 싶습니다.
전략 실행 차트를 각각 띄우고 각각 적용하는 거 말고
시스템 A와 시스템 B를 한개의 스트립트로 재작성해서
시스템 C를 만들고 싶습니다.
시스템 A와 시스템 B를 각각 동시에 돌린 것과 시스템 C 한개를 돌린 것과 신호와 손익이 같도록 작성 요청드립니다.
시스템 A = 글번호 77970번에서 작성주신 스크립트
시스템 B = 글번호 77955번에서 작성주신 스크립트입니다.
/시스템 A
var : T(0),S(0),mav(0);
mav = ma(c,20);
if Bdate != Bdate[1] Then
{
T = 0;
S = 0;
if L[1] > mav[1] and H < mav Then
Sell("s",AtMarket);
if H[1] < mav[1] and L > mav Then
Buy("b",AtMarket);
}
if MarketPosition == -1 Then
{
if CrossUp(c,mav) Then
ExitShort("sx",AtMarket);
if L < DayLow(0)[1] and L[1] != DayLow(0)[1] Then
{
var1 = var1+1;
if var1 == 3 Then
ExitShort("sx1");
}
}
Else
var1 = 0;
if MarketPosition == 1 Then
{
if CrossDown(c,mav) Then
ExitLong("bx",AtMarket);
if H > DayHigh(0)[1] and H[1] != DayHigh(0)[1] Then
{
var2 = var2+1;
if var2 == 3 Then
ExitLong("bx1");
}
}
Else
Var2 = 0;
SetStopEndofday(151500);
/시스템B
var : T(0),S(0),mav(0);
mav = ma(c,20);
if Bdate != Bdate[1] Then
{
T = 0;
S = 0;
if L > mav Then
T = -1;
if H < mav Then
T = 1;
}
if T == -1 and CrossDown(C,mav) Then
{
S = S+1;
if S == 2 Then
Sell();
}
if T == 1 and CrossUp(C,mav) Then
{
S = S+1;
if S == 2 Then
Buy();
}
if MarketPosition == 1 and Bdate == Bdate[1] and C < DayLow(0)[1] Then
ExitLong("bx",AtMarket);
if MarketPosition == -1 and Bdate == Bdate[1] and C > DayHigh(0)[1] Then
ExitShort("sx",AtMarket);
SetStopEndofday(151500);
2022-07-12
1436
글번호 160678
답변완료
문의드립니다
수고 많으십니다
아래 수식에서 순절 익절 각 20틱씩 하고
한번 진입해서 손익절이 나오면 같은방향으로 재진입 안 하고
반대 신호에 진입하게 수정 부탁드립니다
var : 전환선(0),기준선(0),선행스팬1(0),선행스팬2(0);
전환선 = (highest(H,9)+lowest(L,9))/2;
기준선 = (highest(H,26)+lowest(L,26))/2;
선행스팬1 = (전환선+기준선)/2;
선행스팬2 = (highest(H,52)+lowest(L,52))/2;
if 선행스팬1 > 선행스팬2 and
선행스팬1 > 선행스팬1[1] and
선행스팬2 > 선행스팬2[1] Then
Buy();
if 선행스팬1 < 선행스팬2 and
선행스팬1 < 선행스팬1[1] and
선행스팬2 < 선행스팬2[1] Then
Sell();
2022-07-12
1723
글번호 160674
회원 님에 의해서 삭제되었습니다.
2022-07-12
242
글번호 160672
답변완료
수식 수정 부탁드립니다.
안녕하십니까
수식 수정 부탁드립니다.
--------------------------------------------------------------
input : P(20);
var : cnt(0),sum1(0),mav1(0),sum2(0),mav2(0),t(0),count(0);
var : 상한가(0), UpLimit(0);
var : up1(0), up2(0), up3(0), up4(0), up5(0),up6(0),Up7(0);
Array : 상[100](False);
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;
}
}
if Bdate != Bdate[1] Then
{
For cnt = 99 DownTo 1
{
상[cnt] = 상[cnt-1];
}
}
if C == 상한가 Then
상[0] = true;
Else
상[0] = False;
sum1 = 0;
sum2 = NextBarOpen;
count = 0;
For cnt = 0 to P-1
{
sum1 = sum1 + DayClose(cnt);
if cnt < P-1 Then
sum2 = sum2 + DayClose(cnt);
if 상[cnt] == true Then
count = count+1;
}
mav1 = sum1/P;
mav2 = sum2/P;
if NextBarSdate != sDate Then
{
T = 0;
if C <= mav1*1.05 and C >= mav1*0.95 and count >= 1 Then
{
T = 1;
if NextBarOpen < mav2 Then
{
T = 2;
Buy("b11",AtMarket);
}
Else
{
T = 3;
Buy("b12",AtLimit,mav2);
}
}
Condition1 = False;
}
Else
{
if L <= mav1 Then
Condition1 = true;
if Condition1 == False and T == 3 Then
Buy("b2",AtLimit,mav2);
}
SetStopEndofday(151800);
SetStopLoss(5,PercentStop);
현재 조건
#ㅇ 매수
# 1. 최근 20거래일 중 종가 상한가
# 2. 일봉 상 가격 형성이 20일선 기준 +-5% 이내
# 3. 당일 시가가 일봉기준 20일선 위에서 시작하면 20일 평균가격으로 매수 주문
# (가격을 지정하여 매수 주문이 불가능 하면, 당일 일봉 상 20일 평균가격에 닿거나 하향하면 바로 매수)
# 4. 당일 시가가 일봉기준 20일선 아래에 위치하면 시가로 매수 주문
#매수 주문은 시가가 전일종가 대비 +-20 이내에서 형성될때만 나갈수있게 부탁드립니다.
#ㅇ 매도
#오후 3시 18분 전량매도
수정요청
위 조건 중 기준선 을 5일, 10일 선으로 각각 수정부탁드립니다.
잘 부탁드립니다.
감사합니다.
2022-07-12
1500
글번호 160668
러블리 님에 의해서 삭제되었습니다.
2022-07-11
110
글번호 160665
hg950265 님에 의해서 삭제되었습니다.
2022-07-11
0
글번호 160664