커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4335
글번호 230811
답변완료
부탁드립니다
수고하십니다
*아래수식에서 PINK색으로바뀔때 가격봉챠트 저가 약간아래에 빨간점표시.
LGREEN으로바뀔때 가격봉챠트 고가 약간위에 파랑점표시.수식부탁드립니다
Input : shortPeriod(12), longPeriod(26), Period(9);
Var : value(0),Direction(0) ;
value = MACD(shortPeriod, longPeriod);
if value > value[1] Then
Direction = 1;
if value < value[1] Then
Direction = -1;
if Direction == 1 and Direction[1] != 1 Then
plot1(L,"검색",BLACK);
if Direction == -1 and Direction[1] != -1 Then
plot1(H,"검색",BLACK);
2017-09-06
120
글번호 112559
답변완료
문의 드립니다.
아래와 같이 했을 때 출력되는 텍스트 크기를 좀 키우고 싶은데 방법 좀 알려 주시기 바랍니다.
화면에서 출력된 텍스트에 마우스클릭해서 글자크기를 키우면 지나가면 또 원래 글씨크기로 돌아갑니다. 다른 값들은 크기를 그대로 두고 Text_New로 해서 출력된 텍스트 값만 원천적으로 텍스트 크기를 크게 하는 방법은 없습니까?
Text_Delete(Text4);
Text4 = Text_New(sdate,stime, Value3, "xx" );
2017-09-06
127
글번호 112555
답변완료
문의 드립니다.
보통 거의 모든 지표들이 종가 마감(오후 3시 45분)된 지표값으로 다음날 아침 9시에 그대로 시작하더라고요..예를 들어 MACD 오후 3시 45분 종가 값이 MACD 0.25, MACD Signal 0.18 로 마감했으면 다음날 아침 9시에 MACD 0.25, MACD Signal 0.18 로 출발해서 진행됩니다.
그런데 혹시 아침 9시 기준으로 지표값을 0으로 초기화시켜서 시작하도록 할 수 있나요? MACD 지표를 예를 들어서 수식을 작성해 주실 수 있을까요?
2017-09-06
107
글번호 112553
답변완료
진입시간 제한
아래와 같은 수식을 이용해 진입 시간을 통제하는데요.
if stime >= 100000 and stime < 235900 then{
진입조건
}
10시부터 23시59분 까지는 문제가 없는데 새벽2시까지 설정하려면 어떻게 해야합니까?
if stime >= 100000 and stime < 020000 then{ --> 이렇게 하니까 인식을 못합니다.
2017-09-06
106
글번호 112543
답변완료
시장 시작시간관련
항셍(홍콩) 지수선물관련 지표가 당일 10:15로 적용이 안되고 전날 18;30(한국시간)에서 시작하는데 해결좀 부탁합니다(시간을 홍콩시간으로바꿔도동일)
Inputs: t1(101500);
HiHi = DayHigh;
LoLo = DayLow;
//if sdate == currentdate and stime>t1 Then
{
Plot5(HiHi);
Plot6(LoLo);
}
2017-09-06
112
글번호 112542
답변완료
시스템 오류검증
항상 감사드립니다.
질의_1.
아래의 시스템_1식은 신호발생후 기준선이나 선행스팬2를 터치할때 진입되도록 만든식인데
장시작후 처음에 다르게 나오고 있습니다.
또한 기준선이나 선행스팬2가 급격히 수직으로 움직일때 고가/저가 가 crossup/crossdown
되지 않고 수평으로 통과하다보니 신호가 발생하지 않습니다
수정부탁드립니다
질의_2.
시스템1과 시스템_2 는 동일한 시스템으로 만들엇는데 결과치는 다르게 나오고 잇습니다
두시스템의 차이점을 알고 싶습니다
1_시스템 1
/**************************************************************************/
Var : 기준선(0), 전환선(0), 선행스팬1(0), 선행스팬2(0),선행스팬3(0);
전환선 = (Highest(H, 9) + Lowest(L, 9)) / 2;
기준선 = (Highest(H, 26) + Lowest(L, 26)) / 2;
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(H, 52)[25] + Lowest(L, 52)[25]) / 2;
선행스팬3 = (highest(H,48)+lowest(L,48))/2;
/************************************************************************/
Input : Period1(200),Period2(100);
var : CCIv(0),CCIs(0);
CCIv = CCI(Period1);
CCIs = ema(CCIv,Period2);
/***************************************/
Input : short(30),long(65),sig(9);
Var : MACDv(0),MACDS(0);
MACDv = MACD(short, long);
MACDs = ema(MACDv,sig);
/*****************************************/
Input: DIP(46);
var : DP1(0),DM1(0),ZZ(0);
DP1 = ema(iff(H-H[1]>0 && H-H[1]>L[1]-L,H-H[1],0),DIP)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),DIP)*100;
DM1 = ema(iff(L[1]-L>0 && H-H[1]<L[1]-L,L[1]-L,0),DIP)/
ema(max(max(H-L,abs(C[1]-H)),abs(C[1]-L)),DIP)*100;
ZZ=ema(accum(ema(ema(DP1-DM1, 2), 2)),20);
if ZZ > ZZ[1] Then
var6 = 1;
Else
var6 = 0; #BASELINE: 0.5 #
/*************************************************/
var: t(0),t1(0),t2(0),t3(0),t4(0),t5(0);
if crossup(전환선,선행스팬3) Then
T2 = 1 ;
if CrossDown(전환선,선행스팬3) Then
T2 = -1 ;
if T2==1 and CCIv>0 Then
T3 = 1 ;
if T2==-1 and CCIv<0 Then
T3 = -1 ;
/*************************************/
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0);
if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then Entrycnt = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then Entrycnt = Entrycnt+1;
if (stime >= 090000 and stime < 150000) Then{
if T2 == 1 and C > 선행스팬2 and macdv>macds and 기준선>선행스팬2 Then
T4 = 1;
if T4 == 1 and (crossup(H,선행스팬2) or CrossDown(L,선행스팬2)) Then
T5 = 1;
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and
t5==1 and var6==1 then
buy("B_1");
if T2 == -1 and C < 선행스팬2 and macdv<macds and 기준선<선행스팬2 Then
T4 = -1;
if T4 == -1 and (crossup(H,기준선) or CrossDown(L,기준선)) Then
T5 = -1;
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and
t5==-1 and var6==0 then
sell("S_1");
}
##########################
##### 청산 #####
##########################
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 Then
ExitShort("sx2",AtStop,EntryPrice-(EntryPrice-Lowest(L,BarsSinceEntry))*0.75);
}
########################################
##### 손절20틱/매일 15:00 강제청산 #####
########################################
SetStopLoss(PriceScale*20,PointStop);
if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
/*#####################################################*/
2_시스템2
/*************************************************/
var: t(0),t1(0),t2(0),t3(0),t4(0);
if 전환선==선행스팬3 Then # 전환선이 선행스팬3과 같으면 0
T = 0 ;
if T==0 and CCIv>0 Then # t=0 인상태에서 cciv>0 이면 t1=1
T1 = 1 ;
if T==0 and CCIv<0 Then # t=0 인상태에서 cciv<0 이면 t1=-1
T1= -1 ;
/**************************************/
if crossup(전환선,선행스팬3) Then #전환선이 선행스팬3을 상향돌파하면 1
T = 1 ;
if CrossDown(전환선,선행스팬3) Then #전환선이 선행스팬3을 하향돌파하면 -1
T = -1 ;
if T==1 and CCIv>0 Then
T1 = 2 ;
if T==-1 and CCIv<0 Then
T1 = -2 ;
/*************************************/
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0);
if stime == 090000 or (stime > 090000 and stime[1] < 090000) Then Entrycnt = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then ### 동일방향 재진입금지 설정식 ###
Entrycnt = Entrycnt+1;
if (stime >= 090000 and stime < 150000) Then{
/***************************************************************************/
if T1 == 2 and C > 선행스팬2 and macdv>macds and 기준선>선행스팬2 Then
T = 2;
#t가 2인 상태에서 선행스팬2를 터치하면 3
if T == 2 and (crossup(H,선행스팬2) or CrossDown(L,선행스팬2)) Then
T = 3;
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지#
t==3 and var6==1 then
buy("B_1");
if T1 == -2 and C < 선행스팬2 and macdv<macds and 기준선<선행스팬2 Then
T = -2;
#t가 -2인 상태에서 선행스팬2를 터치하면 -3
if T == -2 and (crossup(H,기준선) or CrossDown(L,기준선)) Then
T = -3;
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지#
t==-3 and var6==0 then
sell("S_1");
}
##########################
##### 청산 #####
##########################
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*50 Then
ExitShort("sx2",AtStop,EntryPrice-(EntryPrice-Lowest(L,BarsSinceEntry))*0.75);
}
########################################
##### 손절40틱/매일 12:00 강제청산 #####
########################################
SetStopLoss(PriceScale*20,PointStop);
if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
2017-09-06
109
글번호 112537
답변완료
진입제한시간문의드립니다.
크루즈오일선물인데요
한국시간 06시에 장이 끝나고 07시에 장이 다시 열리는데요
한국시간 07~09시까지 한국장 열리긴전에 2시간동안 매매를 못하게
제한거는 식을 부탁합니다.
한국시간 07시면 Y/S실행차트에서 기본적으로 나오는
시장시간은 어떻게 되는건지도 궁금합니다.
증권사 hts는 한국시간 07시가 거래소22시로 체결표기 되는데
예스트레이더에서는 다른거 같기도하고...,
감사합니다.
2017-09-06
119
글번호 112536
carlos 님에 의해서 삭제되었습니다.
2017-09-05
14
글번호 112535
답변완료
수식요청(진입명)
* 많은 도움에 고맙습니다.
* 진입명을 "22매수" 라고 할 경우 4일 이평선*0.99 크로스 다운 매도 어떻게 하죠?
var1= ma(c,4) ;
if MarketPosition == 1 then {if countif(LatestEntryName(0) == "22매수", CrossDown(c,var1*0.99) then ExitLong("4일가매도"); }
이것이 아닌가요?
* 고맙습니다... ^.^
2017-09-05
120
글번호 112534