커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4361
글번호 230811
답변완료
그물망
안녕하세요?
제가 대신증권 HTS를 쓰다가 넘어오려고 하는데, 도무지 예스트레이더에서는 제가 대신에서 쓰던것같이 심플하게 그물망의 함수값들을 바꿀방법이 없어서요, 그리고 예스트레이더에 탑재되있는 그물망지표를 선택해도, 대신것과는 너무 다르게 생겨서 여기에 여쭤봅니다.
제가 구현하고 싶은 그물망의 parameter 은 아래와 같습니다.
그물망 차트
기간 20 <- 이것은 20/10/120 등 이평의 기간을 바꾸기위해서
간격 2 <- 이것이 2라면, 현시점에서 기간을 뒤로 2일/분 뒤로 옮겨서 이평선을 표시
갯수 13 <- 총몇개의 선을 표시할지. 왼쪽예제에서는 총 13개의, 20이평선을, 각각 현시점, 현시점-2, 현시점-4, 현시점-6 기간...등 총 13개가 표시.
이동평균 계산방법: 지수(exponential)계산 (즉, 최근에 더 비중을 둔 계산) & 각 봉의 종가로 계산
몇분봉을 쓸껀지: 몇분봉인지는 시스템으로 정하지는 않아도 될것으로 판단.
표시형식: 정배열/역배역, 선 으로 표시, 색깔은 녹색 (색깔코드 알려주세요)
스타일: 실선으로 표시
선의 굵기: 보통 (1 이라고 표시하나요?)
** 아, 그리고 제가 예스트레이더를 처음 써봐서요... 수식 아래에 따로, 각 랭귀지가 무엇을 뜻하는지 설명도 부탁드릴수있을까요?
이렇게 입니다. 혹시 설명이 부족하면 알려주세요. 감사합니다.
2018-03-23
321
글번호 117640
답변완료
시스템 수식 문의드립니다....
수고가 많으시죠...
수식 문의 드립니다...
1 12봉 최고가에서 저가가 30틱 이상이면 매도
2 12봉 최저가에서 고가가 30틱 이상이면 매수
이상입니다...
2018-03-23
279
글번호 117639
정밀타격수 님에 의해서 삭제되었습니다.
2018-03-23
14
글번호 117638
답변완료
잘 부탁드립니다
1,주가범위 0일전 종가가 5000원 이상 60000 이하
2,주가이평비교[일]0봉전 종가 20이평 < 종가 10 이평 1회 이상
### 추가 해서 수정 부탁 드립니다 꾸벅
var1 = ma(C,20);
var2 = ma(C,60);
var3 = ma(c,120);
if m >= 1000000 and
C >= O*1.05 and C < O*1.30 and
var1 > var2 and var2 > var3 Then
find(1);
2018-03-22
135
글번호 117637
답변완료
지표부탁합니다.
매번도와 주심에 감사감사 드립니다.
두개의 지표를 일봉을 분봉주기로 전환 부탁드립니다.
그리고 종목검색식도 부탁드립니다.
aroon : CROSSUP(UpAroon, DnAroon)
가중이평 : Vwma1 > Vwma2 && VWMA2 > VWMA3 정배열
검색식 부탁드립니다.
감사합니다.
1. Aroon
input : Period(10);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Lowval= Lowest(Low, Period+1);
Highval = Highest(High, Period+1);
For counter= 0 To Period {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period-DownVel)/Period;
UpAroon = 100*(Period-UpVel)/Period;
Plot1(DnAroon, "Aroon Dn");
Plot2(UpAroon, "Aroon Up");
plotbaseline1(80,"강세 80");
plotbaseline2(50,"약세 50");
plotbaseline3(20,"약세 30");
inputs:Length1(5), Length2(20), Length3(60);
var: VolumeSum1(0), VolumeSum2(0), VolumeSum3(0), VWMA1(0), VWMA2(0), VWMA3(0);
VolumeSum1 = AccumN( v, Length1 ) ;
VWMA1 = AccumN( C * v , Length1 ) / VolumeSum1 ;
VolumeSum2 = AccumN( v, Length2 ) ;
VWMA2 = AccumN( C * v , Length2 ) / VolumeSum2 ;
VolumeSum3 = AccumN( v, Length3 ) ;
VWMA3 = AccumN( C * v , Length3 ) / VolumeSum3 ;
plot1(Vwma1);
plot2(Vwma2);
plot3(Vwma3);
2018-03-22
148
글번호 117636
정밀타격수 님에 의해서 삭제되었습니다.
2018-03-22
10
글번호 117635
답변완료
문의드립니다.
매번 감사합니다.
1. 기타
코딩 변환 부탁드립니다.
inputs:
Price( Close ), { price of which the standard deviation is
calculated }
Length( 90 ), { number of bars used in average true range (ATR)
and standard deviation (SD) calculations }
nK( 3 ), { number of ATRs to add to average to form Keltner
channel }
nBB( 2 ), { number of standard deviations used to calculate
Bollinger bands }
AlertLine( 1 ), { Bollinger band squeeze indicator (BBS_Ind)
level at which to issue alerts }
TargetPctOfRange( 100 ) ; { percentage of width of rectangle at
which to place profit target }
variables:
Rectangle( false ),
ATR( 0 ),
SDev( 0 ),
BBS_Ind( 0 ),
RectangleTop( 0 ),
RectangleBase( 0 ),
RectangleRange( 0 ) ;
if MarketPosition <> 0 then
Rectangle = false ;
{ Calculate Bollinger band squeeze indicator }
ATR = AvgTrueRange( Length ) ;
SDev = StandardDev( Price, Length, 1 ) ;
if nK <> 0 and ATR <> 0 then
begin
BBS_Ind = ( nBB * SDev ) / ( nK * ATR ) ;
if BBS_Ind crosses under AlertLine
and Rectangle = false
and MarketPosition = 0
then
begin
RectangleTop = Highest( Close, Length ) ;
RectangleBase = Lowest( Close, Length ) ;
RectangleRange = RectangleTop - RectangleBase ;
Rectangle = true ;
end ;
end ;
if Rectangle = true then
begin
if Close >= RectangleTop then
Buy this bar Close
else if Close <= RectangleBase then
Sell short this bar at Close ;
end ;
if MarketPosition = 1 then
begin
if Close >= RectangleTop + 0.01 * TargetPctOfRange *
RectangleRange then
Sell( “LX PT” ) this bar at Close ;
if Close <= RectangleTop - .5 * RectangleRange then
Sell( “LX SL” ) this bar at Close ;
end
else if MarketPosition = -1 then
begin
if Close <= RectangleBase - 0.01 *
TargetPctOfRange * RectangleRange then
BuyToCover( “SX PT” ) this bar at Close ;
if Close >= RectangleBase + .5 * RectangleRange then
Buy to cover( “SX SL” ) this bar at Close ;
end ;
Indicator: RectangleEvaluation
{Rectangle definition: See comments in code for strategy
“RectangleBreakout”. }
inputs:
Price( Close ), { price of which the standard deviation is calculated }
Length( 90 ), { number of bars used in average true range (ATR)
and standard deviation (SD) calculations }
nK( 3 ), { number of ATRs to add to average to form Keltner
channel }
nBB( 2 ), { number of standard deviations used to calculate
Bollinger bands }
AlertLine( 1 ), { Bollinger band squeeze indicator (BBS_Ind) level
at which to issue alerts }
TargetPctOfRange( 100 ) ; { percentage of width of rectangle
at which to place profit target }
variables:
ATR( 0 ),
SDev( 0 ),
BBS_Ind( 0 ),
Rectangle( false ),
LongPosition( false ),
ShortPosition( false ),
RectangleTop( 0 ),
RectangleBase( 0 ),
RectangleRange( 0 ),
LongTarget( 0 ),
LongPositionCount( 0 ),
ShortTarget( 0 ),
ShortPositionCount( 0 ),
LongTargetCount( 0 ),
ShortTargetCount( 0 ) ;
{ Calculate Bollinger band squeeze indicator }
ATR = AvgTrueRange( Length ) ;
SDev = StandardDev( Price, Length, 1 ) ;
if nK <> 0 and ATR <> 0 then
begin
BBS_Ind = ( nBB * SDev ) / ( nK * ATR ) ;
if BBS_Ind crosses under AlertLine
and Rectangle = false
and LongPosition = false
and ShortPosition = false
then
begin
RectangleTop = Highest( Close, Length ) ;
RectangleBase = Lowest( Close, Length ) ;
RectangleRange = RectangleTop - RectangleBase ;
Rectangle = true ;
Plot1( Close, “Alert” ) ;
end ;
end ;
if RectangleTop <> 0 and Rectangle = true then
begin
Plot2( RectangleTop, “Top” ) ;
Plot3( RectangleBase, “Base” ) ;
end ;
if Rectangle = true then
begin
if Close crosses over RectangleTop then
begin
LongTarget = RectangleTop + 0.01 *
TargetPctOfRange * RectangleRange ;
Rectangle = false ;
LongPosition = true ;
LongPositionCount = LongPositionCount + 1 ;
end ;
if Close crosses under RectangleBase then
begin
ShortTarget = RectangleBase - 0.01 *
TargetPctOfRange * RectangleRange ;
Rectangle = false ;
ShortPosition = true ;
ShortPositionCount = ShortPositionCount + 1 ;
end ;
end ;
if LongPosition = true then
begin
if Close > LongTarget then
begin
LongTargetCount = LongTargetCount + 1 ;
LongPosition = false ;
end
else if Close < RectangleTop - .5 * RectangleRange
then
LongPosition = false ;
Plot4( LongTarget, “Tgt” ) ;
end
else if ShortPosition = true then
begin
if Close < ShortTarget then
begin
ShortTargetCount = ShortTargetCount + 1 ;
ShortPosition = false ;
end
else if Close > RectangleBase + .5 * RectangleRange
then
ShortPosition = false ;
Plot4( ShortTarget, “Tgt” ) ;
end ;
Indicator: Rectangle-RS
{Rectangle definition: See comments in code for strategy
“RectangleBreakout”. }
inputs:
Price( Close ), { price of which the standard deviation is
calculated }
Length( 90 ), { number of bars used in average true range (ATR)
and standard deviation (SD) calculations }
nK( 3 ), { number of ATRs to add to average to form Keltner
channel }
nBB( 2 ), { number of standard deviations used to calculate
Bollinger bands }
AlertLine( 1 ), { Bollinger band squeeze indicator (BBS_Ind) level
at which to issue alerts }
TargetPctOfRange( 100 ) ; { percentage of width of rectangle
at which to place profit target }
variables:
ATR( 0 ),
SDev( 0 ),
BBS_Ind( 0 ),
Rectangle( false ),
LongPosition( false ),
ShortPosition( false ),
RectangleTop( 0 ),
RectangleBase( 0 ),
RectangleRange( 0 ),
LongTarget( 0 ),
LongPositionCount( 0 ),
ShortTarget( 0 ),
ShortPositionCount( 0 ),
LongTargetCount( 0 ),
ShortTargetCount( 0 ),
LongTgtHitRatio( 0 ),
ShortTgtHitRatio( 0 ) ;
{ Calculate Bollinger band squeeze indicator }
ATR = AvgTrueRange( Length ) ;
SDev = StandardDev( Price, Length, 1 ) ;
if nK <> 0 and ATR <> 0 then
begin
BBS_Ind = ( nBB * SDev ) / ( nK * ATR ) ;
if BBS_Ind crosses under AlertLine
and Rectangle = false
and LongPosition = false
and ShortPosition = false
then
begin
RectangleTop = Highest( Close, Length ) ;
RectangleBase = Lowest( Close, Length ) ;
RectangleRange = RectangleTop - RectangleBase ;
Rectangle = true ;
end ;
end ;
if RectangleTop <> 0 and Rectangle = true then
begin
Plot2( RectangleTop, “Top” ) ;
Plot3( RectangleBase, “Base” ) ;
end ;
if Rectangle = true then
begin
if Close crosses over RectangleTop then
begin
LongTarget = RectangleTop + 0.01 *
TargetPctOfRange * RectangleRange ;
Rectangle = false ;
LongPosition = true ;
LongPositionCount = LongPositionCount + 1 ;
end ;
if Close crosses under RectangleBase then
begin
ShortTarget = RectangleBase - 0.01 *
TargetPctOfRange * RectangleRange ;
Rectangle = false ;
ShortPosition = true ;
ShortPositionCount = ShortPositionCount + 1 ;
end ;
end ;
if LongPosition = true then
begin
if Close > LongTarget then
begin
LongTargetCount = LongTargetCount + 1 ;
LongPosition = false ;
end
else if Close < RectangleTop - .5 * RectangleRange
then
LongPosition = false ;
end
else if ShortPosition = true then
begin
if Close < ShortTarget then
begin
ShortTargetCount = ShortTargetCount + 1 ;
ShortPosition = false ;
end
else if Close > RectangleBase + .5 * RectangleRange
then
ShortPosition = false ;
end ;
if LongPositionCount > 0 then
begin
LongTgtHitRatio = LongTargetCount /
LongPositionCount ;
Plot5( LongTgtHitRatio, “LongTgtRatio” ) ;
end ;
if ShortPositionCount > 0 then
begin
ShortTgtHitRatio = ShortTargetCount /
ShortPositionCount ;
Plot6( ShortTgtHitRatio, “ShrtTgtRatio” ) ;
end ;
2018-03-22
206
글번호 117634
답변완료
수식 부탁드립니다.
질문 01)
현재가가 전일 고점 돌파중인 종목 검색식
질문 02)
현재가가 전일 위에 있는 종목 검색식
2018-03-22
132
글번호 117626
답변완료
당일 것 print 어떻게 하나요?
print해서 csv파일 저장했는데
확인 해 보니 당일 이전 것 모두 출력되서 데이터 저장하는게 좀 번거러운데요
오늘것만 출력할 수 없을까요
2018-03-22
141
글번호 117622