커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4503
글번호 230811
답변완료
61750 재질문 달았습니다 (내용무)
''''''
2019-03-15
301
글번호 127121
답변완료
함수요청
안녕하세요?
아래의 두 스크립트를 수정요청드립니다.
참조종목을 월물만 달리하여 매매하고자 합니다.
참조종목과 동일한 신호 발생시 기본종목에 신호를 생성하게 하고자 합니다.
월물만 다르게 하고 주기 및 장운영시간을 동일합니다.
[전략A]
if sdate != sdate[1] Then
SetStopEndofday(053000);
if bdate != bdate[1] then
{
SetStopEndofday(0);
if O > C[1] Then
buy("b",AtMarket);
if O < C[1] Then
sell("s",AtMarket);
}
[전략B]
Var : st(0), et(0),year(0);
var : V1(0),V2(0),v99(0);
Year = Floor(sDate / 10000)*10000;
V1 = Dayofweek((10000 * Year) + (100 * 3) + 1);
If V1 == 0 Then
Value2 = 8;
Else
Value2 = 15 - V1; // 3월 두번째 일요일 날짜
V2 = Dayofweek((10000 * Year) + (100 * 11) + 1);
If V2 == 0 Then
Value4 = 1;
Else
value4 = 8 - V2; // 11월 첫번째 일요일 날짜
If sdate > (10000 * Year) + (100 * 3) + value2
And sdate < (10000 * Year) + (100 * 11) + value4 Then
Begin
st = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
st = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
condition1 = (IntPortion(stime/10000) > IntPortion(et/10000)
And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1];
/////////////////////////////////////////////////////////////////
If condition1 Then
v99 = 0;
Vars : SP(0);
SP = MarketPosition;
If SP[1] <> SP And SP <> 0 Then
v99 = v99 + 1;
Vars : pDayClose(0), vDayOpen(0);
pDayClose = DayClose(1);
vDayOpen = DayOpen(0);
If v99 == 0 Then
Begin
If pDayClose < vDayOpen Then Buy("B", atmarket);
Else IF pDayClose > vDayOpen Then Sell("S", atmarket);
End;
SetStopEndofday(153000);
2019-03-15
313
글번호 127120
답변완료
수식 문의 드립니다.
수고하십니다.
당일 청산된 연속 손실 횟수가 2회이면 진입 제한, 당일 청산된 수익이 3Point (크다)이면 진입 제한 수식이 어떻게 되나요?
2019-03-15
306
글번호 127119
답변완료
수식 추가보완 부탁드립니다.
안녕하세요?
아래의 수식에서 추가할점 보완 부탁드립니다.
진입조건을 추가하고싶습니다.
*수정후 원하는 진입조건
1. 몸통길이가 (외부변수)틱 양봉이 연달아서 (외부변수)번 발생 이후,
몸통길이(외부변수)틱 음봉이 연달아서 (외부변수)번 나올시 매도
2. 몸통길이가 (외부변수)틱 음봉이 연달아서 (외부변수)번 발생 이후,
몸통길이(외부변수)틱 양봉이 연달아서 (외부변수)번 나올시 매수
----------------------------------------------------------------------------------------
[수정전 현재의 조건들과 수식입니다]
*진입조건
1. 몸통길이가 (외부변수)틱 양봉이 연달아서 (외부변수)번 발생 이후,
몸통길이(외부변수)틱 음봉이 나올시 매도
2. 몸통길이가 (외부변수)틱 음봉이 연달아서 (외부변수)번 발생 이후,
몸통길이(외부변수)틱 양봉이 나올시 매수
* 청산조건
1. 익절 (외부변수)틱
2. 손절 (외부변수)틱
* 다음매매 진입 조건
먼저 진입한 포지션이 손,익절 완성후 재진입
input : 매도양봉길이(5),매도음봉길이(5),매도양봉갯수(5);
input : 매수양봉길이(5),매수음봉길이(5),매수음봉갯수(5);
input : 손절틱수(10),익절틱수(10);
var : idx(0);
if bdate != bdate[1] Then
idx = 0;
Else
idx = idx+1;
if MarketPosition == 0 and
idx >= 매도양봉갯수+1 and
countif(C==O+PriceScale*매도양봉길이,매도양봉갯수)[1] == 매도양봉갯수 and
C == O-PriceScale*매도음봉길이 Then
sell();
if MarketPosition == 0 and
idx >= 매수음봉갯수+1 and
countif(C==O-PriceScale*매수음봉길이,매수음봉갯수)[1] == 매수음봉갯수 and
C == O+PriceScale*매수양봉길이 Then
Buy();
SetStopLoss(PriceScale*손절틱수,PointStop);
SetStopProfittarget(PriceScale*익절틱수,PointStop);
2019-03-15
307
글번호 127115
답변완료
검색식 부탁드립니다.
안녕하세요
일봉에서 볼린저밴드 20,2 상단선이 엔벨로프선 20,10 상단선을 골든크로스하는 조건입니다.
조건검색식이 가능할가요?
2019-03-15
339
글번호 127112
답변완료
선물만기일
안녕하세요?
선물 만기일 이면 1
아니면 0 을 리턴하는 함수를 부탁합니다
감사합니다.
2019-03-15
335
글번호 127109
답변완료
지표 수정 추가 부탁드립니다
1. 흰선을 안보이게 했으면 합니다
2.빨간선과 파란선에 수치가 흰색으로 표시됬으면합니다 (글자크기 조절하수 있었으면 합니다)
3. 빨간선과 파란선이 굵은 점선으로 표시됬으면 합니다.
4.당일에만 지표가 나왔으면 합니다 (4번 수식은 표시 부탁드립니다. 사용후 4번수식을 지울수 있읍니다)
Input:length(6);
Var:j(0),lastHiVal(0),lastLoVal(0),sBar(0),eBar(0),
TL1(0),처리구분(""),T(0),TL2(0),TL3(0);
var : hh(0),ll(0),ii(0),diff(0),tL31(0),tl21(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
{
T = 1;
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);
TL_Delete(TL2);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],저점[1,1],sDate[eBar],sTime[eBar],고점[1,1]);
TL_SetExtRight(TL2,False);
TL2 = TL_New(sDate[1],sTime[1],고점[1,1],sdate,sTime,고점[1,1]);
TL_SetColor(TL2,RED);
TL_SetSize(TL2,3);
If 고점[3,1] < 고점[2,1] and 고점[2,1] > 고점[1,1] and 저점[2,1] < 저점[1,1] Then
{
sBar = Index - 저점[2,2];
eBar = Index - 저점[1,2];
}
}
}
If 처리구분 == "저점처리" Then
{
T = -1;
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);
TL_Delete(TL3);
}
TL1 = TL_New(sDate[sBar],sTime[sBar],고점[1,1],sDate[eBar],sTime[eBar],저점[1,1]);
TL_SetExtRight(TL3,False);
TL3 = TL_New(sDate[1],sTime[1],저점[1,1],sdate,sTime,저점[1,1]);
TL_SetColor(TL3,BLUE);
TL_SetSize(TL3,3);
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_SetSize(TL1,1);
TL_SetColor(TL1,white);
TL_SetEnd(TL2,sdate,stime,고점[1,1]);
TL_SetEnd(TL3,sdate,stime,저점[1,1]);
TL_SetExtRight(TL2,true);
TL_SetExtRight(TL3,true);
if T != T[1] then
{
if T == 1 Then
{
TL_SetExtRight(TL21,false);
TL21 = TL2[1];
TL_SetExtRight(TL21,true);
HH = 고점[2,1];
LL = 저점[1,1];
ii = index-고점[2,2];
diff = abs(HH-LL);
}
Else
{
TL_SetExtRight(TL31,false);
TL31 = TL3[1];
TL_SetExtRight(TL31,true);
HH = 고점[1,1];
LL = 저점[2,1];
ii = index-저점[2,2];
diff = abs(HH-LL);
}
}
2019-03-15
297
글번호 127102
카카 님에 의해서 삭제되었습니다.
2019-03-15
10
글번호 127100
답변완료
함수
안녕하세요
급히 질문올립니다
data2의 당일 현재 상승율을 표현하는 함수식 수정부탁드립니다
rate2 = data2((C - dayopen[0]/C)*100);
2019-03-15
121
글번호 127099