커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1692
글번호 230811
답변완료
수정부탁드립니다.
안녕하세요
아래 수식중 전환선위, 아래 캔들색상표시만 색상이 동일하게 나오는데
어떤 이유인지요?
수정 부탁드립니다.
input : Period(5),Length(5);
var : TLen(0),tx1(0),tx2(0),tx3(0);
var1 = ma(C,5);
TLen = Ceiling((Length + 1) * .5);
var2 = ma(ma(C, TLen), TLen);
var3 == (highest(H,9)+lowest(L,9))/2;
if c > var1 Then
{
tx1 = Text_New(sDate,sTime,L,NewLine+"★");
Text_SetStyle(tx1,2,0);
Text_SetColor(Tx1,Red);
}
if c > var2 Then
{
tx2 = Text_New(sDate,sTime,L,NewLine+NewLine+"●");
Text_SetStyle(tx2,2,0);
Text_SetColor(Tx2,Red);
}
if c > var3 Then
{
tx3 = Text_New(sDate,sTime,L,NewLine+NewLine+NewLine+"■");
Text_SetStyle(tx3,2,0);
Text_SetColor(Tx3,Red);
}
if c < var1 Then
{
tx1 = Text_New(sDate,sTime,L,NewLine+"★");
Text_SetStyle(tx1,2,0);
Text_SetColor(Tx1,Blue);
}
if c < var2 Then
{
tx2 = Text_New(sDate,sTime,L,NewLine+NewLine+"●");
Text_SetStyle(tx2,2,0);
Text_SetColor(Tx2,Blue);
}
if c < var3 Then
{
tx3 = Text_New(sDate,sTime,L,NewLine+NewLine+NewLine+"■");
Text_SetStyle(tx3,2,0);
Text_SetColor(Tx3,Blue);
}
2024-10-07
757
글번호 184060
답변완료
[끌올] 질문드립니다.
추가질문 드리겠습니다.
저 식에서 조건을 추가하여 CH가 당일 시가보다 클 경우(매수셋업, 매도셋업은 반대)
CH-CL을 계산했던 타임프레임만큼 다시 고가(CHH)와 저가(CLL)를 만들어
그 고가 크로스업시 매수, 저가 크로스다운시 매도의 형태를
만들수 있을까요? 물론 처음의 의도처럼 모든 타임프레임에 적용한 상태를 의미합니다.
그리고 위의 형태를 data2에 적용하고 싶습니다.
감사합니다.
==================================
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 합성전략 문의
>
안녕하세요
예스스탁입니다.
올려주신 수식에서 단순화가 가능한 부분은
CH와 CL을 dayindex별로 저장해 주는 부분만 가능합니다.
Buy와 exitlong은 모두 나열해서 작성하셔야 합니다.
B3,BX3까지만 작성해 드립니다.
수식 참고하셔서 추가로 작성하셔야 합니다.
var : CH(0),CL(0);
var : cnt(0);
Array : HH[300](0),LL[300](0);
if Bdate != Bdate[1] Then
{
For cnt = 0 to 499
{
HH[cnt] = 0;
LL[cnt] = 0;
}
}
if TIME >= 90000 Then
Begin
IF H > CH THEN CH = H;
IF L < CL THEN CL = L;
HH[DayIndex] = CH;
LL[DayIndex] = CL;
END;
if HH[1] > 0 and crossup(C,HH[1]) then
BUY("B1", AtMarket);
if LL[1] > 0 and EntryName=="B1" and ((data2(C)<LL[1]) ) Then
ExitLong("BX1",AtMarket);
if HH[2] > 0 and crossup(C,HH[2]) then
BUY("B2", AtMarket);
if LL[2] > 0 and EntryName=="B2" and ((data2(C)<LL[2]) ) Then
ExitLong("BX2",AtMarket);
if HH[3] > 0 and crossup(C,HH[3]) then
BUY("B3", AtMarket);
if LL[3] > 0 and EntryName=="B3" and ((data2(C)<LL[3]) ) Then
ExitLong("BX3",AtMarket);
즐거운 하루되세요
> 마녀58 님이 쓴 글입니다.
> 제목 : 합성전략 문의
> TIME >= 90000 AND DayIndex <= 1 THEN BEGIN
IF H > CH THEN CH = H;
IF L < CL THEN CL = L;
END;
if crossup(C,CH) then
BUY("B1", AtMarket);
if EntryName=="B1" and ((data2(C)<CL) ) Then
ExitLong("BX1",AtMarket);
위의 전략을 기본으로 한다고 가정할 때
dayindex가 1이 늘어날 때마다
B2,B3,B4,.....,B5
전략을 만들어서
각자 매수와 매수청산이 되는 식을 만드는 방법을 알려주세요.(피라미딩 가능)
몇개는 반복적으로 만들 수는 있는데
갯수가 많아질 경우 수식을 어떻게 만들어야 하는지(최대한 단순화) 궁금합니다.
감사합니다.
2024-10-07
728
글번호 184059
비듬싸순 님에 의해서 삭제되었습니다.
2024-10-07
34
글번호 184058
답변완료
종목검색식 요청드립니다.
아래 2개의 키움수식 중 두개의 선 모두 돌파(둘중에 큰값?)하는 종목을 검색하는 검색식을 만들고 싶습니다. 도움 부탁 드리겠습니다. 항상 감사합니다.
* 수식1
TT=Ttsf(C, 20);
A1=floor(date/100);
A2=A1%100;
A3=highestSINCE(1, A2 !=A2(1) and A2 != 12, H);
A4=valuewhen(1, A2 != A2(1), A3(1));
valuewhen(1, crossup(TT, A4), TT)
* 수식2
전환선=(highest(high,9)+lowest(low,9))/2;
기준선=(highest(high,26)+lowest(low,26))/2;
전제=전환선>기준선;
A1=floor(date/100);
A2=A1%100;
A3=highestSINCE(1, A2 !=A2(1) and A2 != 12, H);
조건=valuewhen(1, A2 != A2(1), A3(1));
valuewhen(1, crossup(전환선, 조건), 전환선)
2024-10-07
593
글번호 184057
답변완료
키움지표인데 예스랭귀지로 변환될수 있도록 도와주세요.
키움지표인데 예스랭귀지로 변환 부탁드립니다.
S = sum(1);
M5 = ma(C,5);
M20 = ma(C,20);
상전 = M5>M5(1) && M5(1)<M5(2);
하전 = M5<M5(1) && M5(1)>M5(2);
상전S1 = ValueWhen(1, 상전, S);
상전S1_5 = ValueWhen(1, 상전, M5);
상전S1_20 = ValueWhen(1, 상전, M20);
하전S1 = ValueWhen(1, 하전, S);
하전S1_5 = ValueWhen(1, 하전, M5);
하전S1_20 = ValueWhen(1, 하전, M20);
상전S2 = ValueWhen(2, 상전, S);
상전S2_5 = ValueWhen(2, 상전, M5);
상전S2_20 = ValueWhen(2, 상전, M20);
순번조건 = 상전S1 > 하전S1 && 하전S1 > 상전S2;
전체조건 = 순번조건 &&
상전S2_5 < 상전S2_20 &&
하전S1_5 > 하전S1_20 &&
상전S1_5 > 상전S1_20 &&
하전S1_5 > 상전S1_5;
조건 = 전체조건 && !전체조건(1);
CrossUp(C,M5) && sum(조건, 3)>0
즐거운 하루 보내세요
2024-10-07
580
글번호 184056
답변완료
다시 질문드립니다.
전환선이 이상있는 듯합니다. 다시 한번 봐주세요.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의 드립니다.
>
안녕하세요
예스스탁입니다.
모든 분봉주기에서 아래식 사용하시면 됩니다.
Input : 전환선기간(9), 기준선기간(26);
Var : 기준선(0), 전환선(0);
var : cnt(0),H1(0),L1(0),H2(0),L2(0);
H1 = 0;
L1 = 0;
H2 = 0;
L2 = 0;
for cnt = 0 to 기준선기간-1
{
if cnt < 기준선기간 Then
{
if H1 == 0 or (H1 > 0 and dayhigh(cnt) > H1) Then
H1 = dayhigh(cnt);
if L1 == 0 or (L1 > 0 and daylow(cnt) < L1) Then
L1 = DayLow(cnt);
}
if H2 == 0 or (H2 > 0 and dayhigh(cnt) > H2) Then
H2 = dayhigh(cnt);
if L2 == 0 or (L2 > 0 and daylow(cnt) < L2) Then
L2 = DayLow(cnt);
}
전환선 = (H1 + L1)/2;
기준선 = (H2 + L2)/2;
plot1(전환선);
plot2(기준선);
즐거운 하루되세요
> 무아 님이 쓴 글입니다.
> 제목 : 문의 드립니다.
> 일봉의 기준선, 전환선을 1분봉에 표현하게 부탁드립니다.
5분봉 적용도 가능한지요?
2024-10-07
556
글번호 184055
신대륙발견 님에 의해서 삭제되었습니다.
2024-10-08
27
글번호 184054
답변완료
지표 질문입니다
A 바닥~B 천정 10봉 상승
B 천정~C 바닥 10음 하락......10봉 상승=10음 하락
현재 이 차트 배치 상황에서
10 봉 상승=10 음 하락한 음봉 저가 위치를 표시하려면 어떤 수식을 만들어야 할까요?
감사합니다
2024-10-07
638
글번호 184046
답변완료
문의
input : len (21),offset(2);
var : centr(0),line1(0),line2(0);
centr=ema(close,len);
line1=centr+offset*atr(len);
line2=centr-offset*atr(len);
plot1(centr,"center",blue);
PLOT2(line1,"라인1");
PLOT3(line2,"라인2");
데이타2로 타주기를 사용하면 캔들이 듬성 듬성 생겨서 챠트를 못봅니다.
외부변수로 타주기를 정할수 있게부탁드립니다
2024-10-07
738
글번호 184045