커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7537
글번호 230811
답변완료
부탁드립니다.~
수고많으십니다. 다음의 일봉지표를 분봉에서 볼수 있게 부탁드립니다.
항상 감사드립니다.
inputs:Length( 20 ) ;
variables: VolValue( 0 ), VolumeSum( 0 ), VWMA( 0 );
if DataCompress >= 2 then #{ not tick/minute data }
VolValue = Volume ;
else
VolValue = Ticks ;
VolumeSum = AccumN( VolValue, Length ) ;
if VolumeSum > 0 then
VWMA = AccumN( C * VolValue , Length ) / VolumeSum ;
var1=vwma;
plot1(var1);
2013-09-20
186
글번호 67672
답변완료
검색문의요
기간은 1달로 하는데요
기관은 꾸준이 사는데
주가는 빠지는 경우 검색할수있나요?
2013-09-20
151
글번호 67671
답변완료
부탁드립니다.
안녕하세요.
지표식과 시스템식으로 부탁드립니다.
감사합니다.
_SECTION_BEGIN( "KBrain" );
//========================Initiation================ ========
bts = ParamToggle( "BrainTrend1 signal", "No|Yes" , 1 );
btst = ParamToggle( "BrainTrend1 stop", "No|Yes" , 1 );
btsl = ParamToggle( "BrainTrend1 stop line", "No|Yes" , 1 );
period = Param( "Period", 14, 6, 20, 1 );
x1 = 53;
x2 = 47;
d = 2.3;
f = 7;
s = 1.5;
range = ATR( f );
Range1 = ATR( f ) / d;
Range2 = ( ATR( f ) * s ) / 4;
range3 = ATR( 10 );
R = ( ( HHV( H, period ) - C ) / ( HHV ( H, period ) - LLV ( L, period ) ) ) * -100;
EMA1 = EMA( R, Period );
EMA2 = EMA( EMA1, 5 );
Difference = EMA1 - EMA2;
ZeroLagEMA = EMA1 + Difference;
value2 = abs( ZeroLagEMA );
function PercentR( periods )
{
return -100 * ( HHV( H, periods ) - C ) / ( HHV( H, periods ) - LLV( L, periods ) );
}
for ( i = 1; i < Period - 1; i++ )
{
tm = 1;
bstop = 1;
sstop = 1;
p = 1;
}
for ( i = period + 10; i < BarCount; i++ )
{
C[0] = 0;
Value2[0] = 0;
p[0] = 0;
Plot1[0] = 0;
Plot2[0] = 0;
Val1 = 0;
Val2 = 0;
temp[0] = 0;
Value3[0] = 0;
tm[0] = 0;
p1[i] = 0;
bt1[0] = 0;
bt2[0] = 0;
r[0] = 0;
bt1a[0] = 0;
bt2a[0] = 0;
istop[0] = Val1[0];
stop[i] = Val1[0];
bstop[0] = 0;
sstop[i] = 0;
//==================================Indicators====== ======================
{
if ( value2[i] < x2 AND abs( Close[i] - Close[i-2] ) > range1[i] )
p[i] = 1 ;
else
{
if ( value2[i] > x1 AND abs( Close[i] - Close[i-2] ) > Range1[i] )
p[i] = 2 ;
else
p[i] = 0;
}
}
if ( ( value2[i] < x2 AND p[i] == 1 ) OR ( value2[i] < x2 AND p[i] == 0 ) )
{
if ( abs( Close[i] - Close[i-2] ) > Range1[i] )
{
Plot1[i] = H[i];
Plot2[i] = L[i];
}
else
{
Plot1[i] = Plot1[i-1];
Plot2[i] = Plot2[i-1];
}
}
else
{
if ( ( value2[i] > x1 AND p[i] == 2 ) OR ( value2[i] > x1 AND p[i] == 0 ) )
{
Plot1[i] = L[i];
Plot2[i] = H[i];
}
else
{
Plot1[i] = Plot1[i-1];
Plot2[i] = Plot2[i-1];
}
}
//==================KBrain Signal ====================================
{
if ( value2[i] < x2 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] ) )
{
if ( p[i] == 1 OR p[i] == 0 )
Value3[i] = L[i] - range3[i];
val1[i] = Value3[i];
p[i] = 1;
temp[i] = 1;
}
else
{
temp[i] = temp[i-1];
}
{
if ( value2[i] > x1 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] ) )
{
if ( p[i] == 2 OR p[i] == 0 )
Value3[i] = H[i] + range3[i];
val2[i] = Value3[i];
p[i] = 2;
temp[i] = 2;;
}
}
}
{
if ( temp[i] == 1 AND Plot1[i] > 0 AND tm[i] != 1 )
tm[i] = 1;
if ( temp[i] == 2 AND Plot2[i] > 0 AND tm[i] != 2 )
tm[i] = 2;
}
//===============================stop=============== =========================
{
if ( value2[i] < x2 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] )AND p[i] != 2 )
{
value3[i] = L[i] - range3[i];
va1[i] = Value3[i];
p1[i] = 2;
r[i] = Va1[i];
bstop[i] = Va1[i];
bt2[i] = bt2[i-1];
}
if ( value2[i] > x1 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] )AND p[i] != 1 )
{
Value3[i] = H[i] + range3[i];
va2[i] = Value3[i];
p1[i] = 1;
r[i] = Va2[i];
sstop[i] = Value3[i];
bt1[i] = bt1[i-1];
}
}
if ( val1[i] == 0 AND val2[i] == 0 AND p[i] == 0 )
{
bstop[i] = bstop[i-1];
sstop[i] = sstop[i-1];
}
if ( bstop[i] < bstop[i-1] AND tm[i] == 1 AND tm[i-1] == 1 )
bstop[i] = bstop[i-1];
if ( sstop[i] > sstop[i-1] AND tm[i] == 2 AND tm[i-1] == 2 )
sstop[i] = sstop[i-1];
}
//=============================SYSTEM=============== =======================
Mycolor = IIf( p == 1, colorLime, IIf( p == 2, colorRed, colorBlue ) );
PlotShapes( shapeCircle* ( bts AND tm == 1 AND Ref( tm, -1 ) == 2 ), colorTurquoise, 0, bstop, 0 );
PlotShapes( shapeCircle* ( bts AND tm == 2 AND Ref( tm, -1 ) == 1 ), colorCustom12, 0, sstop, 0 );
PlotShapes( IIf( btst AND p == 1, shapeSmallCircle, Null ), colorTurquoise, 0, bstop, 0 );
Plot( IIf( btsl AND tm == 1, bstop, Null ), "", colorPaleBlue, 1 );
PlotShapes( IIf( btst AND p == 2, shapeSmallCircle, Null ), colorCustom12, 0, sstop, 0 );
Plot( IIf( btsl AND tm == 2, sstop, Null ), "", colorLightYellow, 1 );
Buy = Cover = ( bts AND tm == 1 AND Ref( tm, -1 ) == 2 );
Sell = Short = ( bts AND tm == 2 AND Ref( tm, -1 ) == 1 );
SellPrice = ValueWhen( Sell, C, 1 );
BuyPrice = ValueWhen( Buy, C, 1 );
Long = Flip( Buy, Sell );
Shrt = Flip( Sell, Buy );
_SECTION_END();
//=================TITLE============================ ================================================== ==================
_SECTION_BEGIN( "Title" );
if ( Status( "action" ) == actionIndicator )
(
Title = EncodeColor( colorWhite ) + "KBrain V 1.1. " + " - " + Name() + " - " + EncodeColor( colorRed ) + Interval( 2 ) + EncodeColor( colorWhite ) +
" - " + Date() + " - " + "₩n" + EncodeColor( colorYellow ) + "Op-" + O + " " + "Hi-" + H + " " + "Lo-" + L + " " +
"Cl-" + C + " " + "Vol= " + WriteVal( V ) + "₩n" +
EncodeColor( colorLime ) +
WriteIf ( Buy , " GO LONG / Reverse Signal at " + C + " ", "" ) +
WriteIf ( Sell , " EXIT LONG / Reverse Signal at " + C + " ", "" ) + "₩n" + EncodeColor( colorWhite ) +
WriteIf( Sell , "Total Profit/Loss for the Last Trade Rs." + ( C - BuyPrice ) + "", "" ) +
WriteIf( Buy , "Total Profit/Loss for the Last trade Rs." + ( SellPrice - C ) + "", "" ) +
WriteIf( Long AND NOT Buy, "Trade : Long - Entry price Rs." + ( BuyPrice ), "" ) +
WriteIf( shrt AND NOT Sell, "Trade : Short - Entry price Rs." + ( SellPrice ), "" ) + "₩n" +
WriteIf( Long AND NOT Buy, "Current Profit/Loss Rs." + ( C - BuyPrice ) + "", "" ) +
WriteIf( shrt AND NOT Sell, "Current Profit/Loss Rs." + ( SellPrice - C ) + "", "" ) );
_SECTION_END();
BuyPrice = ValueWhen( Buy, C );
SellPrice = ValueWhen( Sell, C );
Filter = ( Buy OR Sell );;
AddColumn( IIf( Buy, BuyPrice, Null ), " Buy ", 6.2, 1, colorGreen );
AddColumn( IIf( Sell, SellPrice, Null ), " sell ", 6.2, 1, colorOrange );
2013-09-20
396
글번호 67670
답변완료
문의 드립니다.
수고가 많으십니다.
다름이 아니라 ..보통 만기 d-10 d-3 뭐 이런 식으로 카운팅하기도 하구요..
보통 많이 하잖습니까?
예를 들어 한 달에 보통 20여 거래일이 있는데요..
9월 3번째 거래일 6번째 거래일 엔 어떤 조건일때 buy 하겠다..
만기이후에도 ...9월 15번째 거래일에 어떤 조건일때 sell하겠다 ...
뭐 이런 식으로 시스템식을 작성할 때...
해당 월의 거래일을 카운팅할 수 있는 식을 표현하려면 어떻게 작성해야 할지
가르침을 받고 싶습니다.
미리 감사합니다. ^^
2013-09-20
145
글번호 67669
답변완료
지표식 문의 드립니다.
안녕 하세요.
옵션 시스템매매를 구현코져 아래와 같이 질문드리오니 바쁘신가운데라도 답변하여
주시오면 감사하겠습니다.
먼저 예를 들겠습니다.
<예1>콜옵션 252의 당일최저점이 2.25라고 가정하면
1차고점 : 2.25*1.2125 = 2.72 (2.728125인데 소수점 2자리미만은 절사)
<예2>풋옵션 252의 당일최고점이 2.25 라면
1차저점 : 2.25*0.6185 = 1.39 (1.391625인데 소수점 2자리미만은 절사)
위와같은 방법으로
<콜옵션> 은
1차고점 : 당일최저점*1.2125= ( ) 빨강색 수평선으로 표시
2차고점 : 당일최저점*1.3212= ( ) "
3차고점 : 당일최저점*1.5596= ( ) "
4차고점 : 당일최저점*1.7214= ( ) "
5차고점 : 당일최저점*2.2354= ( ) "
(1-5차 고점은 콜옵션만해당)
<풋옵션> 은
1차저점 : 당일최고점*0.6185= ( ) 파랑색수평선으로 표시
2차저점 : 당일최고점*0.4326= ( ) "
3차저점 : 당일최고점*0.3254= ( ) "
(1-3차 저점 은 풋옵션만해당)
분봉차트에 당일고점과 저점이 상하로 변화함에따라
수평선도 자동으로 상하로 변동되게 하고져 합니다
바쁘신데 수고를 끼처드려 송구 스럽습니다.
그리고 지표식을 차트에 적용하는 방법좀 간단히 부탁 드립니다.
건강하시고 날마다 웃음이 넘쳐나는 화목한 가정이 되시길 기원합니다.
이메일 : jdk365@naver.com
2013-09-21
559
글번호 67668
답변완료
문의드립니다
항상 친절하고 빠르게 답변해주셔서 고맙습니다.
시스템 챠트에서 최고가와 최저가가 각각 표시되는 데 이의 로직을 알려 주실수 없나요.
몇개봉 기준으로 표시가 되는지도 궁금합니다.
최고가와 최저가를 이용하여 다음조건의 매매식 작성을 부탁드립니다.
최고가 표시봉 발생이후 연속으로 3개봉의 고가가 최고가 표시봉의 고가보다 낮으면 매도
또는 최고가 표시봉이후 연속으로 음봉 3개 출현시 매도
또는 최고가 표시봉이후 연속으로 3개봉의 저가가 최고가 표시봉의
저가보다 낮으면 매도
최저가 표시봉 발생이후 연속으로 3개봉의 고가가 최저가 표시봉의 고가보다 높으면 매수
또는 최저가 표시봉이후 연속으로 양봉 3개 출현시 매수
또는 최저가 표시봉이후 연속으로 3개봉의 저가가 최저가 표시봉의
저가보다 높으면 매수
수고하세요
2013-09-19
144
글번호 67667
답변완료
부탁드립니다.
아래 수식의 청산을 모두제거하고,
새롭게 넣어주십시요. 감사합니다.
*현물, 분봉사용*
<청산공통>
-매수가 대비 5.5% 하락시 첫봉에 청산
<매수당일에 청산>
-매수가 대비 4.5% 상승시 첫봉에 청산
<매수 +1일에 청산>
-매수가 대비 7.5% 상승시 첫봉에 청산
-전일종가 대비5% 상승시 첫봉에 청산
-오늘 시가대비 3.5%이상 상승 후, 당일시가를 하락시 첫봉에 청산
<매수 +2일에 청산>
-매수가대비 15% 상승시 첫봉에 청산
-전일종가 대비 10% 상승시 첫봉에 청산
-09:40 이후 첫봉에 청산
==========================
input : P(5);
var : cnt(0),sum(0),sum1(0),mav(0),mav1(0),dis(0),dis1(0),daycnt(0),PredayVol(0);
Var : Pivot(0),R1(0),R2(0),S1(0),S2(0);
Pivot = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
sum = 0;
sum1 = 0;
for cnt = 0 to P-1{
sum = sum+DayClose(cnt);
sum1 = sum1+DayClose(cnt+1);
}
mav = sum/P;
mav1 = sum1/P;
dis = c/mav*100;
dis1 = DayClose(1)/mav1*100;
for cnt = 1 to 1000 {
if stime == stime[cnt] and sdate != sdate[cnt] then{
PredayVol = DayVolume[cnt];
cnt = 1001;
}
}
if date != date[1] Then{
Daycnt = daycnt+1;
var1 = dayopen/mav*100;
}
if dayopen <= DayClose(1)*1.01 and
dayhigh <= dayopen*1.04 and
dis1 >= 103 and
ExitDate(1) != sdate and
DayVolume < PredayVol*1 and
var1 > 100 Then{
if stime >= 90000 and stime < 100000 and dis >= 100.5 and dis < 101.5 Then
buy("b1",AtMarket);
if stime >= 100000 and stime < 110000 and dis >= 100.5 and dis < 102.0 Then
buy("b2",AtMarket);
if stime >= 110000 and stime < 120000 and dis >= 100.5 and dis < 102.5 Then
buy("b3",AtMarket);
if stime >= 120000 and stime < 130000 and dis >= 100.5 and dis < 103.0 Then
buy("b4",AtMarket);
if stime >= 130000 and stime < 140000 and dis >= 100.5 and dis < 103.5 Then
buy("b5",AtMarket);
if stime >= 140000 and stime < 144800 and dis >= 100.5 and dis < 104.0 Then
buy("b6",AtMarket);
if stime >= 143000 and stime < 144800 and c < Pivot and dis >= 100.5 and dis < 104.5 Then
buy("b7",AtMarket);
}
if MarketPosition == 1 Then{
if C >= EntryPrice*1.06 Then
exitlong("bx1",AtMarket);
if C <= EntryPrice*0.945 Then
exitlong("bx2",AtMarket);
if sdate == EntryDate and C >= EntryPrice*1.045 then
exitlong("bx3",AtMarket);
if sdate > EntryDate and daycnt == daycnt[BarsSinceEntry]+2 and stime >= 94000 Then
exitlong("bx4",AtMarket);
}
2013-09-23
177
글번호 67666
답변완료
주봉
안녕하세요
2주. 전. 종가. 를. 기준선. 이고
1주전. 종가도. 기준선. 이고
일간 다우산업지수. Data 2.종가. 도
기준선. 이라한다
10분. 단위로. 종가가. 기준선.상승돌파하면
매수하고. 기준선. 하락하면. 돌파매도
감사^^
2013-09-19
161
글번호 67665
답변완료
t시스템매매할때
진입은 직접 손으로하고 청산과 손절만 시스템으로 하고싶으면 어떻게하나요
예를들어 이미 진입은 되 있는상태에서
진입가격에서 0.8p하락하면 손절(3분봉완성시)
진입가격에서 1p이상 상승한 후 30분봉상 5이동평균선을 하향이탈하면 청산(30분봉완성시)
2013-09-19
181
글번호 67664