커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8154
글번호 230811
답변완료
안녕하세요.
안녕하세요.....
수고 많으십니다.
아래수식을 (5)는 검정색 (10)은 빨강색 (20)은 파랑색으로 표현 했으면 하고요.
(5) 와 (10) 과 (20) 사이에 색 채우기를 하고 싶습니다.
가능 하시면 부탁드립니다.
감사합니다....
input : P1(5);
var : sumV(0), maV(0), count(0);
sumV = 0;
for count = 0 to P1-1 {
sumV = sumV+DayClose(count);
}
maV = sumV / P1;
plot1(mav,"분봉에서일봉이평");
2018-01-30
236
글번호 116195
답변완료
안녕하세요
진입할때 조건추가식부탁드립니다
당일10시부터 11시사이에 진입신호발생시에 첫번째신호는
진입하지 안고 두번째 진입신호부터 진입하고
11시이후진입신호는 무조건진입하도록 부탁드립니다
수식하나 추가부탁합니다
09시 시가기준으로 +10 틱이면 매수 -10틱이면 매도
익절 10 틱 손절10 틱
매매시간 09시부터 11시 까지
매매횟수 3 회한정
부탁드립니다
2018-01-31
187
글번호 116190
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
선물에서 수식으로 포지션 손실 이익은 어떤 식으로 계산할 수 있나요? 예를 들어 설명 부탁드립니다.
2018-01-30
195
글번호 116185
2wnwn 님에 의해서 삭제되었습니다.
2018-01-30
19
글번호 116182
답변완료
문의드립니다.
안녕하세요.
아래 수식의 주석 설명 부탁드립니다.
var : cnt(0),idx(0),LL(0),HH(0),H1(0),L1(0);
var : Vcond(false),Vcond1(false);
var1 = lowest(L,100);
var2 = ma(V,60);
if L == var1 Then{
Condition1 = true;
Vcond = false;
LL = var1;
HH = H;
idx = 0;
H1 = -1;
}
else if Condition1 == true then{
idx = idx+1;
if H > HH Then{
HH = H;
if V == var2 Then
Vcond = true;
Else
Vcond = false;
}
H1 = -1;
Vcond1 = false;
for cnt = 0 to idx-1
{
if L[cnt] < HH[cnt]-(HH[cnt]-LL[cnt])*0.3 Then{
H1 = HH[cnt];
Vcond1 = Vcond[cnt];
cnt = idx+2;
}
}
if idx >= 10
and idx <= 90
and H1 > 0
and Vcond1 == true
and H1 >= LL*1.3
and H1 < LL*2.5
and HH > H1
and HH < H1*1.5
and C > H1
and C <= H1*1.3
Then
find(1);
}
수고하세요.
2018-01-30
222
글번호 116170
답변완료
연속 PRINT( 2차 보완문의)
안녕하십니까 ?
1. Q&A- 56455 관련으로 재차 문의 합니다.
2 . 현재
######################################
(1) 진입+청산조건
(2) 진입 >> 청산식
(3) print 명령
#######################################
으로 DATA 를 받아 분석하고 있습니다.
3. 문제는 (1) 진입청산조건을 다양하게 변경할경우 매번 반복적으로 (1)-(3) 과정을
진행해야만 하는 상황인데
4. 이를 아래와 같이 FOR 문을 사용하여 SESSION 하나로 처리하고자 합니다.
그런데 이렇게 하면 OUTPUT 로 PRINT 된 DATA 가 상기 2 방식보다 확장되어
나옵니다. ( 약 2배정도 많은 DATA 가 PRINT 됨. )
#######################################
FOR j = 1 to 10 step 1 begin {
(1) j1 >> 진입청산 조건1
j2 >> 진입청산 조건2
(2) 진입 >> 청산식
(3) print 명령
} end ;
############################################
5. FOR문을 사용하여 (2)와 같은 PRINT를 얻을수 있는 해결방법을 부탁드립니다.
감사합니다. 한프로 , 010-2057-6930, 2018-01-30
2018-01-30
344
글번호 116169
답변완료
수정부탁드립니다
안녕하세요
48594번1-1 20일선 상승시빨강색 하락시파랑색 잘부탁드립니다
2018-01-30
208
글번호 116168
답변완료
시스템 문위드립니다
검정선 입니다
Input: M3(3.5), P5(5);
VAR: HL(0), MAHL(0), HILO(0), HR(0), LR(0), DIF1(0),
DIF2(0), ATRM(0), LOSS(0), TR(0);
HL= H - L;
MAHL= 1.5*MA(HL, P5);
HILO= IFF(HL<MAHL, HL, MAHL);
HR= IFF(L<=H[1], H-C[1], (H-C[1]) - (L-H[1])/2);
LR= IFF(H>=L[1], C[1]-L, (C[1]-L) - (L[1]-H)/2);
DIF1= MAX(HILO, HR);
DIF2= MAX(DIF1, LR);
ATRM= WWMA(DIF2, P5);
LOSS= M3*ATRM;
TR= IFF(C>TR[1] AND C[1]>TR[1],Max(TR[1],C-loss),
IFF(C<TR[1] AND C[1]<TR[1],Min(TR[1],C+loss),
IFF(C>TR[1],C-loss,C+loss)));
Plot1(TR, "HILO TRAIL");
2018-01-29
278
글번호 116167
답변완료
질문드립니다.
Strategy: Ehlers DFT
inputs:
Price( MedianPrice ),
Window( 50 ), { maximum Window = 50 }
OverBought( 70 ),
OverSold( 30 ),
Frac( 0.5 ) ;
variables:
HP( 0 ),
CleanedData( 0 ),
Per( 0 ),
CosPer( 0 ),
CycPer( 0 ),
Alpha1( 0 ),
Period( 0 ),
n( 0 ),
MaxPwr( 0 ),
Num( 0 ),
Denom( 0 ),
ThreeMinus( 0 ),
DominantCycle( 0 ),
Change( 0 ),
AbsChange( 0 ),
Count( 0 ),
DFT_RSI( 0 ) ;
{ arrays are sized for a maximum period of 50 bars }
arrays:
CosinePart[50]( 0 ),
SinePart[50]( 0 ),
Pwr[50]( 0 ),
DB[50]( 0 ),
SF[50]( 0 ),
NetChgAvg[50]( 0 ),
TotchgAvg[50]( 0 ),
RSIArray[50]( 0 ) ;
{ detrend data by high-pass filtering with a 40 period
cut-off }
if CurrentBar <= 5 then
begin
HP = Price ;
CleanedData = Price ;
end
else if CurrentBar > 5 then
begin
Per = 360 / 40 ;
CosPer = Cosine( Per ) ;
if CosPer <> 0 then
Alpha1 = ( 1 - Sine( Per ) ) / CosPer ;
HP = 0.5 * ( 1 + Alpha1 ) * ( Price - Price[ 1 ] ) +
Alpha1 * HP[1] ;
CleanedData = ( HP + 2 * HP[1] + 3 * HP[2] + 3 *
HP[3] + 2 * HP[4] + HP[5] ) / 12 ;
end ;
{ calculate DFT }
for Period = 8 to 50
begin
CosinePart[Period] = 0 ;
SinePart[Period] = 0 ;
for n = 0 to Window - 1
begin
CycPer = ( 360 * n ) / Period ;
CosinePart[Period] = CosinePart[Period] +
CleanedData[n] * Cosine( CycPer ) ;
SinePart[Period] = SinePart[Period] +
CleanedData[n] * Sine( CycPer ) ;
end ;
Pwr[Period] = Square( CosinePart[Period] ) +
Square( SinePart[Period] ) ;
end ;
{ find maximum power level for normalization }
MaxPwr = Pwr[8] ;
for Period = 8 to 50
begin
if Pwr[Period] > MaxPwr then
MaxPwr = Pwr[Period] ;
end ;
{ normalize power levels and convert to decibels }
for Period = 8 to 50
begin
if MaxPwr > 0 and Pwr[Period] > 0 then
DB[Period] = -10 * log( 0.01 / ( 1 - 0.99 *
Pwr[Period] / MaxPwr ) ) / log( 10 ) ;
if DB[Period] > 20 then
DB[Period] = 20 ;
end ;
{ find dominant cycle using CG algorithm }
Num = 0 ;
Denom = 0 ;
for Period = 8 to 50
begin
if DB[Period] < 3 then
begin
ThreeMinus = 3 - DB[Period] ;
Num = Num + Period * ThreeMinus ;
Denom = Denom + ThreeMinus ;
end ;
end ;
if Denom <> 0 then
DominantCycle = Num / Denom ;
Change = Price - Price[1] ;
AbsChange = AbsValue( Change ) ;
for Count = 1 to Window
begin
if CurrentBar = 1 then
begin
SF[Count] = 1 / Count ;
NetChgAvg[Count] = ( Price - Price[Count] ) /
Count ;
TotChgAvg[Count] = Average( AbsChange, Count ) ;
end
else
begin
NetChgAvg[Count] = NetChgAvg[Count][1] +
SF[Count] * ( Change - NetChgAvg[Count][1] ) ;
TotChgAvg[Count] = TotChgAvg[Count][1] +
SF[Count] * ( AbsChange -
TotChgAvg[Count][1] ) ;
if TotChgAvg[Count] <> 0 then
RSIArray[Count] = ( 50 *
( NetChgAvg[Count] / TotChgAvg[Count] +
1 ) )
else
RSIArray[Count] = 50 ;
end ;
end ;
DFT_RSI = RSIArray[ iff( Frac * DominantCycle < 50,
Frac * DominantCycle, 50 ) ] ;
{ CB > 1 check used to avoid spurious cross confirmation at CB = 1 }
if Currentbar > 1 then
begin
if DFT_RSI crosses over OverSold then
Buy ( "RSI-LE" ) next bar at market ;
if DFT_RSI crosses under OverBought then
Sell Short ( "RSI-SE" ) next bar at market ;
end ;
TS 코드를 가져온 것인데요. 예스트레이더와 굉장히 흡사한 랭귀지를 구사하고있네요. buy sell식을 빼고 구현하고싶습니다. 변환이 가능한지 궁금합니다.
2018-01-29
406
글번호 116166