커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3449
글번호 230811
답변완료
지표수식 부탁드립니다.
안녕하세요.
항상 도움 주셔서 감사합니다.
지표의 값을 수치로 화면에 표시하고 싶습니다.
종목 : 해선
차트 : 10분
요청1)
가령 이동평균선, RIS, MACD, ADX, CCI, ATR, TRix, 일목균형표 등
각 지표의 값들을 차트에 표시하고 싶습니다.
요청2)
각 지표의 값들을 차트 우측상단, 좌측상단, 우측하단, 좌측하단에 표시하는 방법도
같이 설명 부탁드립니다.
요청3)
각 지표값 표시할때 지표값과 함께 아래와 같이 표시하고 싶습니다.
표시 예)
RSI(14) 수치 : 75, 상태 : 매수 (만약에 수치가 25이면 상태 : 매도)
- 매수, 매도 기준 70,30
MACD(12,26) 수치 : 1, 상태 : 매수 (만약에 수치가 0선 아래면 상태 : 매도)
- 매수, 매도 기준 0선
ADX(14) 수치 : 25, 상태 : 매수 (만약에 수치가 20보다 작으면 중립)
- 매수, 매도 기준 ADX 값 20 - 매수, 매도판단은 DMI로 같이 판단
요청4)
샘플로 이평5, 이평10, RSI, MACD, ADX 총 5가지 지표를 화면에
표시 하는 수식 부탁드립니다.
이평(5) : 수치 : 25, 상태 : 매수
이평(10) : 수치 : 20, 상태 : 매수
RSI(14) : 수치 : 75, 상태 : 매수
MACD(12,26) : 수치 : -2, 상태 : 매도
ADX(14) : 수치 15, 상태 : 중립
매수(3), 매도(1), 중립(1)
요약 : 매수 (매수가 3이상이면 요약은 매수, 매도가 3이상이면 매도)
위와 같이 표시하고 싶습니다.
P.S - 만약에 지표의 상태값(매수,매도)들을 var1,var2,var3,var4,var5 에
1또는 0으로 저장한다고 할때
for문을 사용하여 변수명을 변경하면서 카운팅 할수 있나요?
수식도움 부탁드립니다.
감사합니다.
2020-03-20
548
글번호 137051
답변완료
번호 66516 에관련 질문입니다
지표및 시스템수식에서 시작일자및시작시간 적용 부탁드리며
지표가 오실레이터로 표시되게 해주시고
수식에대한 설명을해주시면 감사하겠습니다
2020-03-20
410
글번호 137046
답변완료
항상 고맙습니다. 코로나 조심~~
안녕하세요?
해선입니다.
1) 매수진입 조건 : 이평 120일선이 우상향 중이고, 5이평선은 120일선 아래 있고, 두 이평선의 이격 거리는 10이상이고,
두 이평선 위에서 양봉 발생시. 진입
2) 매수청산 조건. : 진입 봉 전 5봉이내, 진입후 5봉이내 최저가격을 종가가 하향 이탈시
3) 매도진입 조건 : 이평 120일선이 우 하향 중이고, 5이평선은 120일선 위에 있고, 두 이평선의 이격 거리는 10이상이고,
두 이평선 아래서 음봉 발생시. 진입
4) 매도청산 조건 : 진입 봉 전 5봉이내 , 진입후 5봉이내 최고가격을 종가가 상향 돌파시
5) 익절 조건 20틱 수익 발생시
6) 손절 조건. 20틱 손실 발생시
7) 청산 : 10틱 이상 수익발생후. 20틱 하락시
8) 하루 40틱 수익 발생시 더이상 진입 금지
9) 하루 40틱 손실 발생시 더이상 진입 금지
2020-03-20
426
글번호 137045
답변완료
수식부탁드립니다
$,안녕하세요,관리자님
ㅡ,아래식은 월간기간 변수조절하는 로직입니다
이를 년간기간 변수조절하는 식으로 부탁드립니다
var : 고점(0),저점(0),hh(0),ll(0),hh1(0),ll1(0),oo(0);
Array : Tx[38](0);
input : n(3);
var : month(0),TF(0),s1(0);
month = Floor(FracPortion(bdate/10000)*100);
TF = (Month-1)%n;
if Month != month[1] and TF == 0 Then
{
oo = O;
hh = h;
ll = l;
hh1 = hh[1];
ll1 = ll[1];
}
if h > hh Then
hh = h;
if l < ll Then
ll = l;
if hh1 > 0 and ll1 > 0 then
{
고점 = hh1;
저점 = ll1;
var1 = 고점-저점;
$,관리자님 건강과 행운을 기원드리며, 언제나 늘 고맙습니다.
2020-03-20
456
글번호 137044
답변완료
매도 청산 수식 부탁드려요
매수에 대한 청산 수식인데요..
if MarketPosition == 1 then
{
BuySetup = false;
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*즉시익절1 and C < O Then
ExitLong("즉시익절1",OnClose);
# 즉시익절값에 도달후 다음봉이 음봉일때 청산 (양봉시 계약유지)
변경요청식: 즉시익절값에 도달후 다음봉이 양봉일때 청산 (음봉시 계약유지)
if highest(H,BarsSinceEntry) >= (EntryPrice+PriceScale*즉시익절1*N2) Then
ExitLong("본전청산1",AtStop,EntryPrice+PriceScale*즉시익절1*N3);
Else
ExitLong("즉시손절1",AtStop,EntryPrice-PriceScale*즉시손절1);
# (즉시익절값*N2)수치에 도달시 부터 (즉시익절1*N3)로 떨어졌을때 청산
# 즉시 손절1 값도달시 즉시 청산
변경요청식: 위와 같은 컨셉의 요청식( 매도 버전으로)
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*tr수익 Then
ExitLong("tr",AtStop, highest(H,BarsSinceEntry)-PriceScale*tr하락);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*즉시손절1*N4 and C < O Then
ExitLong("저점에서 올라와서 본전 청산",atlimit,EntryPrice+PriceScale*본전생각틱);
# 트레일링 청산
# 하락후 본전근처에 왔을때 청산
변경요청식: 위와 같은 컨셉의 요청식( 매도 버전으로)
매도진입후 매도 청산 수식도 위와 같은 형태로 운용하고 싶습니다.
나름대로 해봤는데 오류가 생겨서 부탁드리는 사항입니다.
2020-03-20
509
글번호 137043
답변완료
부탁 드립니다.
늘 도움에 감사 드립니다.
타주기(분봉용)으로 부탁 드립니다.
input : p(20),sig(5);
var1=ma(c,p);
var2=c-var1;
var3=ma(var2,sig);
참고자료)
input : ntime(10),P(20),sig(3);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),i1(0),sum2(0),i2(0),sum3(0),sum4(0);
Array : C1[100](0),O1[100](0),v61[100](0),v51[100](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = TM%ntime;
2020-03-20
473
글번호 137041
답변완료
부탁드립니다.
항상 감사드립니다.
아래식은 익절시 +30, 손절시 -40씩 증가하게 카운트를 하고 있습니다.
(0 이하이면 0으로 수렴)
AA(300) 이상이 되면 BB(100) 도달시 까지
B1■, B2■ 와 같이 ■가 포함되게 표시하고 싶습니다.
BB(100) 도달후에는 AA(300)이상이 되기 전까지 B1, B2 로 표시
그럼 부탁드립니다.
input: BB(100), AA(300);
Input : 손절(10),익절(10),익절하락(3);
input : P1(30), P2(120), p3(240);
input : StartTime(090000),EndTime(050000);
var : tx(0),X(false),Tcond(false),tt(0);
var1 = ma(C, P1);
var2 = ma(C, P2);
var3 = ma(C, P3);
######## 진입제한
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime)Then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)Then
{
Tcond = false;
}
## 진입
if Tcond == true and marketposition == 0
and crossup(var1,var2) Then
{
if Condition1 == true and tt > BB then
buy("B1■");
Else
buy("B1");
}
if Tcond == true and marketposition == 0
and crossdown(var1,var2) Then
{
if Condition1 == true and tt > BB then
sell("S1■");
Else
sell("S1");
}
if Tcond == true and marketposition == 0
and crossup(var2,var3) and var3[1] < var3 Then
{
if Condition1 == true and tt > BB then
buy("B2■");
Else
buy("B2");
}
if Tcond == true and marketposition == 0
and crossdown(var3,var4) and var3[1] > var3 Then
{
if Condition1 == true and tt > BB then
sell("S2■");
Else
sell("S2");
}
## 청산
if MarketPosition == 1 then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if MarketPosition == -1 Then
{
SetStopTrailing(익절하락,익절,PointStop);
SetStopLoss(손절,PointStop);
}
if ((sdate != sdate[1] and stime >= Endtime) or
(sdate == sdate[1] and stime >= Endtime and stime[1] < Endtime)) Then
{
if MarketPosition == 1 Then
{
ExitLong("BE6");
}
if MarketPosition == -1 Then
{
ExitShort("SE6");
}
}
## 카운트
if TotalTrades > TotalTrades[1] then
{
if IsExitName("StopLoss",1) == true then
{
tt = tt - 40;
if tt <= 0 Then
{
tt = 0;
Condition1 = false;
}
if tt < AA then ###
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,20);
}
else
{
Condition1 = true;
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★");
Text_SetSize(tx,20);
Text_Setstyle(tx,2,20);
Text_SetColor(tx,MAGENTA);
}
}
if IsExitName("StopTrailing",1) == true then
{
tt = tt + 30;
if tt <= 0 Then
{
tt = 0;
X = true;
Condition1 = false;
}
if Condition1 == true and tt < BB then ###
Condition1 = false; ###
if tt < AA then ###
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0));
Text_SetSize(tx,20);
Text_Setstyle(tx,2,2);
}
else
{
tx = Text_New(ExitDate(1),ExitTime(1),h[BarsSinceExit(1)],NumToStr(tt,0)+"★");
Text_SetSize(tx,20); //Text_SetSize 폰트 사이즈
Text_Setstyle(tx,2,2); //Text_Setstyle 좌우상하 정렬
Text_SetColor(tx,MAGENTA);
}
}
} // 매매시간 이후 AA(★)부터 BB(-40)까지 마지막 지정
2020-03-19
436
글번호 137039
답변완료
문의 드립니다.
안녕하세요. 다름이 아니오라 생각해놓은게 있는데 구현이 잘 안되서 문의드리고자 합니다.
문의 내용은 다음과 같습니다.
1. 현재봉의 종가가 금일고가를 상항돌파하면 매수
2. 현재봉의 종가가 금일저가를 하향돌파하면 매도
3. 금일고가를 돌파한 상태(매수주문이 들어간 상황)에서 3봉이상 종가가 낮아지면 매수청산(첨부1 참조)
4. 금일저가를 돌파한 상태(매도주문이 들어간 상황)에서 3봉이상 종가가 높아지면 매도청산(첨부2 참조)
이걸
if CrossUP(C, DayHigh(0)) then Buy();
if CrossDown(C, DayLow(0)) then Sell();
이렇게 간단하게 할수 있을것 같았는데, 문제는 이렇게 하면 차트에 신호가 아예 안뜹니다.
어떻게 해야하는지 부탁드리겠습니다.
2020-03-19
474
글번호 137038
답변완료
문의 드립니다.
안녕하세요
5일선이 일목의 기준선을 상향으로 돌파시 배경색을 빨강색
5일선이 일목의 기준선을 하향으로 돌파시 배경색을 파랑색
수식 문의 드립니다.
수고하세요.
2020-03-19
447
글번호 137037