커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4413
글번호 230811
답변완료
수식 부탁드립니다.
선물차트에서
현재지수가 281.45 라면
바로위 282.0 과 282.5
바로 아래 281.0 과 280.5
의 4개의 수평선을 그리는 수식을 부탁드립니다.
즉 현재 지수에서 가장 가까운 round number 지수와
그 바로 위와 아래로 0.5 포인트가 가감된 지수를 그리는 수식입니다.
2017-04-04
177
글번호 108457
답변완료
검색식 부탁
MFI지표가 다이버전스 일때 종목이 검색되는 검색식 부탁합니다.
2017-04-04
233
글번호 108456
답변완료
수식문의
아래 수식을 문의드립니다
1. 전일포지션 청산
0900~1200는 20/60 이평선크로스 매수/매도
1200~1530은 60/120 이평선크로스 매수/매도
(매수중이면 매도/매수청산부터 적용, 매도중이면 매수/매도청산부터 적용)
2. 이평선 골든크로스 매수, 이 후
. 직전 데드크로스 이후 저점 -1틱 청산 또는
. 데드크로스면 매수청산/신규매도
3. 이평선 크로스가 3회 나오면 4회째는 포지션 청산만 하고 이후 신호중지
4. 이평선 크로스 구간의 진폭이 15틱 이상 2회면 이 후 신호 중지
5. 이평선 크로스 매수신호(봉완성기준) 매5틱 마다 5틱, 10틱, 15틱... 텍스트 표시
감사합니다
2017-04-04
187
글번호 108455
답변완료
지표
안녕하세요?
고가 저가는 당일기준.
1고점에서 "일정가격(변수)"을 - 한 "가격라인"을 그리고, 화면에 그 값을 출력하고.
ex : "고가-1.25(변수)" 을 라인으로 그리고, 라인투틱아래에 그값을 출력
2 저점에서 "일정가격(변수)"을 + 한 "가격라인"을 그리고, 화면에 그 값을 출력하고 싶습니다.
ex : "저가+1.25(변수)" 을 라인그리고, 라인투틱 위에 그값을 출력
3 당일고점 - 현재가
당일저점 = 현재가 의 값을 화면우측 상단에 빨강색과 파란색으로 출력할 수 있도록 부탁드니다
감사합니다
2017-04-05
285
글번호 108454
leekss1 님에 의해서 삭제되었습니다.
2017-04-04
0
글번호 108453
답변완료
국선용 스토캐스틱 전략을 해선에서도 사용할 수 있도록 보완 부탁드립니다
국선처럼 해선에서도 청산에 대한 시간 제약이 없도록 그냥 청산만 될 수 있도록 청산수식을 수정 부탁드려요! 그리고 테스트를 해보니 매수는 되는데 매도신호는 안나오네요!
부탁드려요! 감사합니다!
Input : P1(50), P2(40), P3(10), stoploss(2);
Var1 = StochasticsK(p1, p2);
Var2 = StochasticsD(p1,p2,p3);
if Entriestoday(date) < 1then {
If CrossUp (Var1, 80) Then
buy();
IF CrossDown (Var1, 80) Then
Sell();
}
If CrossDown(Var1, Var2) Then
ExitLong();
If CrossUp(Var1, Var2) Then
ExitLong();
SetStopLoss(StopLoss);
SetStopEndofday(1450);
2017-04-04
199
글번호 108452
답변완료
자꾸 선언되지않은 ~~~이 사용되었다고 나오네요 T T
자꾸 에러가 생겨요! 한권으로 끝내는 시스템트레이딩 발췌본 입니다!
2가지 검토 좀 부탁드려요!
input: P1(20), p2(300), stoploss(1.3);
var: 단기지수이평(0), 장기지수리평(0);
단기지수이평 = Ema(C, p1);
장기지수이평 = Ema(C, p2);
#진입
if CrossUp(단기지수이평, 장기지수이평) then
buy("Buy");
if CrossDown(단기지수이평, 장기지수이평) then
sell("sell");
# 손절 청산
setstoploss(stoploss);
# 당일 청산
SetStopEndofday(1450);
----------------------------------------------------------------------
Input:period(14), adxrange(40);
var : PDI(0), ADXU(0), HADX(0), Fixadx(0);
PDI = DIPLUS(Period);
MDI = DiMinus(Period);
hadx = Highest(ADXV, DayIndex+1);
#진입
if date <> date[1] then fixadx = hadx[1];
If fixadx < adxrange amd ADXV > ADXV[2] then {
if PDI > MDI and C > DayOpen + 0.5 then buy();
if PDI < MDI and C < DayOpen - 0.5 then Sell();
}
#청산
if PDI < MDI then ExitLong();
if PDI > MDI then ExitShort();
SetStopLoss(1.5);
SetStopEndofday (1440);
2017-04-04
188
글번호 108451
답변완료
질문드립니다.
안녕하세요.
항상 수고가 많으십니다.
지난 번 질문에서 다음과 같은 답변을 받았습니다.
=> "참조데이터를 이용한 수식에서는 변수의 이전값 참조를 할때 어떤 데이터의 주기로 이전값을 가져올지 정해야 하므로 가급적 내장변수가 아닌 직접 변수를 만들고 선언시에 데이터번호를 지정해서 사용하셔야 합니다."
---- 질문입니다 ------------------------------------------
그렇다면, 아래와 같은 수식의 경우, var1과 var5를 어떻게 선언해야 되는지 궁금합니다.
--------------------------------------------------------------------------------
var : 외국인콜옵션(0, data2);
var : 개인콜옵션(0, data3);
if DayIndex >= 0 and stime < 151500 Then
{
외국인콜옵션 = data2(c);
개인콜옵션 = data3(c);
var1 = (외국인콜옵션 + 개인콜옵션); <<== var1을 어떻게 직접변수로 해야 하는지요?
외국인선물은 data2이고 개인선물은 data3인데요,
그렇다고 var : var1(0, data2, data3) 이렇게 할 수는 없을 것 같은데요...
var5 = ma(var1, 20); <<== 이 부분역시, var5를 어떻게 직접변수로 해야하는지요?
if var1 > 0 and var5 > var5[1] Then // var5 상승시 매수
{
buy("매수");
}
if var1 < 0 and var5 < var5[1] Then // var5 하락시 매도
{
sell("매도");
}
}
2017-04-04
179
글번호 108450
답변완료
부탁드립니다
아래수식에서의
지그재그 파동에서 값이표시된 전고점을 상승 돌파하고 계속가면 red색상말고 magenta색을 계속
값이표시된 전저점을 하락돌파하면 blue색상말고 cyan색으로 계속표시되는 수식을 부탁드립니다
전고점 전저점이 돌파되기전까지는 그전색상을 계속 유지되도록 부탁드립니다
아 그리고 추세선은 input에서 나오게 안나오게 선택할수있게 부탁드립니다
Input:length(12);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),TL1(0),TL2(0),TL3(0),Text1(0),처리구분(""),
TL_Val1(0),TL_Val2(0);
Array:고점[10,2](0),저점[10,2](0);
처리구분 = "";
If Highest(H,length) == H and lastHiVal <> H and Lowest(L,length) == L and lastLoVal <> L Then
{
If 저점[1,1] > L Then 처리구분 = "저점처리";
If 고점[1,1] < H Then 처리구분 = "고점처리";
}
Else If Highest(H,length) == H and lastHiVal <> H Then 처리구분 = "고점처리";
Else If Lowest(L,length) == L and lastLoVal <> L Then 처리구분 = "저점처리";
If 처리구분 == "고점처리" Then
{
lastHiVal = H;
If 고점[1,2] < 저점[1,2] Then
{
For j = 10 DownTo 2
{
고점[j,1] = 고점[j-1,1];
고점[j,2] = 고점[j-1,2];
}
}
If 고점[1,2] < 저점[1,2] or 고점[1,1] < H Then
{
고점[1,1] = H;
고점[1,2] = Index;
sBar = Index - 저점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 고점[3,1][1] < 고점[2,1][1] and 고점[2,1][1] > 고점[1,1][1] and 저점[2,1][1] < 저점[1,1][1] Then
TL_Delete(TL2);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetColor(TL1,red);
Text1 = Text_New(sDate[eBar],sTime[eBar],고점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(고점[1,1],2));
Text_SetStyle(Text1, 2, 1);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
TL_SetExtLeft(TL2,false);
TL_SetExtRight(TL2,false);
TL2 = TL_New(sDate[sBar],sTime[sBar],저점[2,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL2,BLUE);
TL_SetExtLeft(TL2,true);
TL_SetExtRight(TL2,true);
}
}
}
If 처리구분 == "저점처리" Then
{
lastLoVal = L;
If 저점[1,2] < 고점[1,2] Then
{
For j = 10 DownTo 2
{
저점[j,1] = 저점[j-1,1];
저점[j,2] = 저점[j-1,2];
}
}
If 저점[1,2] < 고점[1,2] or 저점[1,1] > L Then
{
저점[1,1] = L;
저점[1,2] = Index;
sBar = Index - 고점[1,2];
eBar = 0;
If TL_GetBeginDate(TL1) == sDate[sBar] and TL_GetBeginTime(TL1) == sTime[sBar] Then
{
TL_Delete(TL1);
Text_Delete(Text1);
If 저점[2,1][1] < 저점[1,1][1] and 저점[2,1][1] < 저점[3,1][1] and 고점[2,1][1] > 고점[1,1][1] Then
TL_Delete(TL3);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetColor(TL1,blue);
Text1 = Text_New(sDate[eBar],sTime[eBar],저점[1,1],NumToStr(abs(고점[1,1]-저점[1,1])/PriceScale,0)+NewLine+NumToStr(저점[1,1],2));
Text_SetStyle(Text1, 2, 0);
If 저점[2,1] < 저점[1,1] and 저점[2,1] < 저점[3,1] and 고점[2,1] > 고점[1,1] Then
{
sBar = Index - 고점[2,2];
eBar = Index - 고점[1,2];
TL_SetExtLeft(TL3,false);
TL_SetExtRight(TL3,false);
TL3 = TL_New(sDate[sBar],sTime[sBar],고점[2,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetColor(TL3,RED);
TL_SetExtLeft(TL3,true);
TL_SetExtRight(TL3,true);
}
}
}
TL_SetSize(TL1,3);
TL_SetSize(TL2,2);
TL_SetSize(TL3,2);
2017-04-04
207
글번호 108449