커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
5448
글번호 230811
답변완료
부탁 드립니다.
도움에 감사 드립니다.
수식1)은 타주기(분)용은 정상 실행되나
같은 내용의 수식2)는 타주기(틱)용은 실행이 되지 않아
수정 부탁 드립니다.
수식1)타주기(분)용
input : ntime1(11),P(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0);
Array : C1[50](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%ntime1;
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 49
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P] > 0 then{
sum1 = 0;
for cnt = 0 to P-1{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
if c > mav1 Then
plot1(1);
Else
plot1(0);
}
}
2)타주기(틱)용
input : n(2),P(20);
var : S1(0),D1(0),TM(0),TF(0),cnt(0);
var : sum1(0),mav1(0),idx(0);
Array : C1[50](0);
if Bdate != Bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
idx = 0;
}
Else
idx = idx+1;
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF = idx%n;
if Bdate != bdate[1] or (Bdate == Bdate[1] and TF < TF[1]) Then
{
for cnt = 1 to 49
{
C1[cnt] = C1[cnt-1][1];
}
}
C1[0] = C;
if C1[P] > 0 then{
sum1 = 0;
for cnt = 0 to P-1{
sum1 = sum1+C1[cnt];
}
mav1 = sum1/P;
if c > mav1 Then
plot1(1);
Else
plot1(0);
}
}
2020-01-22
220
글번호 135341
고나리자 님에 의해서 삭제되었습니다.
2020-01-22
1
글번호 135340
답변완료
행복; 시스템식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
시스템식 관련입니다
어제 답변 감사합니다
기존 조건에 한가지 조건을 추가하였습니다
< 조건 >
- 주기; 틱봉
## 추가 조건
; 매수 당일, 매수 시점에 거래량 < 10,000,000 주 이고 거래대금 < 1,000억원 일 때
============================================================================
- 1. 전일종가가 12,345원보다 큰데,
시초가가 12,345원보다 낮거나 같게 시작을 하면 시초가와 같은 가격으로 매수하고
- 2. 전일종가가 12,345원보다 큰데,
시초가가 12,345원보다 높게 시작을 하면 12,345원의 바로 위 호가인 12,350원에 매수한다
- 3. 전일종가가 12,345원보다 작은데,
시초가가 전일종가보나 낮거나 같게 시작을 하면 시초가와 같은 가격으로 매수하고
- 4. 전일종가가 12,345원보다 작은데,
시초가가 전일종가보다 높게 시작을 하면
고가가 (전일종가 * 1.1) 보다 낮을 때만 전일종가에 매수한다
어제 답변에 거래량과 거래대금을 추가하여 주십시요
=================================================
수고하십시요^^
2020-01-22
232
글번호 135339
답변완료
시스템 수식 부탁드려요~
input : P10(10),f0(0),P08(8);
var : TH(0),TL(0),TR(0),CEN(0),AVGRAGE(0);
var : upv(0),dnv(0);
TH=IfF(C[1]>H,C[1],H);
TL=IfF(C[1]<L,C[1],L);
TR=TH-TL;
CEN=MA(C, P10)+ ATR(P10) * F0;
AVGRAGE=MA(TR,P10);
UPv=CEN+(AVGRAGE*P08);
DNv=CEN-(AVGRAGE*P08);
plot1(upv);
plot2(cen);
plot3(dnv);
캔들이 UPv , DNv 사이에 있을 때 적용되며,
upv 터치시 매도, dnv 터치 시 매수
포지션이 없을 경우에만 진입
진입 후 10틱 익절, 10틱 손절
하루 거래는 10회로 제한
당일 수익 틱수 30, 당일 손실틱수 50 수식 부탁드립니다~
2020-01-22
240
글번호 135338
답변완료
종목검색식 부탁드립니다.
Band Width.값이 120일 최저인 종목을 찾고 싶습니다.
부탁드립니다.
2020-01-22
238
글번호 135337
답변완료
새해 복 많이 받으십시오. 질문 드립니다.
예전에 주셨던 MACD를 차트 바탕에 까는 수식입니다.
input : short(12),long(26),sig(9);
var : MACDV(0),MACDS(0);
MACDV = (ema(C,short)ema(C,long))/ema(C,long)*100;
MACDS = ema(MACDv,sig);
if MACDV > MACDS Then
{
      plot1(99999999,"라인1");
      plot2(0,"라인2");
}
Else
{
      plot1(0,"라인1");
      plot2(99999999,"라인2");
}
첨부한 그림들의 빨간 동그라미 부분처럼
macd 변환이 딱 한틱봉에서만 발생한 경우
음성 신호를 주는 수식 가능할까요?
최종 완성이후 음성신호를 주려면 결국 다음봉까지 완료가 되어야 할텐데
그것도 좋고,
다음봉이 완성되기 전에 실시간으로 음성신호가 나와도 좋습니다.
새해 복 많이 받으십시오. 감사합니다.
2020-01-21
252
글번호 135336
답변완료
식 부탁합니다
수고 많으십니다.
아래 지표식에 검색 표시를 할 수 있도록 식 부탁합니다.
검색 표시할 내용은 아래 식중에 소리로 알려주는
If var1[1]>var1 or var2[1]<var2 or var3[1]>var3 Then{
PlaySound("C:₩예스트레이더₩data₩Sound₩sound8.wav");}을 충족하는 검색이
될 수 있도록 부탁합니다. 가능하면 과거에 발생한 것은 검색 표시되지 않도록 하고
당일만 검색 표시되도록 해주길 바랍니다.
------- 아 래 --------
If O>C[1] && C<O[1] Then
var1 = O;
If O<=C[1] && O>O[1] && C<O[1] Then
var2 = O;
If O>O[1] && C<O[1] Then
var3 = O;
If var1[1]>var1 or var2[1]<var2 or var3[1]>var3 Then{
PlaySound("C:₩예스트레이더₩data₩Sound₩sound8.wav");}
plot1(var1, "A", RED);
plot2(var2, "B", GREEN);
plot3(var3, "C", YELLOW);
감사합니다.
2020-01-22
227
글번호 135335
답변완료
틱봉을 분봉으로 만들어서 청산하기
# 해외선물_ 틱봉 100틱 설정
# 매수 진입 후, 30분봉이 두번 연속 양봉이 나오면 이익청산
# 매도 진입 후, 30분봉이 두번 연속 음봉이 나오면 이익청산
위의 코딩 부탁드립니다.
아래처럼 여기저기 따와서 코딩했는데 안되네요..
도움되실까 하여 아래 제가 여기저기 따온 코드를 수록하였습니다.
# 진입 : 골든크로스 매수/ 데드크로스로 매도 -------------------------------------------------------------
Input : shortPeriod(5), longPeriod(20);
value1 = ma(C, shortPeriod);
value2 = ma(C, longPeriod);
# 매수/매도청산
If CrossUP(value1, value2) Then
{
Buy("매수");
}
# 매도/매수청산
If CrossDown(value1, value2) Then
{
Sell("매도");
}
input : convert(30);
var : S1(0), D1(0), TM(0), TF1(0), rng1(0), rng2(0), OOO1(0), OOO2(0), CCC1(0), CCC2(0), cnt(0);
Array : OO[10](0), CC[10](0);
if bdate != bdate[1] Then
{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then
{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1; # TM = TimeToMinutes(stime) - S1
Else
TM = TimeToMinutes(stime)+1440-S1; # 아니면 TM = TimeToMinutes(stime) + 1440 - S1
TF1 = TM % convert; # TF1 = TM 나누기 convert(30)의 '나머지'
if Bdate != Bdate[1] or (Bdate == Bdate[1] and TF1 < TF1[1]) Then # TF[1]이 보다 유일하게 커질때가 30분 정각이다.(틱봉에선 반영이 잘 안되지만, 그래도 근사값을 구할수는 있다)
{
OO[0] = O;
CC[0] = C;
for cnt = 1 to 99
{
OO[cnt] = OO[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
}
if OO[1] != OO[2] Then
{
rng1 = CC[1]-OO[1];
rng2 = CC[2]-OO[2];
OOO1 = OO[1];
OOO2 = OO[2];
CCC1 = CC[1];
CCC2 = CC[2];
}
// 청산<익절> ---------------------------------------------------------------------------------------------------------------
if MarketPosition == 1 Then
{
if OOO1 > CCC1 and OOO2 > CCC2 Then # 첫번째 봉 음봉 and 두번째 봉 음봉 (2개 연속 봉 같은방향)
ExitLong("2차 매수익절_1안", AtLimit, 0, "매수");
else if CurrentContracts == 1 Then
ExitLong("2차 매수본절익절_1안", atstop, EntryPrice, "매수", 1, 1);
}
else if MarketPosition == -1 Then
{
if OOO1 < CCC1 and OOO2 < CCC2 Then # 첫번째 봉 양봉 and 두번째 봉 양봉 (2개 연속 봉 같은방향)
ExitShort("2차 매도익절_1안", AtLimit, 0, "매도");
else if CurrentContracts == 1 Then
ExitShort("2차 매도본절익절_1안", atstop, EntryPrice, "매도", 1, 1);
}
// 손절
SetStopLoss(10, PointStop);
2020-01-21
239
글번호 135334
답변완료
문의 드립니다.
aroon지표 신호식좀 부탁드립니다.
빨강색과 파란색이 크로드 업,다운할때 신호좀 부탁드립니다.
2020-01-21
225
글번호 135333