커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1710
글번호 230811
답변완료
이평선 수식 변경 부탁드려요
input : P(5);
var : cnt(0),sum(0),mav(0);
sum = 0;
For cnt = 0 to P-1
{
sum = sum + DayClose(cnt);
}
mav = sum/P;
Plot1(mav,"일봉이평");
여기서
var1 = accumn(m,5)/accumn(v,5);
var1 의 값을 분봉상에 넣고 싶은데 부탁드려요
2021-12-13
721
글번호 154452
답변완료
문의
각 수치에서 3% 오차범위내에서 팝업과 알람이 울려야되는데
수치는 정확하게 맞는데 팝업도 알람도 안 울려서 뭐가 문제인지 모르겠어요.
₩도 다시 입력해봤지만 안 되네요.
다시 한 번 확인 부탁드려요.
1.월고월저기준가
input : 입력일(20211210),Per(3);
var : 기준가(0,Data2),월고(0,Data2),월저(0,Data2);
var : cond1(False,Data2),cond2(False,Data2),cond3(False,Data2);
if data2(sdate == 입력일) Then
기준가 = data2(lowD(0));
if data2(sdate >= 입력일) Then
{
if Data2(월고 == 0 or (월고 > 0 and H > 월고)) Then
월고 = data2(h);
if data2(월저 == 0 or (월저 > 0 and L < 월저)) Then
월저 = data2(l);
}
if 기준가 > 0 Then
Plot1(기준가);
if 월고 > 0 Then
Plot2(월고);
if 월저 > 0 Then
Plot3(월저);
Cond1 = Data2(C<=기준가*(1+Per/100) and C >= 기준가*(1-Per/100));
Cond2 = Data2(C<=월고*(1+Per/100) and C >= 월고*(1-Per/100));
Cond3 = Data2(C<=월저*(1+Per/100) and C >= 월저*(1-Per/100));
if cond1 == true and cond1[1] == False Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩accept.wav");
Alert("Cond1 조건충족");
}
if cond2 == true and cond2[1] == False Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩accept.wav");
Alert("Cond2 조건충족");
}
if cond3 == true and cond3[1] == False Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩accept.wav");
Alert("Cond3 조건충족");
}
2 특정일저가
input : 날짜(20211210),Per1(3);
var : D2L(0,data2),scond1(False,Data2);
if data2(sdate == 날짜) Then
{
D2L = data2(LowD(0));
}
plot1(D2L);
scond1 = Data2(C) <= D2L*(1+Per1/100) and Data2(C) >= D2L*(1-Per1/100);
if scond1 == true and scond1[1] == true Then
{
PlaySound("C:₩예스트레이더₩data₩Sound₩accept.wav");
Alert("scond1 조건충족");
}
2021-12-13
724
글번호 154451
helpme 님에 의해서 삭제되었습니다.
2021-12-13
6
글번호 154450
답변완료
지수갭4(data1 옵션사용)
아래식은
data1에 선물을 사용할 때 수식입니다.
data1을 옵션을 사용하면 지수갭 산출을 위해서
data2는 kospi200지수를
data3에 국내선물을 배치해야 합니다.
위 내용에 따른 수식 변경을 요청드립니다.
***************************************************************************
input:만기기준일(0);
Var : Year(0),Month(0),ndate1(0),ndate2(0);
var : cnt(0),count1(0),count2(0);
var : XD1(0),XD2(0),Xdate(0),remain(0);
Year = Floor(sDate / 10000)*10000;
month = Floor(FracPortion(sdate/10000)*100)*100;
ndate1 = year+month+1;
if Month+100 <= 1200 Then
ndate2 = year+(month+100)+1;
Else
ndate2 = (year+10000)+100+1;
count1 = 0;
count2 = 0;
for cnt = 0 to 15
{
if dayofweek(ndate1+cnt) == 4 Then
{
count1 = count1+1;
if count1 == 2 Then
{
XD1 = ndate1+cnt;
}
}
if dayofweek(ndate2+cnt) == 4 Then
{
count2 = count2+1;
if count2 == 2 Then
{
XD2 = nDate2+cnt;
}
}
}
if sDate <= XD1 Then
{
Xdate = XD1;
}
Else
{
Xdate = XD2;
}
if Xdate > 0 Then
{
remain = DateToJulian(Xdate)-DateToJulian(sDate);
}
input: 지수갭1(10),지수갭2(-10);
var : MM(0,Data2),nday(0,Data2),week(0,data2);
var : X(False,Data2),cond(False,Data2);
var : DD(0,Data2),C2(0,Data2);
mm = data2(int(date/100)-int(date/10000)*100);
nday = data2(date - int(date/100)*100);
Week = data2(DayOfWeek(date));
#옵션만기일
if (nday >= 8 and nday <= 14 and week == 4) then
X = true;
Else
X = False;
if data2(bdate != Bdate[1]) Then
{
if X == false and X[1] == true Then
{
C2 = 0;
cond = true;
dd = 0;
}
if cond ==true Then
dd = dd+1;
}
#만기다음날 Data2 종가
if cond == true and dd == 1 Then
C2 = data2(C);
if remain == 만기기준일 then
{
if dd > 1 and C2 > 0 and 지수갭1 > Data2(Opend(0)-C2) and Data2(Opend(0)-C2) > 지수갭2 and c > dayopen + 0.05 Then
Buy();
}
2021-12-16
796
글번호 154449
답변완료
수고하십니다
수고하십니다
국내선물 분봉차트에서 갭보정을 한후
전전일고가와 전일저가를 연결
전일저가와 당일고가 연결
(일간순차적으로 고가와저가 저가와고가)
이전 일자도 순차적으로 파동을 만든 후
파동(n 파동수) 진폭 평균을 내고
파동 고가나 저가에 50%100%150%200%250%
5줄의 수평선을 지수와 함께 요청 합니다
2021-12-13
707
글번호 154446
답변완료
문의 드립니다.
아래 로직에서 매매 수량을 추가 하고 싶습니다.
현재 한개인데 2개로 부탁드립니다.
Input : Period(20), MultiD(2);
var : BBmd(0),BBup(0),BBdn(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
if C > BBmd and crossup(C[1],BBmd[1]) Then
buy();
input : P(20);
var1 = ma(C,P);
if CrossDown(c,var1) Then
ExitLong();
2021-12-13
634
글번호 154442
답변완료
Re : data2 선물신호로 data1 옵션거래시에data2 선물 손절할 때
아래식으로 수식을 해봤는데도, 여전히 data2에서 손절이 나갔는데.. data1 옵션에서는 손절이 안되네요.. ㅠㅠ
다시 한번 검토 부탁드립니다..ㅠㅠ
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : data2 선물신호로 data1 옵션 거래시에data2 선물 손절할 때 옵션에서
> 안녕하세요
예스스탁입니다.
1
EntryPrice는 진입가 입니다.
실제 주문이 나간 종목의 값입니다.
진입시점의 data2의 종가는 별도로 저장해서 이용하셔야 합니다.
2
진입식의 data2((1))는 값을 삭제하신것 같아 그대로 두었습니다.
3
var : C2(0,Data1);
if MarketPosition <= 0 and Var5 > data2((1))+q7 Then
{
buy("B0");
C2 = Data2(c);#매수조건시 data2의 종가
}
if EntryName() == "BO" and MarketPosition== 1 and
C2 -data2(c)<=-1 then ExitLong("EB0") ;
즐거운 하루되세요
> 룽퐈 님이 쓴 글입니다.
> 제목 : data2 선물신호로 data1 옵션 거래시에data2 선물 손절할 때 옵션에서 손절을
> 안녕하세요.
data2 선물신호로 data1 옵션 거래를 할 때 다른 신호는 이상이 없는데, 손절 신호가 이상합니다.
원하는 식은 어떤 조건이 주어지고 data2인 선물에서 매수하는 조건이 완성되면, 옵션인 data1에서 매수를 하는 것까지는 되는데, 문제는 data2인 선물에서 진입한 후 선물값에서 1이상 손절시, data1인 옵션에서 손절이 나가게끔 식을 세웠는데, 실제로는 이상하게 되네요..ㅠㅠ
제가 만든 식은 아래와 같습니다.
완전히 다른 식이어도 좋으니, 선물 손절시 옵션에서 손절이 나갈수 있는 식을 만들어 주셨으면 고맙겠습니다.
예)
if Var5>data2((1))+q7
Then buy("B0");
if (EntryName()=="BO" and MarketPosition== 1) and Data2(EntryPrice) -data2(c)<=-1 then ExitLong("EB0") ;
2021-12-13
652
글번호 154440
답변완료
and가 작동이 안됩니다.
아래 식에서 and가 작동하지 않네요.
어찌된 일인가요?
and가 안들어가면 모두 작동이 잘됩니다.
if 사자 > 0.55 and Lowest(L,5) < C Then
begin
Plot1(c-0.3,"매수");
end
else
if 팔자 > 0.55 and Highest(H,5) > c Then
begin
Plot2(c+0.3,"매도");
end
else
NoPlot(1);
2021-12-13
579
글번호 154439
답변완료
문의합니다
문의합니다
CrossUp(mav500,mav1000) and mav50[2] < mav50[1] and mav50[1] < mav50 일 때 진입을 할 경우
여기서 진입범위를 설정하고자 합니다
즉 CrossUp이후 100캔들 내에서만 수식을 적용하고자 합니다
수식을 어떻게 표현하나요
2021-12-13
569
글번호 154431