커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8154
글번호 230811
답변완료
감사합니다.
감사합니다.
아래의 수식에서 시가 보다 1포인트 상승하였을 때 매수는 되는데 그 이후 신호가 발생하지 ㅇ않습니다.( 최소 진입 후 이전 진입가격보다 조건에 해당하는 추가적인 상승이 있으면 매수, 그리고 마지막 진입보다 1포인트 하락하면 모두 청산)
if MarketPosition == 0 and Dayhigh > dayopen+0.6 Then
buy("b",atlimit,dayopen+1);
if MarketPosition == 1 Then{
if MaxEntries < 5 Then
buy("aa",atlimit,LatestEntryPrice(0)+1);
if MaxEntries == 5 Then
ExitLong("ax",AtStop,LatestEntryPrice(0)-1);
}
2018-01-25
285
글번호 116049
답변완료
문의드립니다.
매번 감사합니다.
1. 기타
아래청산으로 청산됐을 때 '리버스진입 포지션을 n개봉까지만 갖는다'는 조건 추가 부탁드립니다.
Input: YoYoMult(2.5);
If MarketPosition <> 0 Then {
ExitLong("EL_요요청산", Atstop, C-ATR(10)*YoYoMult);
ExitShort("ES_요요청산",Atstop, C+ATR(10)*YoYoMult);}
2. 기타
Input: YoYoMult(2.5);
If MarketPosition <> 0 Then {
ExitLong("EL_요요청산", Atstop, C-ATR(10)*YoYoMult);
ExitShort("ES_요요청산",Atstop, C+ATR(10)*YoYoMult);}
이 수식 발동시 역포지션들어가면서 n% 목표가 청산 , n2% 손절 하는 수식 부탁드립니다.
예) 매수 요요청산 -> 팔고 바로 매도진입 -> 매도진입후 n% 수익되면 청산, n2% 손실되도 청산
2018-01-25
296
글번호 116048
답변완료
해선(예를들면 항생) 당일 피보나치 수식
당일피포나치수식을 구하는데
해선은 장 시작 시간이 다르잖아요
예를들어 항생은 아침 10시 15분부터 새벽 2시까지 기간을 최고가 최저가로 당일 피보나치를 만들려면 어떻게 해야하나요?
2018-01-25
372
글번호 116047
답변완료
분봉에 일봉 스토케스틱 표시
안녕하세요.
수식 작성에 어려움 있어 도움 청합니다.
복합장 분봉에 주간장 일봉을 이용한 스토케스틱을 표시하고 이를 기반으로 시스템식을 작성하려 합니다.
아래와 같이 만들어 보았으나 주간장 일봉에 표시된 스토케스틱과 큰 차이가 있어 해결을 못하고 있습니다.
도움 부탁드립니다.
감사합니다.
# -----------------------------------------------------------------------------------
Variables : cnt(0), sum(0);
Variables : 분봉_시가(0), 분봉_고가(0), 분봉_저가(0), 분봉_종가(0);
Arrays : 일봉_시가[100](0), 일봉_고가[100](0), 일봉_저가[100](0), 일봉_종가[100](0);
# ---<<< 주간장 >>>---
If (sDate[1] != sDate And 090000 <= sTime) Or
(sDate[1] == sDate And sTime[1] < 090000 And 090000 <= sTime) Then Begin # 주간일봉 첫봉
일봉_시가[0] = Open;
일봉_고가[0] = High;
일봉_저가[0] = Low;
일봉_종가[0] = Close;
For cnt = 1 To 99 Begin
일봉_시가[cnt] = 일봉_시가[cnt-1][1];
일봉_고가[cnt] = 일봉_고가[cnt-1][1];
일봉_저가[cnt] = 일봉_저가[cnt-1][1];
일봉_종가[cnt] = 일봉_종가[cnt-1][1];
End;
분봉_시가 = Open;
분봉_고가 = High;
분봉_저가 = Low;
분봉_종가 = Close;
End;
If 090000 < sTime And sTime < 180000 then Begin # 주간장
If 분봉_고가 < High Then 분봉_고가 = High;
If 분봉_저가 > Low Then 분봉_저가 = Low;
분봉_종가 = Close;
일봉_고가[0] = 분봉_고가;
일봉_저가[0] = 분봉_저가;
일봉_종가[0] = 분봉_종가;
End;
#----------------------------------------------------------------
Variables : 기간1(5), 기간2(3), 기간3(3);
Variables : 최고가(0), 최저가(0);
Arrays : V_FastK[30](0), V_SlowK[10](0), V_SlowD[10](0);
If (sDate[1] != sDate And 090000 <= sTime) Or # 주간일봉 첫봉
(sDate[1] == sDate And sTime[1] < 090000 And 090000 <= sTime) Then Begin
최고가 = 일봉_고가[0];
최저가 = 일봉_저가[0];
For cnt = 1 to 기간1 Begin
If 최고가 < 일봉_고가[cnt] Then 최고가 = 일봉_고가[cnt];
If 최저가 > 일봉_저가[cnt] Then 최저가 = 일봉_저가[cnt];
End;
V_FastK[0] = (Close - 최저가) / (최고가 - 최저가) * 100;
For cnt = 1 to 기간2 Begin
sum = sum + V_FastK[cnt];
End;
V_SlowK[0] = sum / 기간2;
For cnt = 1 to 기간2 Begin
sum = sum + V_FastK[cnt];
End;
V_SlowD[0] = sum / 기간3;
End;
plot1(V_SlowK[0]);
Plot2(V_SlowD[0]);
2018-01-25
296
글번호 116046
답변완료
질문입니다.
궁금한점이 있습니다.
선물거래를 하고 있습니다.
연결선물에 시스템을 걸어놓았습니다.
궁금한점은 시뮬레이션 차트에서의 결과와 실제거래의 결과가
다르게 나오는데 이는 어떤 이유에서 그런 것인가요?
수정주가, 분,틱봉의 일간 갭 보정 등은 하지 않았습니다.
시뮬레이션이 실제와 같을 것이라는 기대를 가지고 하고 있는데,
둘의 결과가 다르니 혼란이 오네요.
답변 부탁드립니다.
2018-01-25
292
글번호 116045
답변완료
문의드림니다
30분봉 최고 거래량+양봉거래량+음봉최고거래량-음봉거래량
비교수식을 넣고 해야될텐데 어렵네요 봉개수는 18개 입니다
키움식이랑 예스차트식이랑 같이좀 부탁드려요
2018-01-25
313
글번호 116043
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
TS코드인데 예스코드로 수정부탁드립니다.
inputs:
SEC2( Close of Data2 ),
SEC3( Close of Data3 ),
STD(25),
OB(90),
D1(3),
D2(25),
DIVDAYS(50),
IMDAYS(50),
CR3CR(.8),
DIVCRIT(75),
LAG(3),
STP(1.5),
EXIT(11);
variables:
MA1(0),IM2(0),DIVSHORT(0),
STOC(0),OS(0),LR(0),
DIV2(0),RS1(0),RS2(0),
b2(0),PRED2(0),a2(0),
RS3(0),CR2(0),CR3(0);
OS = 100-OB ;
DIVSHORT = 100 - DIVCRIT ;
stoc = ( Average( Close -
Lowest( Low, STD ), 3 ) * 100 ) /
( Average( Highest( High, STD )-
Lowest( Low, STD ), 3 ) ) ;
MA1 = Average( Close, D2 ) ;
LR = 100 * LinearRegSLOPE( Close, D2 ) ;
//REGRESSION
IF CurrentBar > D1 + D2 then
begin
RS1 = (Close / Close[D1] - 1 ) * 100 ;
RS2 = ( SEC2 / SEC2[D1] - 1 ) * 100 ;
RS3 = ( SEC3 / SEC3[D1] - 1 ) * 100 ;
CR2 = CorrelationMK( RS1, RS2, DIVDAYS ) ;
CR3 = CorrelationMK( RS1, RS3, DIVDAYS ) ;
b2 = CR2 * StandardDev( RS1, DIVDAYS, 1 )
/ ( StandardDev( RS2, DIVDAYS, 1 ) + .001 ) ;
a2 = Average( RS1, DIVDAYS )
- b2 * Average( RS2, DIVDAYS ) ;
PRED2 = b2 * RS2 + a2 ;
DIV2 = PRED2 - RS1 ;
end ;
IM2 = ( Average( DIV2 -
Lowest( DIV2, IMDAYS ), 2 ) * 100 ) /
( Average( Highest( DIV2, IMDAYS ) -
Lowest( DIV2, IMDAYS ), 2 ) + .01 ) ;
if CurrentBar > DIVDAYS + D1 + IMDAYS then
begin
//BUY
if IM2[LAG] > DIVCRIT and IM2 < IM2[LAG]
and IM2 > DIVSHORT and CR3 < CR3CR
and ( LR >= LR[1] or Close > MA1 ) then
Buy ("DIVJPY") this bar at Close ;
//SHORT
if IM2[LAG] < DIVSHORT and IM2>IM2[LAG]
and IM2<DIVCRIT and CR3 < CR3CR and
(LR <= LR[1] or Close < MA1 ) then
SellShort ("NDIVJPY") this bar at Close ;
end ;
//EXIT
if BarsSinceEntry > 3 and
Close < Close[BarsSinceEntry] * ( 1 - STP / 100 )
and STOC > OS then
Sell ("STOP") next bar at Market ;
IF BarsSinceEntry > 7 and
Close < Highest( Close, BarsSinceEntry )
* ( 1 - STP / 100 ) then
Sell ("TRAIL") next bar at Market ;
IF BarsSinceEntry > 3 and
Close > Close[BarsSinceEntry] * ( 1 + STP / 100 )
and STOC < OB then
BuyToCover ("INITIAL STOP")
next bar at Market ;
IF BarsSinceEntry > 7 and
Close > Lowest( Close,BarsSinceEntry )
* ( 1 + STP / 100 ) then
BuyToCover ("TRAIL COVER") next bar at Market ;
If BarsSinceEntry >= EXIT then
begin
Sell ("TIME") all shares
this bar at close ;
BuyToCover ("TIMEX") all shares
this bar at close ;
end ;
2018-01-25
733
글번호 116032
답변완료
문의 드립니다.
질문1) 장 시작후 9시 10분~30분정도까지 가격이 빠르게 변할 때는 차트가 굉장히 느립니다. 5~10초정도 지연되어 나타납니다. 그래서 증권사의 차트가격과 예스트레이더차트의 현재가가 일치될 때까지 기다렸다가 그 때부터 매매를 할 수 있습니다.
차트에 지표,강조,시스템 수식 등이 너무 많이 들어가 있어서 그런 것인지 아니면 PC사양을 좀 올리면 해결이 되는 것인지 아니면 인터넷 속도를 올려야 하는지 해결책을 좀 제시해 주시기 바랍니다. 현재의 인터넷속도로도 증권사 차트는 아무런 문제없이 바로 바로 나타납니다. 장 초반이 중요한데 그냥 바라만 볼 수밖에 없으니 답답해서......
질문2) 증권차트와 예스트레이더차트의 현재가가 일치되는 지 확인하기 위해 차트의 현재가에 흰색 수평선을 긋고 싶은데 plot(C) 로 하니까 지나온 각 봉의 종가마다 모두 연결되는 선이 되어 버립니다.
지난 봉의 종가는 무시하고 현재봉의 종가만을 수평선으로 그으려면 어떻게 해야 하는지 부탁드립니다.
2018-01-25
374
글번호 116031
답변완료
요청드립니다
B = sum(if(C>C(1),v,if(C<C(1),-v,0))); B2 = valueWhen(period, date(1)!=date, B(1) ); B - B2
키움식인데요
변환하고싶습니다 어떻게하면되나요?
period 값에는 제가 임의의 숫자를 집어넣고싶습니다
감사합니다
2018-01-25
303
글번호 116030