커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4481
글번호 230811
답변완료
문의드립니다
아래 수식에서 시간 삭제해서 수정 부탁드립니다
INPUT : LENGTH(10),익절틱수(30),손절틱수(30);
VAR : TCHAN(0), BCHAN(0);
input : starttime(93000),endtime(010500);
var : Tcond(false);
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
#상단
TCHAN = HIGHEST(HIGH, LENGTH)[1];
#하단
BCHAN = LOWEST(LOW, LENGTH)[1];
#10지수이평이 60지수이평보다 크면
#다음봉에 하단 이하의 시세가 발생하면 즉시 매수진입
if Tcond == TRUE AND
ema(C,5) > ema(C, 60) and
MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 5)) and
(BarsSinceExit(1) >= 20 or (BarsSinceExit(1) < 20 and (min(NextBarOpen, BCHAN) > EntryPrice(1)) or EntryPrice(1) == 0)) then
buy("buy", atlimit, BCHAN);
#매수진입 후
if MarketPosition == 1 Then
{
#상단까지 시세 상승하면 즉시 청산
exitlong("EL_상단터치", atlimit, TCHAN);
#30틱 수익이면 즉시 청산
exitlong("EL_익절",atlimit, EntryPrice + PriceScale*익절틱수);
#30틱 손실이면 즉시 청산
exitlong("EL_손절",AtStop, EntryPrice - PriceScale*손절틱수);
}
#10지수이평이 60지수이평보다 작으면
#다음봉에 상단 이상의 시세가 발생하면 즉시 매도진입
if Tcond == true and
ema(C,5) < ema(C, 60) and
MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 5)) and
(BarsSinceExit(1) >= 20 or (BarsSinceExit(1) < 20 and (max(NextBarOpen, TCHAN) < EntryPrice(1)) or EntryPrice(1) == 0)) then
sell("sell", atlimit, TCHAN);
#매도진입 후
if MarketPosition == -1 Then
{
#하단까지 시세 하락하면 즉시 청산
exitshort("ES_하단터치", atlimit, BCHAN);
#30틱 수익이면 즉시 청산
exitshort("ES_익절",atlimit, EntryPrice - PriceScale*익절틱수);
#30틱 손실이면 즉시 청산
exitshort("ES_손절",AtStop, EntryPrice + PriceScale*손절틱수);
}
2019-01-16
180
글번호 125334
답변완료
질문드립니다.
분봉을 기준으로 만들어진 전략에서 일봉의 데이터를 불러올수 있는것처럼
혹시 30분봉을 기준으로 돌리고 있는 전략에서
5분봉의 데이터를 가져와서 쓸수 있나요?
예를 들어 30분봉에서 전략실행을 하고 있는데
청산할때만 5분봉의 atr값으로 계산하여 추적청산 한다던지
미리 답변 감사드립니다.
2019-01-16
183
글번호 125327
답변완료
질문드립니다.
30분봉상 첫캔들의 거래량이 최근5일간 거래량중 가장높다 라는 조건식 부탁드립니다.
2019-01-16
181
글번호 125324
답변완료
수식 부탁드립니다.
즉시 매수 매도 가능한가요?
예를 들면 GOID 매매시 시가가 1209.0 경우 시가 닿으면 즉시 매수 하고
손절은 5틱으로 수식이 가능할까요?
부탁 드립니다.
2019-01-16
196
글번호 125323
답변완료
시스템 형태 좀 구현 부탁 드립니다.
* 항상 많은 도움에 고맘습니다.
* 요청사항 : 시스템 형태 좀 아래 형식으로 부탁 드립니다.
1. 로직A 에 의해서 매매(매도,매수) 신호가 발생 하면 바로 매매 하는것이 아니라
2. 매매발생(로직A 신호) 봉 부터 이평선을 시작 하여 (이전 봉은 무시)
3. VAR1 = MA(C,5) ;
VAR2 = MA(C,10) ;
IF CROSSUP(VAR1,VAR2) THEN BUY() ;
IF CROSSDOWN(VAR2,VAR1) THEN SELL() ;
4. 아래 로직도 부탁 드립니다.
IF 신호봉(로직A) 기준 10개 경과후 매수 이전 30개봉 최고가 돌파시 THEN BUY() ;
IF 신호봉(로직A) 기준 10개 경과후 매수 이전 30개봉 최저가 하락시 THEN SELL() ;
2개 로직 형태좀 부탁 드립니다.
* 추운 날씨에 건강 챙기시고 항상 고맙습니다.
2019-01-16
197
글번호 125322
답변완료
수식 수정 부탁 드립니다
아래수식 수정 부탁 드립니다
골든크로스 및 데드크로스 발생 시 단기와 장기 이평선 사이의 공간에 색깔 표시
골든크로스 영역은 빨강색
데드크로스 영역은 파랑색
Input : Period1(5), Period2(20);
var : Sma1(0),Sma2(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Plot1(Sma1, "이동평균1");
Plot2(Sma2, "이동평균2");
2019-01-16
213
글번호 125318
답변완료
문의드립니다
아래 전략에서
매수 진입은 첫번째 바로전 진입 신호 보다 높은때 매수 신호
매도 진입은 첫번째 바로전 진입 신호 보다 낮은때 매도 신호
이렇게 해주시면 되는데 바로 전 청산신호 부터 20봉안에서만 이렇게 하고
20봉이 넘어가면 상관없게 수정 부탁드립니다
INPUT : LENGTH(10),익절틱수(30),손절틱수(30);
VAR : TCHAN(0), BCHAN(0);
input : starttime(93000),endtime(010500);
var : Tcond(false);
if (sdate != sdate[1] and stime >= starttime) or
(sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then
{
Tcond = true;
}
if (sdate != sdate[1] and stime >= endtime) or
(sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("bx");
if MarketPosition == -1 Then
ExitShort("sx");
}
#상단
TCHAN = HIGHEST(HIGH, LENGTH)[1];
#하단
BCHAN = LOWEST(LOW, LENGTH)[1];
#10지수이평이 60지수이평보다 크면
#다음봉에 하단 이하의 시세가 발생하면 즉시 매수진입
if Tcond == TRUE AND
ema(C,5) > ema(C, 60) and
MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 5)) Then
buy("buy", atlimit, BCHAN);
#매수진입 후
if MarketPosition == 1 Then
{
#상단까지 시세 상승하면 즉시 청산
exitlong("EL_상단터치", atlimit, TCHAN);
#30틱 수익이면 즉시 청산
exitlong("EL_익절",atlimit, EntryPrice + PriceScale*익절틱수);
#30틱 손실이면 즉시 청산
exitlong("EL_손절",AtStop, EntryPrice - PriceScale*손절틱수);
}
#10지수이평이 60지수이평보다 작으면
#다음봉에 상단 이상의 시세가 발생하면 즉시 매도진입
if Tcond == true and
ema(C,5) < ema(C, 60) and
MarketPosition == 0 and (TotalTrades == 0 or (TotalTrades >= 1 and BarsSinceExit(1) >= 5)) Then
sell("sell", atlimit, TCHAN);
#매도진입 후
if MarketPosition == -1 Then
{
#하단까지 시세 하락하면 즉시 청산
exitshort("ES_하단터치", atlimit, BCHAN);
#30틱 수익이면 즉시 청산
exitshort("ES_익절",atlimit, EntryPrice - PriceScale*익절틱수);
#30틱 손실이면 즉시 청산
exitshort("ES_손절",AtStop, EntryPrice + PriceScale*손절틱수);
}
2019-01-16
186
글번호 125317
답변완료
매수,매도, 글씨 문의 드립니다.
Input : B_A_Period1(12), B_A_Period2(26), B_A_Period3(9);
Input : EL_A_Period1(12), EL_A_Period2(26), EL_A_Period3(9);
Input : S_A_Period1(12), S_A_Period2(26), S_A_Period3(9);
Input : ES_A_Period1(12), ES_A_Period2(26), ES_A_Period3(9);
Var : B_A_value1(0), B_A_value2(0);
Var : B_A_CondResult(FALSE), B_A_TempResult(FALSE), B_A_Condition3(FALSE);
Var : EL_A_value1(0), EL_A_value2(0);
Var : EL_A_CondResult(FALSE), EL_A_TempResult(FALSE), EL_A_Condition5(FALSE);
Var : S_A_value1(0), S_A_value2(0);
Var : S_A_CondResult(FALSE), S_A_TempResult(FALSE), S_A_Condition3(FALSE);
Var : ES_A_value1(0), ES_A_value2(0);
Var : ES_A_CondResult(FALSE), ES_A_TempResult(FALSE), ES_A_Condition5(FALSE);
B_A_value1 = EMA(Close,B_A_Period1)-EMA(Close,B_A_Period2);
B_A_value2 = EMA(B_A_value1,B_A_Period3);
B_A_Condition3 = CrossUp(B_A_value1, B_A_value2);
B_A_TempResult = B_A_Condition3;
B_A_CondResult = B_A_TempResult;
If B_A_CondResult Then
{
Buy("매수1");
}
EL_A_value1 = EMA(Close,EL_A_Period1)-EMA(Close,EL_A_Period2);
EL_A_value2 = EMA(EL_A_value1,EL_A_Period3);
EL_A_Condition5 = EL_A_value1[2] < EL_A_value1[1] and EL_A_value1[1] > EL_A_value1;
EL_A_TempResult = EL_A_Condition5;
EL_A_CondResult = EL_A_TempResult;
If EL_A_CondResult Then
{
ExitLong();
}
S_A_value1 = EMA(Close,S_A_Period1)-EMA(Close,S_A_Period2);
S_A_value2 = EMA(S_A_value1,S_A_Period3);
S_A_Condition3 = CrossDown(S_A_value1, S_A_value2);
S_A_TempResult = S_A_Condition3;
S_A_CondResult = S_A_TempResult;
If S_A_CondResult Then
{
Sell();
}
ES_A_value1 = EMA(Close,ES_A_Period1)-EMA(Close,ES_A_Period2);
ES_A_value2 = EMA(ES_A_value1,ES_A_Period3);
ES_A_Condition5 = ES_A_value1[2] > ES_A_value1[1] and ES_A_value1[1] < ES_A_value1;
ES_A_TempResult = ES_A_Condition5;
ES_A_CondResult = ES_A_TempResult;
If ES_A_CondResult Then
{
ExitShort();
}
이수식에 한글로 매수 매수 청산 매도 매도 청산 이렇게 한글로 화면에 쓰이게 부탁 드립니다.
2019-01-16
200
글번호 125313
답변완료
매수가 대비 2퍼센트 하락시 본전가 매도주문 수식 부탁드립니다.
매수가로부터 -2퍼센트 도달 즉시 평단가로 매도주문이 나가게 하고싶습니다.
수식좀 부탁드립니다.
2019-01-16
201
글번호 125312