커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6123
글번호 230811
답변완료
지표부탁드립니다
스톡케스틱+rsi 부탁드립니다.
항상 감사합니다.
2022-09-29
894
글번호 162586
배움이 님에 의해서 삭제되었습니다.
2022-09-29
66
글번호 162585
답변완료
파라볼릭과5분과 5이평선조합
Input : Af(0.02), MaxAf(0.2);
Var : direction(0), sar1(0), afval(0), ep(0),lowval(0),highval(0),count(0);
if count == 0 then //변수들의 초기화
{
highval = High;
lowval = Low;
direction = 0;
sar1 = 0;
afval = 0;
ep = 0;
count = 1;
}
if(ep != 0 ) then // 추세가 진행중
{
if(direction == 1) then // 상승추세이면
{
ep = highval;
sar1 = sar1 + afval*(ep-sar1); // 상승추세에서 SAR값 계산
if(high > highval) then // 신고가 발생
{
highval = high;
afval = afval+Af; // 상승추세에서 신고가가 발생했으므로 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
if( low < sar1) then // 추세변경(상승->하락)
{ // 다음 SAR값을 계산할 때 필요한 전SAR값은 하락추세로 전환되기 직전의
direction = -1; // 최고가를 사용하므로 sar1 = ep (ep에는 highval 들어있다)
sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화
afval = 0;
ep = 0;
lowval = low;
}
}
else // 하락 추세
{
ep = lowval; // 하락추세에서는 EP로 저가 사용
sar1 = sar1 + afval*(ep-sar1);
if(low < lowval) then // 신저가 발생
{
lowval = low;
afval = afval + Af;
if( afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
if(high > sar1) then // 추세 변경(하락->상승)
{ // 다음 SAR 값을 계산할 때 필요한 전SAR값은 상승추세로 전환되기 직전의
direction = 1; // 최저가를 사용하므로 sar1 = ep (ep에는 lowval값이 들어있다)
sar1 = ep; // 추세가 변경되었으므로 가속변수 및 EP, highval 초기화
afval = 0;
ep = 0;
highval = high;
}
}
}
else if(sar1 != 0 && ep == 0) then //추세가 변경된후 첫번째 SAR계산
{
if(direction == 1) then // 상승 추세
{
ep = highval; // 상승추세에서는 신고가를 EP로 사용하므로
afval = Af; // 가속변수의 초기값인 AF(0.02) 적용
sar1 = sar1 + afval*(ep-sar1);
if ( high > highval) then // 신고가가 발생
{
Highval = high;
afval = afval + Af; // 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
}
else // 하락추세
{
ep = lowval;
afval = Af; // 가속변수의 초기값인 AF(0.02) 적용
sar1 = sar1 + afval*(ep-sar1);// 하락추세에서 SAR 계산
if(low < lowval) then // 신저가 발생
{
lowval = low;
afval = afval + Af; // 가속변수 증가
if(afval >= MaxAf) then // 가속변수가 최대값과의 비교 (가속변수는 최대 가속값 보다 클 수 없다)
afval = MaxAf;
}
}
}
else // SAR 첨 시작
{
if direction == 0 then // 추세가 없으므로
{
if(c > c[1]) then // 상승추세로 시작
direction = 1;
else if( c < c[1]) then // 하락추세로 시작
direction = -1;
}
else if direction == 1 then // 상승추세(추세변경이 일어날 경우 SAR 계산하기 시작)
{
if(c < c[1]) then // 추세 변경 (상승->하락) SAR 계산하기 시작
{
direction = -1;
sar1 = highval; // 하락추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최고가를 사용하므로
}
}
else if direction == -1 then // 하락추세(추세변경이 일어날 경우 SAR 계산하기 시작)
{
if( c > c[1]) then // 추세 변경 (하락->상승) SAR 계산하기 시작
{
direction = 1;
sar1 = lowval; // 상승추세로 전환시 다음 SAR값을 계산할 때 필요한 전 SAR값은 추세직전의 최저가를 사용하므로
}
}
lowval = min(low, lowval); // 추세 변경시 전 SAR값으로 최고가나 최저가가 필요하므로
highval = max(high,highval); // low, high를 전의 최고가, 최저가와 비교하여 최고가, 최저가를 저장
}
//처음 시작할 때 다음 추세 변경이 일어날 때까지 SAR는 invalid
#if(sar1 != 0) then
# User_Func_Sar = sar1;
plot1(sar1);
INPUTS: LENGTH(3);
VARS: TEMA1(0);
TEMA1 = WMA(c,LENGTH);
var1 = iff(TEMA1<TEMA1[1],TEMA1,0);
var2 = iff(TEMA1>TEMA1[1],TEMA1,0);
plot1(var1,"1",iff(trend1 == 1, MAGENTA, Blue));
plot2(var2,"1",iff(trend1 == 1, MAGENTA, Blue));
INPUTS: LENGTH1(10);
VARS: TEMA11(0);
TEMA1 = WMA(c,LENGTH1);
Var3 = iff(TEMA11<TEMA11[1],TEMA11,0);
var4 = iff(TEMA11>TEMA11[1],TEMA11,0);
plot3(var3,"1",iff(trend1 == 1, MAGENTA, Blue));
plot4(var4,"1",iff(trend1 == 1, MAGENTA, Blue));
INPUTS: LENGTH11(20);
VARS: TEMA12(0);
TEMA1 = WMA(c,LENGTH11);
Var13 = iff(TEMA12<TEMA12[1],TEMA12,0);
var14 = iff(TEMA12>TEMA12[1],TEMA12,0);
plot13(var13,"1",iff(trend1 == 1, MAGENTA, Blue));
plot14(var14,"1",iff(trend1 == 1, MAGENTA, Blue));
INPUTS: LENGTH13(30);
VARS: TEMA13(0);
TEMA1 = WMA(c,LENGTH13);
Var23 = iff(TEMA13<TEMA13[1],TEMA13,0);
var24 = iff(TEMA13>TEMA13[1],TEMA13,0);
plot13(var23,"1",iff(trend1 == 1, MAGENTA, Blue));
plot14(var24,"1",iff(trend1 == 1, MAGENTA, Blue));
INPUTS: LENGTH14(60);
VARS: TEMA14(0);
TEMA1 = WMA(c,LENGTH14);
Var33 = iff(TEMA14<TEMA14[1],TEMA14,0);
var34 = iff(TEMA14>TEMA14[1],TEMA14,0);
plot13(var33,"1",iff(trend1 == 1, MAGENTA, Blue));
plot14(var34,"1",iff(trend1 == 1, MAGENTA, Blue));
의 stime sdate 합성 data 를 수치표시 직선표시 부탁드립니다.
2022-09-28
1052
글번호 162584
답변완료
다른 보조지표에도 세로선 추가
Input : shortPeriod(60), longPeriod(130), Period(30),val(-0.075),Value2(0.00);
Var : MACDv(0), MACDsig(0),T(0),tl1(0),tl2(0),굵기(1);
var : count(0);
MACDv = MACD(shortPeriod, longPeriod);
MACDsig = ma(MACDv,Period);
if macdsig > macdsig [1] Then
T = 1;
if macdsig <macdsig [1] Then
T = -1;
Plot1(macdsig ,"macdsig ",IFF(T == 1,Red,Blue));
Plot2(-0.075);
plot3(-0.1);
PlotBaseLine1(0, "기준선1");
if CrossDown(MACDsig, val) Then
{
Condition1 = False;
count = 0;
}
if T == 1 and T != T[1] and MACDsig <= val Then
{
Condition1 = true;
TL1 = TL_New_Self(sDate,sTime,-999,sDate,sTime,99999);
TL_SetColor(TL1,Magenta);
TL_SetSize(TL1,6);
TL1 = TL_New(sDate,sTime,-999,sDate,sTime,99999);
TL_SetColor(TL1,Lime);
TL_SetSize(TL1,1);
}
if T == -1 and T != T[1] and macdsig > Value2 Then
{
count = count+1;
if count == 1 Then
{
TL2 = TL_New_Self(sDate,sTime,-999,sDate,sTime,99999);
TL_SetColor(TL2,Blue);
TL_SetSize(TL2,0.5);
TL2 = TL_New(sDate,sTime,-999,sDate,sTime,99999);
TL_SetColor(TL2,Blue);
TL_SetSize(TL2,0.5);
}
}
현재는 본 지표와 차트에 별도 설정으로 세로선이 그어지는데,여기에 다른 지표를 추가했을때, 추가한 다른 모든 지표에도 별도로 세로선.별도 설정 안되면 전체 단일 세로선. 감사합니다.
2022-09-28
1161
글번호 162583
답변완료
예스트레이더코인에서 Print 함수가 동작하지 않습니다
안녕하세요,
예스트레이더코인에서 1000틱봉 차트로 전략을 실행하는데요, 전략 안에 아래와 같은 코드가 있습니다:
Print("C:₩Users₩gogo9th₩Desktop₩test2.txt", "해외");
Print("C:₩Users₩gogo9th₩Desktop₩test2.txt", "국내");
하지만 해당 test2.txt 파일이 생성되지 않습니다. 예스트레이더코인에서는 파일 생성이 불가한 것인가요?
2022-09-28
1217
글번호 162582
답변완료
조건부지정가2
안녕하세요 개발자님. 이전 답변에 대한 재질문 입니다.
만약 설정창에 조건부지정가에 대한 내용이 없으면 적용 안되는 것인가요?
코스피 선물, 코스닥 선물에는 조건부지정가가 없네요..
항상 도움주셔서 감사합니다.
///////////////////////////////////////////////////////
안녕하세요
예스스탁입니다.
수식안에서 실제 주문가격 지정하는 옵션이 없습니다.
신호발생시 주문가격은 모두 설정창에서만 지정하게 되어 있습니다.
즐거운 하루되세요
> 히익 님이 쓴 글입니다.
> 제목 : 조건부 지정가
> 안녕하세요 개발자님.
함수나 시스템 설정안의 매매가격 설정으로 조건부지정가 주문을 할 수 있는 방법이 있을까요?(자동매매로 조건부지정가 매매가 가능한지 궁금합니다)
항상 도움주셔서 감사합니다.
2022-09-28
833
글번호 162581
답변완료
함수요청
안녕하세요?
아래의 캔들 패턴을 함수로 요청드립니다.
1. 남삼성형(하락 음봉 3개 연속)
긴 아래꼬리를 가진 긴 음봉을 형성한 뒤 둘째날 상승갭을 두고 시작하였으나 전날의 저점 위에서 종가를 형성 세번째 날(최신영업일)은 음의 마르보즈 캔들로써 전날의 거래 범위에 감싸이는 형태
첫날의 긴 아래꼬리 가진 긴 음봉의 몸통과 아래꼬리는 각각 셋째날 마르보즈의 크기보다 큼
2. 동일흑삼병(하락 음봉 3개 연속)
첫 음봉의 종가와 두번째 음봉의 시가가 1포인트 이내에 있고 세번째 음봉의 시가가 두번째 음봉의 종가와 1포인트 이내에 있는 형태
3. 지연형(상승 양봉 3개 연속)
두개의 양봉이 발생한 다음 날 상승 갭을 두고 몸통이 작은 양봉이 나타나는 형태
세번째 몸통이 작은 양봉은 머리와 꼬리의 합이 몸통보다 작되 첫번째와 두번째의 몸통보다 세번째 봉 고점 저점 폭이 작음
4. 삼선 반격형 (하락 음봉 3개 연속 이후 상승 양봉 1개)
네 번째 날의 긴 양봉의 시가는 그 바로 이전의 연속된 하락 음봉 3개의 저가보다 작되 종가는 이전 3개의 음봉 고점 위에서 마감
*공통적으로 음봉과 양봉은 머리와 꼬리 보다는 몸통의 길이가 더 길어야 함
2022-09-28
1035
글번호 162580
답변완료
수식부탁드립니다.
항상 감사 드립니다.
조건 : C>dayopen and crossup(MA20,MA60) and CountIF(MarketPosition ==1,DayIndex)==0
위 조건이 당일 2회 발생시 매수 , 3회발생시 정리
수식 부탁 드립니다.
2022-09-28
1042
글번호 162579
답변완료
수식 중 bids(매수잔량), asks(매도잔량)의 의미에 대해서 문의드립니다
안녕하세요,
수식에서 bids(매수잔량), asks(매도잔량)의 의미에 대해 잘 모르겠어요.
현재 제가 90틱봉을 사용하고 있는데요, 이 경우 수식에서 bids를 사용해서 예를 들어서 10이란 값이 나왔다면, 10은 현재 이 순간의 매수잔량인가요? 매수잔량은 계약이 체결되면서 계속 숫자가 바뀌는데, 그러면 10은 바로 이 순간시점의 매수잔량이 맞지요?
그렇다면 bids[1]의 의미는 이전틱봉의 매수잔량이 맞나요? 이 부분이 이해가 잘 안되어요. 매수잔량은 시시각각 변하는데, 이전틱봉이 만들어지는 동안에도 이 매수잔량은 계속해서 변했을 테잖아요. 그렇다면 bids[1]는 정확히 어느 시점의 매수잔량인가요? 이전틱봉의 마지막 계약이 체결된 순간의 매수잔량인가요?
2022-09-28
1223
글번호 162578