커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4471
글번호 230811
답변완료
문의드립니다
Input:length(10);
Var:lastHi(0),lastLo(0),lastVertex(""),procBit("");
//ssssssssssssssssssssssssssssssssss
Var:sBar(0),TL1(0);
//eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
Var:PK1(0),PK2(0),PK3(0),PK4(0),PK5(0),PK6(0),PK7(0),PK8(0),PK9(0),PK10(0),
VL1(0),VL2(0),VL3(0),VL4(0),VL5(0),VL6(0),VL7(0),VL8(0),VL9(0),VL10(0),
pkBN1(0),pkBN2(0),pkBN3(0),pkBN4(0),pkBN5(0),
pkBN6(0),pkBN7(0),pkBN8(0),pkBN9(0),pkBN10(0),
vlBN1(0),vlBN2(0),vlBN3(0),vlBN4(0),vlBN5(0),
vlBN6(0),vlBN7(0),vlBN8(0),vlBN9(0),vlBN10(0);
//==========================================
Condition1 = Highest(H,length) == H and lastHi <> H;
Condition2 = Lowest (L,length) == L and lastLo <> L;
procBit = "";
If Condition1 and Condition2 Then Begin
If lastVertex == "Valley" Then Begin
If VL1 > L Then procBit = "Valley";
Else procBit = "Peak";
End
Else If lastVertex == "Peak" Then Begin
If PK1 < H Then procBit = "Peak" ;
Else procBit = "Valley";
End;
End
Else If Condition1 Then procBit = "Peak";
Else If Condition2 Then procBit = "Valley";
//==========================================
If procBit == "Peak" Then Begin
lastHi = H;
If lastVertex == "Valley" Then Begin
PK9 = PK8; pkBN9 = pkBN8;
PK8 = PK7; pkBN8 = pkBN7;
PK7 = PK6; pkBN7 = pkBN6;
PK6 = PK5; pkBN6 = pkBN5;
PK5 = PK4; pkBN5 = pkBN4;
PK4 = PK3; pkBN4 = pkBN3;
PK3 = PK2; pkBN3 = pkBN2;
PK2 = PK1; pkBN2 = pkBN1;
PK1 = C; pkBN1 = index;
//ssssssssssssssssssssssssssssssssss
// 직전저점에서 현재의 고점까지 잇는 추세선을 생성
// 추세선생성 함수 TL_New(시작점 일자,시작점 시각,시작점 값,끝점 일자, 끝점 시각,끝점 값)
// 시작점의 일자와 시각을 구하기 위해 현재 봉에서 얼마나 떨어졌나를 계산
// 끝점은 현재 봉이므로 Date[0], Time[0]이라 [0]을 생략
sBar = index - vlBN1;
TL1 = TL_New(Date[sBar],Time[sBar],VL1,Date,Time,PK1);
// TL1은 추세선의 번호를 결과로 돌려받는다.
// 리턴된 추세선 번호를 이용해서 선의 두께와 색깔을 설정
TL_SetSize(TL1,2);
TL_SetColor(TL1,MAGENTA);
//eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
End
Else If PK1 < H Then Begin
PK1 = H; pkBN1 = index;
//ssssssssssssssssssssssssssssssssss
// 신규 고점이 생긴게 아니라 고점의 위치가 바뀐 것이므로 추세선의 끝점만 바꿔주면 된다.
// 여기서 끝점은 현재 봉이다.
TL_SetEnd(TL1,Date,Time,PK1);
//eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
End ;
lastVertex = "Peak";
End ;
//==========================================
If procBit == "Valley" Then Begin
lastLo = L;
If lastVertex == "Peak" then Begin
VL9 = VL8; vlBN9 = vlBN8;
VL8 = VL7; vlBN8 = vlBN7;
VL7 = VL6; vlBN7 = vlBN6;
VL6 = VL5; vlBN6 = vlBN5;
VL5 = VL4; vlBN5 = vlBN4;
VL4 = VL3; vlBN4 = vlBN3;
VL3 = VL2; vlBN3 = vlBN2;
VL2 = VL1; vlBN2 = vlBN1;
VL1 = L; vlBN1 = index;
//ssssssssssssssssssssssssssssssssss
sBar = index - pkBN1;
TL1 = TL_New(Date[sBar],Time[sBar],PK1,Date,Time,VL1);
TL_SetSize(TL1,2);
TL_SetColor(TL1,BLUE);
//eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
End
Else If VL1 > L then Begin
VL1 = L; vlBN1 = index;
//ssssssssssssssssssssssssssssssssss
TL_SetEnd(TL1,Date,Time,VL1);
//eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
End ;
lastVertex = "Valley";
End ;
Plot2(highest(H,length));
plot3(lowest(L,length));
지그재그마지막선을찍을때 수평으로 선이나오게 하고십습니다.(마지막만수평선이나오게,고점찍을때는 저점수평은 나오지않고고점수평선만나오게,, 반대로 저점찍을떄는 고점수평선은사라지고 저점수평선만나오게 .즉한개수평선만나오게,)색상은 고점선은레드색 저점선은 블루색으로 부탁드립니다.미리감사드립니다~~
2018-12-18
319
글번호 124581
답변완료
질문입니다.
안녕하세요.
여러가지 도움을 주셔서 감사드립니다.
궁금한데요.
Text_Delete(var1);
var1 = Text_New(sdate,stime,L-PriceScale,NumToStr((H-O)/PriceScale,0)+NewLine+"0"+NewLine+NumToStr(abs(L-O)/PriceScale,0));
Text_SetStyle(var1,2,0);
여기서 완성봉만 나오게 하셨는데
혹시 실시간은 안되나요?
완성봉 말고 완성봉 다음 시가 나오고 그다음 고가 저가 움직임을 실시간으로 숫자 보기 가능한가요?
2018-12-18
278
글번호 124579
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 변환 부탁드립니다.
inputs:
Price( Close ),
BandsPeriod( 20 ),
BandsDeviation( 2.4 ),
LowBandAdjust( .9 ),
MidLineLength( 20 ) ;
variables:
HighBand( 0 ),
LowBand( 0 ),
MidLine( 0 ),
ATRVal( 0 ),
WtdAvgVal( 0 ) ;
ATRVal = AvgTrueRange( BandsPeriod * 2 - 1 )
* BandsDeviation ;
WtdAvgVal = WAverage( Price, BandsPeriod ) ;
HighBand = WtdAvgVal + WtdAvgVal
* ( AtrVal / Price ) ;
LowBand = WtdAvgVal - WtdAvgVal
* ( AtrVal * LowBandAdjust / Price ) ;
MidLine = WAverage( TypicalPrice, MidLineLength ) ;
Plot1( HighBand, "Upper Band" ) ;
Plot2( LowBand, "Lower Band" ) ;
Plot3( MidLine, "Mid Line" ) ;
2018-12-18
255
글번호 124571
답변완료
수정의뢰 드려요
안녕하세요!
아래 수식은 일전에 만들어 주신 콜과 풋의 교챠챠트 전일 고가와 저가 수식 입니다!
아래 수식에 콜과 풋의 월저 와 월고, 월물 첫날 저가 수식을 합쳐보고 싶습니다!
만들어 주신 수식들을 합쳐보았는데 자꾸 에러가 생기네요!
부탁합니다!
plot1(data1(highD(1)),"d1전일고가");
plot2(data1(LowD(1)),"d1전일저가");
plot3(data2(highD(1)),"d2전일고가");
plot4(data2(LowD(1)),"d2전일저가");
2018-12-18
265
글번호 124570
답변완료
수식부탁드려요~~
항상 도움을 주셔서 감사합니다. 수익이 안나서 정말 힘드네요..
이 컨셉이 맞는건인지 모르겠지만 다시 부탁드려봅니다.
2018-12-18
253
글번호 124569
신호매매 님에 의해서 삭제되었습니다.
2018-12-18
0
글번호 124560
답변완료
문의드립니다
아래
1번수식은
옵션만기일 다음날 옵션기준가를 그리는 수식입니다.
2번수식은
변수가 1이면 옵션만기일 다음날인 금요일 부터의 월고 월저
2이면 월요일 부터의 월고 월저
대전제는 data1의 봉수가 적으면 data2의 일봉을 이용한다.
질문1 : 옵션기준가(금요일 저가선), 월고 월저 그리기.
@ 1번수식은 그래도 사용하여 옵션기준가(금요일의 저가선을 그린다).
@ 2번수식과 같이 변수를 이용해 월고값 월저값의 시작일을 조정할 수 있게 하되
변수1이면 금요일 부터 시작.
1번 수식과 같이 data1의 봉수가 부족한 경우 data2 일봉을 활용하여
월고 월저를 구한다.
질문2 : 선물기준가(옵션만기일 목요일의 저가선), 월고 월저 그리기
@ 1번수식을 사용하되 선물기준가(목요일의 저가선을 그린다)
@ 2번수식과 같이 변수를 이용해 월고값 월저값의 시작일을 조정할 수 있게 하되
변수1이면 금요일 부터 시작.
1번 수식과 같이 data1의 봉수가 부족한 경우 data2 일봉을 활용하여
월고 월저를 구한다.
************************************************************************************
아래식은 만약 주종목에서 근월물 첫번째일의 데이터가 있으면
첫번째일의 저가는 주종목 계산해 지표로 그리고
주종목에 만기일다음날 데이터가 없거나 날기일 두번째 날이후이면
일봉데이터에서 값을 가져와 그리도록 했습니다.
1번수식.
Var : Va2(0,data2), Va3(0,data2),cond(false,data2),daycnt(0,data2),value(0,data2);
var : LL(0,data1);
Va2 = data2(Date - Int(Date/100)*100);
Va3 = data2(DayOfWeek(Date));
If Va2 >= 8 And Va2 <= 14 And Va3 == 4 Then
Cond = true;
Else
Cond = false;
if data2(date != date[1] and cond == false and cond[1] == true) Then
daycnt = 0;
if data2(date != date[1]) Then
daycnt = daycnt+1;
if daycnt == 1 Then
value = data2(lowd(0));
Var : V2(0,data1), V3(0,data1),cond1(false,data1),daycnt1(-1,data1),val1(0,data1);
V2 = data1(Date - Int(Date/100)*100);
V3 = data1(DayOfWeek(Date));
If V2 >= 8 And V2 <= 14 And V3 == 4 Then
Cond1 = true;
Else
Cond1 = false;
if data1(date != date[1] and cond1 == false and cond1[1] == true) Then
daycnt1 = 0;
if data1(date != date[1] and daycnt1 >= 0) Then
daycnt1 = daycnt1+1;
if daycnt1 == 1 Then
val1 = data1(lowd(0));
if daycnt1 == 1 Then
LL = val1;
if daycnt1 > 1 or daycnt1 == -1 Then
LL = value;
plot1(LL);
**********************************************************************************
2번수식
/*
기본 수치 1이면 만기일 다음날인 금요일 부터 계산한다
1.
만기일 N일전등은 날짜를 적성자가 직접 날자를
지정해서 초기화하는 방법외에는 없습니다.
아래식은 만기일 N일 후를 기준으로 시고저를 계산하는 식입니다
*/
input : N(1);
var : va1(0),va2(0);
va1 = date - int(date/100)*100;
va2 = DayOfWeek(date);
if va1 >= 8 and va1 <= 14 and va2 == 4 then
Condition1 = true;
Else
Condition1 = false;
if Condition1 == false and Condition1[1] == true Then
var1 = 0;
if date != date[1] Then{
var1 = var1+1;
if var1 == N Then{
value1 = O;
value2 = H;
value3 = L;
}
}
if H > value2 Then
value2 = H;
if L < value3 Then
value3 = L;
// plot1(value1);
plot2(value2,"고가",YELLOW);
plot3(value3,"저가",CYAN);
******************************************************************************
2018-12-18
283
글번호 124557
답변완료
수식 부탁드립니다~
수고가 많으십니다.
분봉기준으로
현재봉의 전봉이 양봉이고, 전봉의 (종가/시가-1) > 0.002 이고
현재봉이 한번이라도 전봉시가 - ( 전봉종가-전봉시가 ) 값을 하회할경우
즉시 전봉시가 - ( 전봉종가-전봉시가 ) 값에 매수주문 (1회에 한해)
매수봉 다음봉 종가에 자동매도
하는 수식을 만들고 싶습니다
감사합니다~
2018-12-18
241
글번호 124556
답변완료
가격 이동평균
5분봉이 10분봉을 뚫은 상태에서 현재 가격이 이전봉보다 높으면 매수
식을 어떻게 구현하나요
2018-12-18
227
글번호 124555