커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7218
글번호 230811
답변완료
수식부탁드립니다.
항상 감사합니다.
항셍에서 본장이 시작되는 동시호가를 시가로 하고 싶습니다.
제가 만든 수식은 틱수나 분단위에 따라 시가가 변합니다(특히 틱챠트에서).
분이나 틱수에 관계없이 동일하게 동시호가가 시가로 표시되게 부탁드립니다.
좋은 날 되십시요.
2018-12-22
300
글번호 124692
답변완료
부탁드립니다.
- 60391관련입니다.
- 지표 감사합니다.
- 표시된 수치가 표시될 수치와 잘 맞지않습니다.
예로 3일전,2일전,1일전 동시간 최고가를 수치로 풀어보겠습니다.
o 9시 기준
3일전 9시 최고가 : 6635.25 ①
2일전 9시 최고가 : 6515.75 ②
1일전 9시 최고가 : 6492.75 ③
당일 9시 표시될 최고가 평균: 6547.92
실제 당일 9시 표시된 가격(고가평균): 4910.94 ①②③
o 익일 7시 기준
3일전 7시 최고가 : 6656 ①
2일전 7시 최고가 : 6577.5 ②
1일전 7시 최고가 : 6610 ③
익일 7시 표시될 최고가 평균: 6614.5
실제 익일 7시 표시된 가격(고가평균): 5320.85 ①②③
2018-12-25
355
글번호 124691
장군 님에 의해서 삭제되었습니다.
2018-12-21
0
글번호 124690
답변완료
문의드립니다
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));
그림1과같이 나오는게정상인데 ,시간이30분이나1시간이지나면 그림2번과같이변하게 됩니다,(틱이나분봉다변함) 챠트를다시건드리면 정상으로돌아옵니다 .무엇이문제인지 수정부탁드립니다~~매번감사드립니다
2018-12-24
416
글번호 124689
답변완료
문의드립니다
아래 수식에서 매매시간 설정 수식 추가 부탁드립니다
1. 10시15분~17시
2. 9시~24시
이렇게 2가지 전략으로 부탁드립니다
INPUT : LENGTH(10);
VAR : TCHAN(0), BCHAN(0);
#상단
TCHAN = HIGHEST(HIGH, LENGTH)[1];
#하단
BCHAN = LOWEST(LOW, LENGTH)[1];
#20지수이평이 60지수이평보다 크면
#다음봉에 하단 이하의 시세가 발생하면 즉시 매수진입
if ema(C,20) > ema(C, 60) Then
buy("buy", atlimit, BCHAN);
#매수진입 후
if MarketPosition == 1 Then
{
#상단까지 시세 상승하면 즉시 청산
exitlong("EL_상단터치", atlimit, TCHAN);
#30틱 수익이면 즉시 청산
exitlong("EL_익절",atlimit, EntryPrice + PriceScale*30);
#30틱 손실이면 즉시 청산
exitlong("EL_손절",AtStop, EntryPrice - PriceScale*30);
}
#20지수이평이 60지수이평보다 작으면
#다음봉에 상단 이상의 시세가 발생하면 즉시 매도진입
if ema(C,20) < ema(C, 60) Then
sell("sell", atlimit, TCHAN);
#매도진입 후
if MarketPosition == -1 Then
{
#하단까지 시세 하락하면 즉시 청산
exitshort("ES_하단터치", atlimit, BCHAN);
#30틱 수익이면 즉시 청산
exitshort("ES_익절",atlimit, EntryPrice - PriceScale*30);
#30틱 손실이면 즉시 청산
exitshort("ES_손절",AtStop, EntryPrice + PriceScale*30);
}
2018-12-23
326
글번호 124688
답변완료
질문드립니다.
expirationdate 함수 제공되나요?
2018-12-21
331
글번호 124687
답변완료
수식부탁합니다..
수고스럽지만 2가지경우에 수식좀 부탁합니다..
1의경우)
1)이평선 1,2,3 3개선이 전부 정배열이고, 상승중일때만 진입신호 발생,
익절이나 손절틱수에 의해 청산될시,
정배열이 유지가 되고, 지수가 이평 1을 다시 상향돌파시 진입신호 발생.
청산은 이평선 1이 2를 하향돌파할때 청산신호발생.
정해진 익절틱수에 의해 청산신호.
2)역배열은 이평선 3개가 전부 역배열이고 하락중일때만 진입신호 발생,
익절이나 손절틱수에 의해 청산될시,
역배열이 유지가 되고, 지수가 이평 1을 다시 하향돌파시 진입신호 발생.
청산은 이평선 1이 2를 상향돌파할때 청산신호 발생.
정해진 익절틱수에 의해 청산신호.
________________________________________________________
2의경우)
1)1)이평선 1,2선만 정배열이고, 3선은 상승중일때만 진입신호 발생,
익절이나 손절틱수에 의해 청산될시,
정배열이 유지가 되고, 지수가 이평 1을 다시 상향돌파시 진입신호 발생.
청산은 이평선 1이 2를 하향돌파할때 청산신호발생.
정해진 익절틱수에 의해 청산신호.
2)역배열은 1,2선만 역배열이고, 3선은 하락중일때만 진입신호 발생,
익절이나 손절틱수에 의해 청산될시,
역배열이 유지가 되고, 지수가 이평 1을 다시 하향돌파시 진입신호 발생.
청산은 이평선 1선이 2선을 상향돌파할때 청산신호 발생.
정해진 익절틱수에 의해 청산신호.
--------------------------------------------------------------------------
아래 질문은 지표에 관한 질문일수도 있습니다..
3)항셍 아침 10시15분에 시작하는 시작가나 오후 6시 15분에 시작하는 시작가를
시가선으로 나타내고 싶습니다.
4)정,역배열이 진행중일때 진입가대비 20틱 간격으로(20틱,40틱,60틱,80틱.....계속)화면에
나타내고 싶은데 가능할까요?
그리고 익절틱수와 손절틱수를 정할수 있게 좀 부탁드립니다...
이렇게 수식좀 부탁합니다....
2018-12-23
337
글번호 124686
답변완료
질문이요..초간단 질문
거래량이 평균 20일봉보다 클때 매수/매도 진입하는 식 부탁해요~~
if v > 20봉의 평균거래량 Then
buy("매수진입");
2018-12-21
323
글번호 124683
답변완료
질문입니다.
답변 감사드립니다.
생각났는데요.
지그재그 파동 고점 저점을 가격으로 표시 되어 있는데요
혹시 고점 저점 사이 몇틱인지 계산 나올수 있는 방법이 무엇인가요?
자꾸 물어봐서 죄송하고 감사합니다. ㅠㅠ
==========수정해줘서 감사합니다. 고점 저점 가격대신 몇틱인지 알수있는 수식 부탁드립니다.
input:length(4),종가사용여부(0),파동선두께(5),수치표시(1),수평선두께(2);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),tl2(0),tl3(0),tl4(0),tl5(0),T(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부==1,C,H);
LL = IFF(종가사용여부==1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
저[1,1] = LL;
}
Condition1 = Highest(HH,length) == HH and 최종고가 <> HH;
Condition2 = Lowest (LL,length) == LL and 최종저가 <> LL;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
T = 1;
최종고가 = HH; // 신규고점을 체크하기 위해 저장
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,red);
}
Else If 고[1,1] < HH Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH;
고[1,2] = Index;
고[1,3] = sDate;
고[1,4] = sTime;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
T = -1;
최종저가 = LL;
If 최종꼭지점 == "고점" then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 2, 0);
Text_SetColor(Text1,BLACK);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,blue);
}
Else If 저[1,1] > LL then
{
저[1,1] = LL;
저[1,2] = Index;
저[1,3] = sDate;
저[1,4] = sTime;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
#상단수평
if T == -1 and T[1] != -1 Then
{
TL2 = TL_New(고[2,3],고[2,4],고[2,1],sdate,stime,고[2,1]);
TL_Delete(TL3);
TL3 = TL_New(고[1,3],고[1,4],고[1,1],sdate,stime,고[1,1]);
TL_SetExtRight(TL3,true);
TL_SetSize(TL2,파동선두께);
TL_SetColor(TL2,red);
TL_SetSize(TL3,파동선두께);
TL_SetColor(TL3,red);
}
#하단수평
if T == 1 and T[1] != 1 Then
{
TL4= TL_New(저[2,3],저[2,4],저[2,1],sdate,stime,저[2,1]);
TL_Delete(TL5);
TL5= TL_New(저[1,3],저[1,4],저[1,1],sdate,stime,저[1,1]);
TL_SetExtRight(TL5,true);
TL_SetSize(TL4,파동선두께);
TL_SetColor(TL4,blue);
TL_SetSize(TL5,파동선두께);
TL_SetColor(TL5,blue);
}
2018-12-21
325
글번호 124682