커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8143
글번호 230811
답변완료
문의드립니다.
안녕하세요, 아래식에서 문의드리고자 합니다.
진입수량이
수량1에서 100개 , 수량2에서 50개 지정하면ㅅ
실제 시스템에서
수량1 진입 100개
수량2 진입 150개 이렇게 되고있습니다'
수량1 진입 100개
수량2 진입 50개
할수있게 부탁드립니다.
감사합니다~
----------------------------------------------------
input : 저점날짜(20190619),저점가격(3275);
input : 고점날짜(20190620),고점가격(3380);
input : 시작일(20190620),시작시간(101000);
input : 진입비율1(65.2),수량1(100),청산비율1(40.0);
input : 진입비율2(70.0),수량2(50),청산비율2(45.0);
input : 진입비율3(80.0),수량3(30),청산비율3(60.0);
input : 손절비율(90);
var : HH(0),LL(0),newHigh(false),Tcond(false),Trade(false);
if sdate == 저점날짜 and sdate != sdate[1] Then
LL = 저점가격;
if sdate == 고점날짜 and sdate != sdate[1] Then
{
HH = 고점가격;
newHigh = true;
}
if sdate == 시작일 and stime > 시작시간 Then
Trade = true;
if sdate >= 고점날짜 and sdate >= 저점날짜 and HH > 0 and LL > 0 Then
Tcond = true;
if tcond == true then
{
if C <= HH*0.85 Then
newhigh = false;
if newhigh == true and H > HH Then
HH = H;
if Trade == true then
{
#첫진입(65.2%위에서 아래로 터치하면 즉시 매수)
if TotalTrades == 0 and MarketPosition == 0 and L > HH-(HH-LL)*(진입비율1/100) Then
buy("b1",atlimit,HH-(HH-LL)*(진입비율1/100),수량1);
#매수 후
if MarketPosition == 1 then
{
#두번째진입(70.0% 위에서 아래로 터치하면 즉시 추가매수)
if MaxEntries == 1 and L > HH-(HH-LL)*(진입비율2/100) Then
buy("b2",atlimit,HH-(HH-LL)*(진입비율2/100),수량2);
#세번째진입(80.0% 위에서 아래로 터치하면 즉시 추가매수)
if MaxEntries == 2 and L > HH-(HH-LL)*(진입비율3/100) Then
buy("b3",atlimit,HH-(HH-LL)*(진입비율3/100),수량3);
#첫 진입후 40%를 상회하면 즉시 전량청산
if MaxEntries == 1 Then
ExitLong("bx1",Atlimit,HH-(HH-LL)*(청산비율1/100));
#두번 진입후 45%를 상회하면 즉시 전량청산
if MaxEntries == 2 Then
ExitLong("bx2",Atlimit,HH-(HH-LL)*(청산비율2/100));
#세번 진입후 60%를 상회하면 즉시 전량청산
if MaxEntries == 3 Then
ExitLong("bx3",Atlimit,HH-(HH-LL)*(청산비율3/100));
#손절비율 이하로 하락시 즉시 전량청산
ExitLong("bx",AtStop,HH-(HH-LL)*(손절비율/100));
}
}
}
2019-06-25
370
글번호 129733
답변완료
수식 문의 드립니다....^^
수고가 많으시죠...^^
수식 문의 드립니다..
macd1(12,26,9) macd2 (24,52,18)
1 macd1의 오실레이터값이 macd2 오실레이터값을 상향돌파시에 매수
2 macd1의 오실레이터값이 macd2 오실레이터값을 하향돌파시에 매도
이상입니다...
수고하세요...
2019-06-25
375
글번호 129727
답변완료
수식을 알려주세요~~
아래식을 보면 30틱을 상승후에 매수가+3틱에서 청산하는 식으로 되어 있습니다.
그런데 제가 하고 싶은 식은
30틱넘으면 그 시점에서 -27하락할때 청산하는식으로
40틱이 넘으면 40-27 = 진입가+13틱에서 청산하고 싶어요...
그식와
그 반대로 될때의 식(매도진입) 을 알려주세요..
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*30 Then
ExitLong("상승후하락본전청산1",AtStop,EntryPrice+PriceScale*3);
if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*저점틱수1 Then
ExitLong("반등본전청산1",atlimit,lowest(l,BarsSinceEntry)+PriceScale*(저점틱수1-반등틱수1));
2019-06-25
391
글번호 129726
답변완료
수식 추가수정 부탁드립니다
아래수식을 yeslaaguage 편집기에 넣었더니 아래와 같이 메세지가 뜹니다
----------------------------------------
var : intrabarnum(0),intraentrycount(0);
If bdate <> bdate[1] Then
{
Var10 = index;
Var1 = 999;
Var2 = -999;
}
intrabarnum = index - Var10;
If Var1 == 999 and SwingHigh(1,high,3,3,7) != -1 Then
Var1 = SwingHigh(1,high,3,3,7);
If Var2 == -999 and SwingLow(1,low,3,3,7) != -1 Then
Var2 = SwingLow(1,low,3,3,7);
If var1 != 999 and Var1 > DayOpen Then
plot1(var1,"shv");
If var2 != -999 and Var2 < DayOpen Then
plot2(var2,"slv");
If I_MarketPosition == 1 Then
plot3((I_AvgEntryPrice - DayOpen )* 1.618 + I_AvgEntryPrice,"매수목표이익");
if I_MarketPosition == -1 Then
plot4((I_AvgEntryPrice - DayOpen )* 1.618 + I_AvgEntryPrice,"매도목표이익") ;
2
var : intrabarnum(0),intraentrycount(0);
If bdate <> bdate[1] Then
{
Var10 = index;
Var11 = TotalTrades;
Var1 = 999;
Var2 = -999;
}
intrabarnum = index - Var10;
intraentrycount = TotalTrades - Var11;
If Var1 == 999 and SwingHigh(1,high,3,3,7) != -1 Then
Var1 = SwingHigh(1,high,3,3,7);
If Var2 == -999 and SwingLow(1,low,3,3,7) != -1 Then
Var2 = SwingLow(1,low,3,3,7);
If stime < 150500 And intraentrycount < 1 Then
{
If MarketPosition <= 0 and var1 != 999 and Var1 > DayOpen Then
buy("shv", Atstop, Var1);
If MarketPosition >= 0 and var2 != -999 and Var2 < DayOpen Then
sell("slv", Atstop, Def, Var2) ;
}
If MarketPosition == 1 Then
exitlong("매수목표이익", Atlimit, ( entryprice - DayOpen )* 1.618 + entryprice);
If MarketPosition == -1 Then
exitshort("매도목표이익", Atlimit, ( entryprice - DayOpen )* 1.618 + entryprice) ;
즐거운 하루되세요
> 정밀타격수 님이 쓴 글입니다.
> 제목 : 신호검증부탁드립니다
> < 신호 >
If tdate<>tdate(1) Then
Var10 = barnum
Var1 = 999
Var2 = -999
End If
intrabarnum = barnum - Var10
If Var1 = 999 Then
Var1 = shv(1,high,3,3,intrabarnum)
End If
If Var2 = -999 Then
Var2 = slv(1,low,3,3,intrabarnum)
End If
If Var1 > opend Then
Call plots1("shv",Var1)
End If
If Var2 < opend Then
Call plots2("slv",Var2)
End If
If i_position = 1 Then
Call plots3("목표이익", (i_entryprice - opend )* 1.618 + i_entryprice)
Elseif i_position = -1 Then
Call plots4("목표이익", (i_entryprice - opend )* 1.618 + i_entryprice)
End If
<전략>
If tdate<>tdate(1) Then
Var10 = barnum
Var11 = currententrynum
Var1 = 999
Var2 = -999
End If
intrabarnum = barnum - Var10
intraentrycount = currententrynum - Var11
If Var1 = 999 Then
Var1 = shv(1,high,3,3,intrabarnum)
End If
If Var2 = -999 Then
Var2 = slv(1,low,3,3,intrabarnum)
End If
If ttime < 1505 And intraentrycount < 1 Then
If Var1 > opend Then
Call buy("shv", Atstop, Def, Var1)
End If
If Var2 < opend Then
Call sell("slv", Atstop, Def, Var2)
End If
End If
If position = 1 Then
Call exitlong("목표이익", Atlimit, ( entryprice - opend )* 1.618 + entryprice)
End If
If position = -1 Then
Call exitshort("목표이익", Atlimit, ( entryprice - opend )* 1.618 + entryprice)
End If
2019-06-25
442
글번호 129725
정밀타격수 님에 의해서 삭제되었습니다.
2019-06-25
0
글번호 129724
답변완료
문의 드립니다.
plot1(DayLow*1.30,"당일저가+30%");
plot2(DayLow*1.41,"당일저가+41%");
plot3(DayLow*1.61,"당일저가+61%");
plot4(DayHigh*0.75,"당일저가-25%");
plot5(DayHigh*0.63,"당일저가-37%");
plot6(DayHigh*0.43,"당일저가-57%");
해당 지표를 시스템으로 가공하고 싶습니다.
5이평이 상기지표의 plot1,2,3선을 하향 돌파 하면 매도
5이평이 상기지표의 plot4,5,6선을 상향 돌파 하면 매수
감사합니다
2019-06-25
397
글번호 129723
답변완료
문의드립니다.
전에 답변 받은 내용입니다.
아직 많이 부족해서 답변 주신 수식을 이해 못해서 문의드립니다.
<<< ?????? 이부분을 (2군데) 주석으로 자세히 설명부탁드립니다.
---------------------------------------------------------------
input : P(4);
var : cnt(0),Hv(0),Lv(0),avgv(0);
Array : WeekH[10](0),WeekL[10](0),WeekC[10](0);
if DayOfWeek(bdate) < DayOfWeek(bdate[1]) Then << 영업일이 다음주로 바뀌면
{
WeekH[0] = H;
WeekL[0] = L;
for cnt = 1 to 9
{
WeeKH[cnt] = WeekH[cnt-1][1]; << ???????
WeeKL[cnt] = WeekL[cnt-1][1];
WeeKC[cnt] = WeekC[cnt-1][1];
}
}
if WeekH[0] > 0 and H > WeekH[0] Then
WeekH[0] = H;
// ???????? >>> WeekH[0] > 0 의 조건은 필수 조건인가요? 음수가 나올 수 없을텐데요.
아니면 시가( O )를 말하는건가요?
if WeekL[0] > 0 and L < WeekL[0] Then
WeekL[0] = L;
WeekC[0] = c;
if WeekH[P] > 0 and WeekL[P] > 0 then
{
Hv = WeeKH[1];
Lv = WeeKL[1];
for cnt = 1 to P
{
if WeekH[cnt] > Hv Then
Hv = WeekH[cnt];
if WeekH[cnt] < Lv Then
Lv = WeekL[cnt];
}
avgv = (Hv+Lv+WeekC[1])/3;
plot1(avgv,"전주기준 4주평균");
}
----------------------------------------------------------
2019-06-25
410
글번호 129712
답변완료
수식 요청 드립니다.
Data1 :코스피 1분봉 차트 사용
진입조건
전일 OI(미결제) 보다 현재 OI(미결제) 증가하고 and Bids > asks 클때 and 코스피일봉차트macd > 0 then "buy"
*추가질문
highest 이용하거나 또 다른 함수를 이용해서 전 고점 을 찾을수 있습니까?
highest는 Length 기간 동안 value값 중 가장 큰 값 이라서 기간입력을 짧게 하면 전 고점을
제대로 파악할 수 없을수도 있겠다 싶어서 여쭤봅니다.
2019-06-25
388
글번호 129711
답변완료
부가기능중 자동 정정 기능에서..
부가기능중 자동 정정 기능에서 체결대기를 1-300초까지만 되나요?
0초로 설정은 안되나요??
항생에서는 시장가로 체결이 안되다 보니... 상대3호가로 해도 체결이 안되는 경우가 있어서
0초 만에 바로 상대 5호가로 하려고 하는데...
최소 시간이 1초인건가요?
2019-06-25
394
글번호 129710