커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7700
글번호 230811
답변완료
교차시 c 값 및 교차값
Input : shortPeriod(5), longPeriod(20);
Var : 단기이평(0), 장기이평(0);
단기이평 = ma(C, shortPeriod);
장기이평 = ma(C, longPeriod);
crossup(단기이평, 장기이평) then
crossdown(단기이평, 장기이평) then
상기 내용에서
crossup 할 경우 c 값및 이평값 구하는 식 및
이전 crossup 했을 때의 c 값 및 구하는 식
그리고 이전 crossup 했을 때와의 봉 간격을 구하는 식을 알고 싶읍니다.
2011-10-07
567
글번호 43451
답변완료
간단한거 부탁드립니다
첫번째
현재가가 20이평 하향돌파시 매수...
5프로 수익시 매도
두번째
현재가가 20이평 하향돌파시 매수
더 떨어지면 40이평 하향돌파시 2차매수..
2차매수하면 본전에 절반매도 5프로 수익시 전량매도
이거 가능할까요
2011-10-07
477
글번호 43445
답변완료
문의 드립니다.(틱차트 봉 완성 시간 관련)
안녕하세요.
환절기 감기 조심하십시오.
항상 빠른 답변 감사합니다.
오늘 제가 궁금한 사항은
현제 보고 있는 선물 틱차트에서 봉이 완성되는 시간을 시스템식에 연계할 수 있는지
궁금해서 문의드립니다.
예를 들어 100틱 차트에서 봉 2개가 완성되는 시간이 30초 이내일때 매수.
매수 조건이 되도 30초를 넘어가면 신호가 나오지 않게 하는식 가능할런지요?
즐거운 하루 되세요.
2011-10-07
578
글번호 43443
답변완료
문의드립니다
예전에 틱차트나초차트 볼때 하단의 시간표시 차트속성에서 선택버튼화 해달라는거
어떻게 되었습니까?
기술적으로 어려운 문제 아닌거 같은데 조속히 좀 해결해 주세요
차트가 너무 느립니다
좀 부탁 드립니다
감사합니다
2011-10-07
463
글번호 43438
답변완료
문의
아래의 답변주신식 감사드립니다,
문제가 또하나 생겼네요.
예제))
아래 식을 5분봉 정도 기준으로
한봉당 한계약씩 (다섯개봉이 연이어 나오면서 한봉당 한개씩만) 체결 시키도록
부탁드립니다.
감사합니다.
=========================================================
#1.콜
#피라미딩-모든진입신호허용
if stime >= 91000 and CurrentContracts < 5 Then{
if dayindex%2 == 0 Then
Sell("s",OnClose,def,1);
}
SetStopEndofday(150000);
#1.풋
#피라미딩-모든진입신호허용
if stime >= 91000 and CurrentContracts < 5 Then{
if dayindex%2 == 1 then
Sell("s",OnClose,def,1);
}
SetStopEndofday(150000);
2011-10-07
427
글번호 43436
답변완료
거래량에 대한 질문 입니다
다음과 같은 질문 2개 입니다
1. 거래량은 어떻게 아나요.. 5분 봉일 때 그때의 거래량을 알고 싶으면 (5분동안)
수식을 어떻게 처리 해야 하는지 궁금 합니다 .예약어가 있는지요..?
2. 미결제 약정 수량은 어떻게 알 수 있는지 ..이것도 5분봉에서 사용하려고 합니다
즉 5분 동안의 미결제 증분과 지금까지의 미결제 양에 대하여 프로그램 하고 싶은데 예약어가 있는지요..?
2011-10-07
462
글번호 43435
답변완료
배열에서 1분봉에서 30분봉으로 쓰는 방법중 수식이해 안되서
트레이드스테이션에서 1분봉에서 30분봉을 참고하는 수식입니다
ts에선 mod(TimeToMinutes(time),30)=0 이렇게 표현 한것을 예스에서는
var1 = TimeToMinutes(stime)%TT;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
라고 했던데 그럼 1분봉에서 30분봉만 배열에 저장해야 되는데 예스 로직에서 그런 의미를 나타내는 수식이 어떤건가요
예스로직상으로는 1분마다 30분봉이 다 배열에 저장되는것 같던데
{30분봉MACD300-650-225}
input: LLEmaLen(300), LLmacd1(300), LLmacd2(650), LLmacd3(225);
var : LLemaV(0), LLmacdV(0), LLmacdS(0), LLmacdOsc(0);
{#3분봉의 5이평 계산}
input : P1(60); {#3분봉의 5이동평균}
var : stime(0),cnt(0),count(0),sum1(0),mav1(0),bearmarket(0),bullmarket(0),Factor(0),XAvPrice(0);
Array : CC[60](0);
print(date:0:0," ",time:0:0," 0TimeToMinutes(time) ",TimeToMinutes(time):0:0," ",stime:0:0,
" C of data2 ",C of data2);
if TimeToMinutes(time)= 0 or TimeToMinutes(time) <0 then
stime = 0
else if mod(TimeToMinutes(time),30)=0 or time =2359 then begin
stime = time;
for cnt =1 to 60 begin
CC[cnt] = CC[cnt-1][1];{현재봉의 CC[0]은 아래 정의하므로 전 1분봉의 값을 대입,CC[0]으로 해도 무관}
end;
CC[0] = C of data2;
print(date:0:0," ",time:0:0," 0TimeToMinutes(time) ",TimeToMinutes(time):0:0," ",stime:0:0, " 1LemaV300 ",LemaV:0:0,
" C of data2 ",C of data2," CC[0] ",CC[0]:0:0," CC[1] ",CC[1]:0:0);
for count = 0 to 59 begin
{ If LLEmaLen + 1 <> 0 Then Begin
If CurrentBar <= 1 Then Begin
Factor = 2 / (LLEmaLen + 1);
XAvPrice = CC[count];
End
Else
XAvPrice = Factor * CC[count] + (1 - Factor) * XAvPrice[1];
End;}
{ LLemaV = XAvPrice;
{LLemaV = Round(XAverage(CC[count],LLEmaLen),1);}
LLMacdV = macd(CC[count],LLmacd1,LLmacd2);
LLMacdS = XAverage(LLMacdV,LLmacd3);
LLMacdOsc = LLMacdV-LLMacdS;
print(date:0:0," ",time:0:0," stime ",stime:0:0, " count ",count:0:0," 2LLemaV300 ",LLemaV:0:0," CC[count] ",CC[count]:1:3,
" XAvPrice[1] ",XAvPrice[1]:5:3,
" LLMacdV ",LLMacdV:5:3," LLMacdS ",LLMacdS:1:3,
" LLMacdOsc ",LLMacdOsc,
" C of data2 ",C of data2,
" CC[count]",CC[count],
" CC[1]",CC[1]);}
end;
end;
안녕하세요
예스스탁입니다.
input : TT(30),Length(14);
var : TL(0),TH(0),cnt(0),Dcnt(0),preTRange(0),prePlusDM14(0),DMinus(0),MinusDM14(0),TRange1(0),preMinusDM14(0);
Variables: Counter(0), TRange(0), MyRange(Length), PlusDM14(0), PlusDM(0), MinusDM(0),Dplus(0),preADX(0),ADXv(0);
Array : HH[61](0),LL[61](0),CC[61](0),TR[61](0),DMIv[61](0);
var1 = TimeToMinutes(stime)%TT; <-----(나눈값이 영이 되야 되지 않나요?)
<---아래식은 var1이 만족하는경우만 돌아야 될것 같은데 그런수식이 없는데 어찌 이해해야 하난요?
단순히 날짜가 바뀌경우만 저장하라면 1분봉에서 30분봉 참조시 각 1분마다
30분봉의 데이타를 배열에 저장하는꼴이 될것 같은데요?
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
Dcnt = Dcnt+1;
HH[0] = H;
LL[0] = L;
CC[0] = C;
preTRange = TRange[1];
prePlusDM14 = PlusDM14[1];
preMinusDM14 = MinusDM14[1];
preADX = ADXv[1];
for cnt = 1 to 60{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
TR[cnt] = TR[cnt-1][1];
DMIv[cnt] = DMIv[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
CC[0] = C;
if CC[1] > 0 Then{
If CC[1] > HH[0] then
TH = CC[1];
else
TH = HH[0];
If CC[1] < LL[0] then
TL = CC[1];
else
TL = LL[0];
TR[0] = TH-TL;
}
If Dcnt == Length+1 Then {
MyRange = Length;
DPlus = 0;
PlusDM14 = 0;
TRange = 0;
DMinus = 0;
MinusDM14 = 0;
TRange1 = 0;
For Counter = 0 To MyRange - 1 {
If HH[Counter] - HH[Counter+1] < 0 Then
PlusDM = 0 ;
Else
PlusDM = HH[Counter] - HH[Counter+1];
If LL[Counter+1] - LL[Counter] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[Counter+1] - LL[Counter];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0;
TRange = TRange + TR[Counter];
PlusDM14 = PlusDM14 + PlusDM;
MinusDM14 = MinusDM14 + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
}
Else If Dcnt > Length+1 Then {
If HH[0] - HH[1] < 0 Then
PlusDM = 0;
Else
PlusDM = HH[0] - HH[1];
If LL[1] - LL[0] < 0 Then
MinusDM = 0;
Else
MinusDM = LL[1] - LL[0];
If MinusDM >= PlusDM Then
PlusDM = 0;
If PlusDM >= MinusDM Then
MinusDM = 0 ;
If MyRange > 0 Then {
TRange = preTRange - (preTRange / MyRange) + TR[0];
PlusDM14 = prePlusDM14 - (prePlusDM14 / MyRange) + PlusDM;
MinusDM14 = preMinusDM14 - (preMinusDM14 / MyRange) + MinusDM;
}
If TRange <> 0 Then
DPlus = 100 * PlusDM14 / TRange;
Else
DPlus = 0 ;
If TRange <> 0 Then
DMinus = 100 * MinusDM14 / TRange;
Else
DMinus = 0;
}
If DPlus + DMinus == 0 Then
DMIv[0] = 0;
Else
DMIv[0] = 100 * Abs(DPlus - DMinus) / (DPlus + DMinus);
Variables: CummDMI(0), Return(0);
Return = 0;
If dcnt >= Length AND Length > 0 Then Begin
If CurrentBar < Length+1 Then begin
CummDMI = 0;
for Counter = 0 To CurrentBar - 1 Begin
CummDMI = CummDMI + DMIV[Counter];
End;
Return = CummDMI / CurrentBar;
End
Else
Return = (preADX[1] * (Length - 1) + DMIv[0]) / Length;
End;
ADXv = Return;
plot1(ADXv);
plot2(Dplus);
plot3(Dminus);
즐거운 하루되세요
> 대뽀12 님이 쓴 글입니다.
> 제목 : 5분봉에서 30분봉 지표를 볼수있는 수식을 부탁드립니다
> 안녕하세요.
5분봉이나 10분봉 차트에서 30분봉 상 adx 지표를 볼수 있는 수식좀 부탁드립니다
2011-10-07
533
글번호 43434
답변완료
수식 검토 바랍니다...
안녕하세요...
시스템 수식을 차트에 구현한 결과...
20 이평 위 에서 매도가 나오고,
20 이평 아래 에서 매수가 나오는 등....
20 이평 돌파 라는 조건과
양봉 5개째 매수 또는 음봉 5개째 매도 라는 조건이
불완전하게 결합된듯 합니다...
한가지 예를 살펴보면,
20 이평을 양봉으로 상향돌파후... 신호가 발생하지 않는 상태에서
재차 20 이평을 하향돌파하더라도 계속 양봉을 카운트하여... 5개째 양봉에...
20 이평 아래에서 매수 신호를 발생시키는 문제점이 생기더군요...
반대의 경우도 마찬가지 입니다...
혹시, 20 이평 위에서 매도금지 또는 20 이평 아래에서 매수금지
이런 조건이라도 추가되어야 하는지...하여... 재차 문의 드립니다...
감사합니다...
=============================================
Re : 이평 돌파후 양봉
안녕하세요
예스스탁입니다.
if crossup(c,ma(C,20)) Then
var1 = 0;
if C > O Then{
var1 = var1+1;
if var1 == 5 Then
buy();
}
if CrossDown(c,ma(C,20)) Then
var2 = 0;
if C < O Then{
var2 = var2+1;
if var2 == 5 Then
sell();
}
즐거운 하루되세요
> 지행합 님이 쓴 글입니다.
> 제목 : 이평 돌파후 양봉
>
안녕하세요...
시스템식 문의 드립니다..
20 이평 상향돌파후 양봉 5개째 "매수" (연속된 양봉이 아니더라도)
20 이평 하향돌파후 음봉 5개째 "매도" (연속된 음봉이 아니더라도)
감사합니다...
2011-10-07
414
글번호 43433
답변완료
20884에 대한 출력문 부탁드립니다
안녕하세요!!!
어제 질의한 20884에 대하여 추가로 매일매일 진입신호 발생할 때 계산 되어진 변수의 값들을 출력하여 엑셀파일에서 분석하고자 합니다!!!
선언된 v1,v2,v3,v4,vv 값
그리고 요일 함수값 DayOfWeek(sdate), 날짜, 시각 출력을 원합니다!!!
형식은 아래와 같습니다!!!
가격데이타들도 출력이 가능한지요??? 가능하다면 아래 형식대로 출력하고요, 가격데이타 출력이 불가능하면 가격데이타는 빼고 부탁드립니다!!!
날짜, 시각, 요일, v1,v2,v3,v4,vv, data1(DayClose(1)), data2(DayClose(1)), data3(DayClose(1))
매일 1회 혹은 2회 진입 신호 발생할 때마다의 항목별 자료를 출력하여 엑셀에서 분석하고자 합니다!!!
부탁드립니다!!!
2011-10-07
448
글번호 43432