커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
3269
글번호 230811
답변완료
수식전환부탁드립니다
아래 키움수식을 예스 수식으로 전환부탁드립니다.
<1>
A=(H(1)+L(1)+C(1))/3+H(1)-L(1);
B=(H(1)+L(1)+C(1))/3*2-L(1);
D=(H(1)+L(1)+C(1))/3;
E=(3*A+2*B+D)/6;
F=(A+2*B+3*D)/6;
e1=crossdown(c,E);
f1=crossup(c,F);
G=valuewhen(1, e1 or f1 ,o );
g1=crossup(c,G);
g2=crossdown(c,G);
valuewhen(1, g1 or g2, o)
<2>
A=Crossup(DiPLUS(p14),Adx(p14));
B=Crossdown(Diminus(p14),adx(p14));
D=hIGHEST(VALUEWHEN(1,A,o),p110);
E=Lowest(valuewhen(1,B,o),p110);
d1=crossup(C,D);
D2=crossdown(C,D);
e1=crossup(C,E);
E2=crossdown(C,E);
F=valuewhen(1,d1 or d2 or e1 or e2,o);
f1=crossup(c,f);
f2=crossdown(C,F);
VALUEWHEN(1,F1 or f2, o)
추가설정
P14/14 P110/110
2023-01-26
650
글번호 165738
답변완료
매수신호와 청산신호 동시 발생
안녕하세요,
다음의 수식에서 매수신호와 청산신호가 동시에 발생하는 오류가 생겨 문의드립니다.
//매수
If MarketPosition == 0 AND COND_B == 1 Then Buy("B1", OnClose, Def, 1);
//종가대비 100pt 하락시 추가매수, 이후 50pt씩 하락시 잔고 5개 될때까지 추가매수 반복
If IsEntryName("B1", 1) == True AND C < DayClosePrice - 100 Then Buy("B2", OnClose, Def, 1);
If IsEntryName("B2", 1) == True AND C < LatestEntryPrice(0) - 50 Then Buy("B3", OnClose, Def, 1);
If IsEntryName("B3", 1) == True AND C < LatestEntryPrice(0) - 50 Then Buy("B4", OnClose, Def, 1);
If IsEntryName("B4", 1) == True AND C < LatestEntryPrice(0) - 50 Then Buy("B5", OnClose, Def, 1);
//종가대비 100pt 상승시 매수청산 1개, 이후 50pt씩 오를 때 잔고 0 될때 까지 추가 매수청산
If C > EntryPrice(1) Then
Begin
If C > DayClosePrice + 100 Then ExitLong("EL1", OnClose, Def, "", 1, 1);
If CurrentContracts >= 2 AND C > ExitPrice(1) + 50 Then ExitLong("EL2", OnClose, Def, "", 1, 2);
End
//매도
If MarketPosition == 0 AND COND_B == -1 Then Sell("S1", OnClose, Def, 1);
//종가대비 100pt 상승시 추가매도, 이후 50pt씩 상승시 잔고 5개 될때까지 추가매도 반복
If IsEntryName("S1", 1) == True AND C > DayClosePrice + 100 Then Sell("S2", OnClose, Def, 1);
If IsEntryName("S2", 1) == True AND C > LatestEntryPrice(0) + 50 Then Sell("S3", OnClose, Def, 1);
If IsEntryName("S3", 1) == True AND C > LatestEntryPrice(0) + 50 Then Sell("S4", OnClose, Def, 1);
If IsEntryName("S4", 1) == True AND C > LatestEntryPrice(0) + 50 Then Sell("S5", OnClose, Def, 1);
//종가대비 100pt 하락시 매도청산, 이후 50pt씩 하락시 잔고 0 될때까지 매도청산
If C < EntryPrice(1) Then
Begin
If C < DayClosePrice - 100 Then ExitShort("ES1", OnClose, Def, "", 1, 1);
If CurrentContracts >= 2 AND C < ExitPrice(1) - 50 Then ExitShort("ES2", OnClose, Def, "", 1, 2);
End
2023-01-26
872
글번호 165737
답변완료
DEMA 관련
한투의 DEMA 수식설명이 아래글에서 작성해 주신 DEMA 수식과 다른 부분이 있을까요? 만약 있다면 한투 DEMA 수식설명 기준으로 부탁 드립니다.
[한투 DEMA 수식설명]
DEMA(2중 지수이동평균) = EMA의 EMA
EMA = {2 / ( n + 1)} X (당일종가 - 전일 EMA)+ 전일 EMA
n = 9일(기본값)
[이전 DEMA 관련 수식]
INPUTS: LENGTH1(9),P1(5),P2(200);
var : mav1(0),mav2(0),DEMA1(0);
var1= EMA(C,LENGTH1);
value1= EMA(EMa(C,LENGTH1),LENGTH1);
DEMA1 = var1 * 2 - value1;
2023-01-26
806
글번호 165735
답변완료
문의 드립니다.
아래 조건으로 수식 부탁 드립니다.
[진입조건(and)]
1) 종가>200일이평선
2) 종가>시가>DEMA(9)
3) 5일이평선>DEMA(9)
[청산조건(and)]
1) DEMA(9)>시가>종가
2023-01-26
995
글번호 165730
답변완료
수정부탁드립니다
input : 기간(100);
var:선1l크기(0), hTL2 (0);
var1 = MA(c,기간);
#전봉대비 이평이 상승할때 이평값
if var1>var1[1] Then
value1 = var1;
hTL2 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetSize(hTL2, 선1l크기);
#전봉대비 이평이 하락할때 이평값
if var1<var1[1] Then
value2 = var1;
hTL2 = TL_New(sDate,sTime,0,sDate,sTime,99999999);
TL_SetSize(hTL2, 선1l크기);
수직선 부탁드립니다
2023-01-26
835
글번호 165728
답변완료
문의 드립니다.
아래에서 손절 부분은 그대로 두고 청산하는 부분 삭제 부탁드립니다.
청산은 수동으로 할까합니다.
if MarketPosition <= 0 and CrossUp(C,DayHigh(1)) Then
Buy("b");
if MarketPosition == 1 Then
{
if CrossDown(C,DayHigh(1)) Then
ExitLong("bx");
ExitLong("bp",AtLimit,DayHigh(1)+PriceScale*2);
}
if MarketPosition >= 0 and CrossDown(C,DayLow(1)) Then
Sell("s");
if MarketPosition == -1 Then
{
if CrossUp(C,DayLow(1)) Then
ExitShort("sx");
ExitShort("sp",AtLimit,DayLow(1)-PriceScale*2);
}
2023-01-26
1013
글번호 165726
답변완료
문의드립니다.
수고많으십니다.
5, 20선 골든/데드 선물매메어서
1.
외국인순매수금액을 참조2로해서 골든/데드이고 참고2가 50000 이상/이하일때 신호가 나오게 만들고 싶습니다.
이때 BuyF > 50000 이렇게 and 조건으로 넣었는데 작동을 안하는듯해서 확인 부탁드립니다.
위에는 아래처럼 넣었습니다.
var : BuyF(0,Data2);
BuyF = Data2(C);
2. 추가로 골든/데드를 만족하면 매수/매도인데 외국인순매수금액이 10000 이하/이상이면 매수/매도가 안나오게하는 수식도 부탁드립니다.
2023-01-26
813
글번호 165716
러블리 님에 의해서 삭제되었습니다.
2023-01-26
25
글번호 165713
답변완료
재문의 드립니다.
안녕하세요.
어제 올려주신 식을 적용해 보니 잘안되어서 다시 문의 드립니다.
-----------------------------------------------------------------
아래 수식은 몇일전에 올려 주신 수식인데
스토캐스틱과 이평을 합성된것이 아니라
(이평 골드시에 매수 데드시에 청산) 처럼 이평 1개만으로 만든것과 같습니다.
스토캐스틱이 crossup 상태이던, crossdown 상태이던 상관없이
이평 20 이 60 이평을 돌파하면은 매수 나오게 하고 20 이평이 60 이평을
crossdown 하게 되면은 청산되는 식입니다.
---------------------------------------------------------
아래 조건과 같이 바꾸어 주시면은 감사하겠습니다.
스토캐스틱 500,300,300 이 crossup 상태 일때에만, 20 이평과 60 이평이
골드시에 매수 하고, 20 이평과 60 이평이 crossdown 일때는 청산되게 하고.
스토캐스틱이 crossdown 상태 일때에는 이평 20 과 이평 60 이 crossUp 되도
신규로 매수 신호가 나오지 않게 하고, 이미 매수해 놓은것은 이평 20 이 60을 하향돌파
할때에 청산 신호가 나오게 하는식을 만들으 주시면은 감사하겠습니다.
감사합니다.
----------------------------------------------------------------------
Input : Period(500), Period1(300), Period2(300),P1(20),P2(60);
var : T(0);
value1 = StochasticsK(Period,Period1);
value2 = StochasticsD(Period,Period1,Period2);
var1 = ma(C,P1);
Var2 = ma(C,P2);
If CrossUP(value1, value2) Then
{
T = 1;
}
# 매도/매수청산
If CrossDown(value1, value2) and CrossDown(value3, value4) Then
{
T = -1;
}
if T == 1 Then
{
if CrossUp(var1,Var2) Then
Buy();
if CrossDown(var1,Var2) Then
ExitLong();
}
2023-01-25
590
글번호 165711