커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6596
글번호 230811
답변완료
질문이요..
먼저 친절한 답변 감사드립니다..
전략시뮬레이션에서 기간동안 수익률은 어디서 어덯게 확인할수 있나요..
시스템 성능 보고서를 봤는데 조금 이상하게 나와서요..
2015-04-27
136
글번호 85470
답변완료
진입제어 추가 요청
아래의 식에 매수든 매도든 진입과 청산을 각 1회하는 함수를 추가하고 싶습니다.
(그런데 오후 7시부터 익일 오전 1시까지 해외선물을 거래하고 오전 5시에 자동청산하는 함수가 맞게 들어갔는지도 확인 부탁드립니다.)
var : entry(0);
if bdate != bdate[1] Then
entry = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
entry = entry+1;
var1 = ;
var2 = ;
var3 = ;
var4 = ;
var5 = ;
var6 = ;
var7 = ;
var8 = ;
var9 = ;
var10 = ;
if stime >= 190000 or stime < 010000 and
MarketPosition == 0 and entry == 0 Then{
if var7 > var8 Then
sell("s",AtStop,var7);
if var7 < var8 Then
buy("b",AtStop,var7);
}
if stime >= 190000 or stime < 010000 and
MarketPosition == -1 Then{
ExitShort("sp",atlimit,var9);
ExitShort("sl",AtStop,var6);
}
if MarketPosition == 1 Then{
exitlong("bp",atlimit,var6);
ExitLong("bl",AtStop,var9);
}
if stime == 0500 or (stime > 050000 and stime[1] < 050000) Then{
ExitLong("Bx");
ExitShort("Sx");
}
2015-04-27
171
글번호 85469
답변완료
부탁드립니다
미안합니다..이지표수식에서는 양운구간에최상단선과 그때 구름하단저가와대칭인데요.그게안아라 양운구름구간대 아래에있는 최저가와대칭되게해주세요*(음운구간대는반대로)* Var : 기준선(0), 전환선(0), 후행스팬(0), 선행스팬1(0), 선행스팬2(0);
var : HH(0),LL(0),T(0),Hv(0),LV(0),cloud(0);
전환선 = (Highest(High, 9) + Lowest(Low, 9)) / 2;
기준선 = (Highest(High, 26) + Lowest(Low, 26)) / 2;
후행스팬 = Close ;
선행스팬1 = (전환선[25] + 기준선[25]) / 2 ;
선행스팬2 = (Highest(High, 52)[25] + Lowest(Low, 52)[25]) / 2;
if 선행스팬1 > 선행스팬2 Then
cloud = 1;
if 선행스팬1 < 선행스팬2 Then
cloud = -1;
if Cloud == 1 and Cloud[1] != 1 Then{
T = 1;
Hh = 선행스팬1;
}
if Cloud == -1 and Cloud[1] != -1 Then{
T = -1;
Ll = 선행스팬1;
}
if T == 1 and 선행스팬1 > hh Then{
Hh = 선행스팬1;
Hv = L;
if C < 선행스팬1 Then{
var1 = Hh;
var2 = Hv;
var3 = Hh+abs(HH-HV);
var4 = HH+abs(HH-HV)+0.2;
var5 = HH+abs(HH-HV)+0.5;
}
}
if T == -1 and 선행스팬1 < ll Then{
LL = 선행스팬1;
Lv = H;
if C > 선행스팬1 Then{
var6 = LL;
var7 = LV;
var8 = LL-abs(LL-LV);
var9 = LL-abs(LL-LV)-0.2;
var10 = LL-abs(LL-LV)-0.5;
}
}
plot1(var1,"양운최상단");
plot2(var2,"양운최상단저가");
plot3(var3,"양운대칭");
plot4(var4,"양운대칭+0.2");
plot5(var5,"양운대칭+0.5");
plot6(var6,"음운최하단");
plot7(var7,"음운최하단고가");
plot8(var8,"음운대칭");
plot9(var9,"음운대칭-0.2");
plot10(var10,"음운대칭-0.5");
2015-04-27
172
글번호 85468
spek 님에 의해서 삭제되었습니다.
2015-04-27
5
글번호 85467
답변완료
프로그램 수정
갭보정에서 사용하던 산식을
갭무보정차트에 적용키위해 산식을 수정중입니다
아래와 같은 원래산식을 작성해주신 산식으로 수정을 했는데 제대로 않되네요
검토부탁드립니다
-갭보정차트에서 사용하던 원래산식-
var:J(0);
var:상승율(0),하락율(0),상(0),하(0);
상승율=ma( (GAP_Ma(C,1)-DayLow[1])/(DayHigh[1]-DayLow[1])*100,2) ;
하락율=ma( (DayHigh[1]-GAP_Ma(C,1))/(DayHigh[1]-DayLow[1])*100,2) ;
If 상승율 >=100 Then
상=100;
Else If 상승율 <=0 Then
상=0;
Else
상=상승율;
If 하락율 >=100 Then
하=100;
Else If 하락율 <=0 Then
하=0;
Else
하=하락율;
plot1(상,"상");
plot2(하,"하");
-갭무보정차트에 적용할 수정식-
var : gapx(0),sumgapx(0),GxO(0),GxH(0),GxL(0),GxC(0),xcnt(0);
Array : GapxDO[50](0),GapxDH[50](0),GapxDL[50](0),GapxDC[50](0);
if date!=date[1] THen { // 날짜가 변경되는 봉에서(분봉에서 첫번째 봉)
gapx = Open-Close[1]; // 일간갭
sumGapx = sumGapx+gapx; // 일간갭 누적
GapxDO[0] = O - sumGapx;
GapxDH[0] = H - sumGapx;
GapxDL[0] = L - sumGapx;
for xcnt = 1 to 49{
GapxDO[xcnt] = GapxDO[xcnt-1][1];
GapxDH[xcnt] = GapxDH[xcnt-1][1];
GapxDL[xcnt] = GapxDL[xcnt-1][1];
}
}
GxO = O - sumGapx;// 갭보정 시가
GxH = H - sumGapx;// 갭보정 고가
GxL = L - sumGapx;// 갭보정 저가
GxC = C - sumGapx; // 갭보정 종가
GapxDC[0] = GxC;
##############################################
var:J(0);
var:상승율(0),하락율(0),상(0),하(0);
상승율=ma( (GAP_Ma(C,1)-GapxDL[1])/(GapxDH[1]-GapxDL[1])*100,2) ;
하락율=ma( (GapxDH[1]-GAP_Ma(C,1))/(GapxDH[1]-GapxDL[1])*100,2) ;
//상승율=ma( (GxC-GxL[1])/(GxH[1]-GxL[1])*100,2) ;
//하락율=ma( (GxH[1]-GxC)/(GxH[1]-GxL[1])*100,2) ;
If 상승율 >=100 Then
상=100;
Else If 상승율 <=0 Then
상=0;
Else
상=상승율;
If 하락율 >=100 Then
하=100;
Else If 하락율 <=0 Then
하=0;
Else
하=하락율;
plot1(상,"상");
plot2(하,"하");
2015-04-27
144
글번호 85465
회원 님에 의해서 삭제되었습니다.
2015-04-27
10
글번호 85459
답변완료
프로그램 수정
아래의산식은 시스템중일부입니다
산식중 GAP_ma(C,05)는 작성해주신 사용자 함수입니다
이함수를 이용해서 갭을 제거한 산식을 사용하고 있습니다만
dayhigh,daylow와 같이 어떻게해야 갭을 제거하고사용할지 모르는 것도 있습니다
(틱차트나 분봉차트에서 일이평을 참고하려던 산식도 있습니다)
그래서 갭보정차트를 사용하던중 아래에서 질문한것(41555번: 6개월차트와 12개월차트상의시스템적용 차이)가 발생한것입니다
아래의 산식에서 갭을 제거한 산식으로 수정부탁드립니다
-아 래-
##################################################################
#이평선 ma(c,05),ma(c,10),ma(c,20),ma(c,30)ma(c,60),ma(c,120) #
##################################################################
var : MA05(0),MA07(0),MA10(0),MA20(0);//,MA07(0),MA10(0),MA30(0),MA60(0)
MA05 = GAP_ma(C,05);
MA07 = GAP_ma(C,7);
MA10 = GAP_ma(C,10);
MA20 = GAP_ma(C,20);
#####################################
# 당일 Range & 30봉간 고저점 #
#####################################
var:DayRange(0),DH(0),DL(0),DM(0);
DayRange = dayhigh-daylow;
If 0<=DayIndex and DayIndex<=30 Then {
DH=ma(Highest(GAP_ma(h,1),30)-(DH-DL)*(6/9),5);
DL=ma(lowest (GAP_ma(L,1),30)+(DH-DL)*(6/9),5);
DM=DH-(DH-DL)*0.5;
}
else If DayIndex>30 Then {
DH=(dayhigh-(DayRange*(1/3)));
DM=(dayhigh-(DayRange*(1/2)));
DL=(dayhigh-(DayRange*(2/3)));
}
//input :Len(20);
/*H30=ma(Highest(GAP_ma(C,1),20),6);
L30=ma(lowest (GAP_ma(c,1),20),6);
M30=H30-0.5*(H30-L30) ;
가 = GAP_ma(C,2);
나 = H30 ;
다 = Ma05;
라 = Ma10;
마 = M30; //Ma08 DM
바 = L30; //
사 = Dayv;
*/
var:H30(0),L30(0),M30(0);
H30=ma(Highest(GAP_ma(C,1),25),7);
L30=ma(lowest (GAP_ma(c,1),25),7);
M30=H30-0.5*(H30-L30) ;
#####################################
# 5이평 일봉 #
#####################################
//input : P1(5);
var : sumGap(0), gap(0),cnt(0),sumV(0),mav(0),mav1(0);
Array : GC[100](0);
if date!=date[1] then {
gap = Open-Close[1];
sumGap = sumGap+gap;
for cnt = 1 to 99{
GC[cnt] = GC[cnt-1][1];
}
}
GC[0] = C - sumGap;
sumV = 0;
if GC[5] > 0 Then{
for cnt = 0 to 5-1 {
sumV = sumV+GC[cnt];
}
maV = sumV / 5;
}
If DayIndex==0 Then
Mav1=Mav;
#####################################
# 당일시가와 5이평일봉의 중간 #
#####################################
var:DayM(0);
If DayV>Mav1 Then
DayM=Mav1+(DayV-Mav1)*0.5 ;
Else If DayV<Mav1 Then
DayM=DayV+(Mav1-DayV)*0.5 ;
Else If DayV==Mav1 Then
DayM=DayV;
###################################################
### 분봉에서 일간이평 ###
###################################################
//input : D1(5),D2(10),D3(20);
var : count(0),sumV1(0),sumV2(0),sumV3(0);
var : Dav1(0),Dav2(0),Dav3(0);
sumV1 = 0;
sumV2 = 0;
sumV3 = 0;
for count = 0 to 20 {
if count < 2 Then
sumV1 = sumV1+DayClose(count);
if count < 04 Then
sumV2 = sumV2+DayClose(count);
if count < 08 Then
sumV3 = sumV3+DayClose(count);
}
DaV1 = sumV1 / 2;
DaV2 = sumV2 / 04;
DaV3 = sumV3 / 08;
2015-04-27
187
글번호 85458
답변완료
수식 문의 드립니다.
1) 옵션
60 개 이전 거래 봉중 전저점대비 5개 point 상승시 ( 옵션 거래 기준 0.01 x 5 개 = 0.05 )-- 매수
60개 이전거래 봉중 전 고점대비 5개Point 하락시 ( 옵션 거래 기준 0.01 x 5 개 = -0.05 )- 매도
2) 주식
60 개 이전 거래 봉중 전저점대비 5개 point 상승시 ( 옵션 거래 기준 5,10.50,100, 500, 1000, 5000 x 5 개 )-- 매수
60개 이전거래 봉중 전 고점대비 5개Point 하락시 ( 옵션 거래 기준 5,10.50,100 ,1000, 5000 x 5 )- 매도
2015-04-27
137
글번호 85457
답변완료
수식 문의 드립니다.
1) 옵션
60 개 이전 거래 봉중 전저점대비 5개 point 상승시 ( 옵션 거래 기준 0.01 x 5 개 = 0.05 )-- 매수
60개 이전거래 봉중 전 고점대비 5개Point 하락시 ( 옵션 거래 기준 0.01 x 5 개 = -0.05 )- 매도
2) 주식
60 개 이전 거래 봉중 전저점대비 5개 point 상승시 ( 옵션 거래 기준 5,10.50,100, 500, 1000, 5000 x 5 개 )-- 매수
60개 이전거래 봉중 전 고점대비 5개Point 하락시 ( 옵션 거래 기준 5,10.50,100 ,1000, 5000 x 5 )- 매도
2015-04-27
127
글번호 85456