커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7153
글번호 230811
답변완료
신고가 돌파 매매 수식 요청드리요
수식 의도
1. 해외 선물 / 쿠루드 오일 5분봉 매매
조건1: 200봉안에서 신고가 + 거래량 3000이상
매수진입: 조건1을 만족한 봉 다음에 3봉안에 5분봉이동평균선에 터치시 매수 진입
(예를 들어 조건1을 만족한후 4봉이후에 5분봉이평라인에 터치해도 진입 안되어야함)
청산 : 진입후 200틱 도달후 수익 청산 / 100틱 손실시 손절
요청건: 하루에 한번만 매수 진입하게 진입 제한 요청합니다.
그리고 조건1에 부합되는 봉이 발생하면 3봉안에 매수 진입이 되지 않더라도 매수
진입 한 것으로 인지되어 같은날 다른 시간에 조건1에 봉이 발생하더라도
진입하지 않게 요청
==> 결국 매수진입여부와 상관없이 조건1의 봉이 발생시 최초 발생봉에서만 활성화 되게 요청합니다. (당일에 한정함/ 다음날 7시부터는 reset )
2020-05-30
2163
글번호 139390
답변완료
Data2에 대한 식으로...
부탁드립니다.
감사합니다.
2020-05-30
1919
글번호 139389
파동홀릭 님에 의해서 삭제되었습니다.
2020-05-30
0
글번호 139388
답변완료
이전봉 참조와 이후봉 참조
안녕하세요. 수고하십니다!
차트의 전체 봉 갯수가 5000개라고 가정을 할 때,
1. 100번째 봉에서 계산중 일때, 100번째 봉에서 종가를 나타내는 수식은 Close[0]
2. 100번째 봉에서 계산중 일때, 100번째 봉에서 5봉 이전 봉(95번째)의 종가 수식은 Close[5]
3. 100번째 봉에서 계산중 일때, 100번째 봉에서 5봉 이후 봉(105번째)의 종가 수식은Close[-5]
라고 생각되는데, 1, 2, 3의 종가에 대한 수식이 맞는지 알고 싶읍니다.
부탁드립니다. 수고하세요
2020-05-30
1944
글번호 139387
답변완료
안녕하세요?
Var : value(0);
value = 0;
# 매수 / 매도청산
If CCI(9) > 0 Then
value = 1;
If MACD(12,26) > 0 Then
value = value+1;
If DIPlus(14) > DIMinus(14) Then
value = value+1;
If StochasticsK(12,5) > StochasticsD(12,5,5) Then
value = value+1;
# 매수/매도청산
If value >= 3 Then
{
Buy("매수");
}
value = 0;
# 매도/매수청산
If CCI(9) < 0 Then
value = 1;
If MACD(12,26) < 0 Then
value = value+1;
If DIPlus(14) < DIMinus(14) Then
value = value+1;
If StochasticsK(12,5) < StochasticsD(12,5,5) Then
value = value+1;
If value >= 3 Then
{
Sell("매도");
}
위 기준에 아래 것 을 합성 해 주시길 부탁 드립니다.
if H[1] == highest(H,5)[1] and
H[1] > max(C[1],O[1]) and
V[1] >= 5000 and
C[0] < C[1] Then
exitlong("매수분청산");
if L[1] == Lowest(L,5)[1] and
H[1] > max(C[1],O[1]) and
V[1] >= 5000 and
C[0] > C[1] Then
ExitShort("매도분청산");
if H[2] == highest(H,5)[1] and
H[2] > max(C[2],O[2]) and
V[2] >= 5000 and
C[0] < C[2] Then
exitlong("매수분올청산");
if L[2] == Lowest(L,5)[1] and
H[1] > max(C[1],O[1]) and
V[1] >= 5000 and
C[0] > C[1] Then
ExitShort("매도분올청산");
if L[1]==LOWEST(L,5) and
C[1]<O[1] and
C[1]>L[1] and
O[0]>L[0] and
C[1]==O[0] and
L[1]==L[0] and
C[0]>O[0] and
v>3000 Then
buy("집게발매수");
if H[1]==highest(H,5) and
C[1]>O[1] and
C[1]<H[1] and
O[0]<H[0] and
C[1]==O[0] and
H[1]==H[0] and
C[0]<O[0] and
v > 3000 Then
sell("집게발매도");
Input : length(10),종가사용여부(0),수치표시(0),표시(0);
input : 추세두께(1),추세상승색(red),추세하락색(blue);
input : 고점연결두께(2),고점연결색상(LGREEN);
input : 저점연결두께(2),저점연결색상(MAGENTA);
Var:j(0),jj(0),HH(0),LL(0),최종고가(0),최종저가(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0),TL11(0),TL12(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
{
최종고가 = 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]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세상승색);
if 저[1,1] > 저[2,1] Then
{
if 표시 == 0 Then
TL_Delete(TL11);
TL11 = TL_New(저[2,3],저[2,4],저[2,1],저[1,3],저[1,4],저[1,1]);
TL_SetExtRight(TL11,true);
TL_SetColor(TL11,저점연결색상);
TL_SetSize(TL11,저점연결두께);
}
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
Text_SetStyle(Text1, 2, 1);
}
buy("추세매수");
}
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)+NewLine+"+"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = 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]);
TL_SetSize(TL1,추세두께);
TL_SetColor(TL1,추세하락색);
if 고[1,1] < 고[2,1] Then
{
if 표시 == 0 Then
TL_Delete(TL12);
TL12 = TL_New(고[2,3],고[2,4],고[2,1],고[1,3],고[1,4],고[1,1]);
TL_SetExtRight(TL12,true);
TL_SetColor(TL12,고점연결색상);
TL_SetSize(TL12,고점연결두께);
}
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
Text_SetStyle(Text1, 2, 0);
}
sell("추세매도");
}
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)+NewLine+"-"+NumToStr((고[1,1]-저[1,1])/PriceScale,0)+"틱");
}
}
최종꼭지점 = "저점";
}
2020-05-31
2008
글번호 139386
답변완료
질문 올립니다.
안녕하세요.
늘 감사드립니다.
볼린저 밴드에서,
가격((완성봉의 C라야만 하는 것이 아니라, H든, L이든 여하튼 어떤 가격일지라도))이
두 봉 이상 연속으로
2.5*표준편차((2.5는 외부변수))의
위에 있다가, 안으로 내려 들어 올 때 그 순간 ((즉 봉 완성과 상관 없이)) 즉시 매도,
아래에 있다가 안으로 올라 들어 올 때 그 순간 ((즉 봉 완성과 상관 없이)) 즉시 매수,
매도의 청산은, 가격이 아래 하단 밴드((이 때는 2((외부변수))*표준편차인 보통 볼밴 하단))를 치는 순간 ((봉완성과 상관없이)) 즉시 청산,
매수의 청산은, 가격이 위 상단 밴드((이 때는 2((외부변수))*표준편차인 보통 볼밴 상단))를 치는 순간 ((봉완성과 상관없이)) 즉시 청산,
하는 식 부탁 드립니다.
대단히 감사합니다!
2020-05-30
1851
글번호 139385
cs아빠 님에 의해서 삭제되었습니다.
2020-05-30
23
글번호 139384
cs아빠 님에 의해서 삭제되었습니다.
2020-05-29
1
글번호 139383
답변완료
MarketPosition 질문 드립니다.
안녕하세요.
한 종목에 2개의 전략을 따로 사용한다고 가정해보면,
System 1 에서 해당 종목에 매수 포지션을 잡고 있다고 하면,
System 2 상에서는 아무 조건이 없으면, MarketPosition == 0 가 되는게 맞겠죠 ??
즉 같은 종목이라도 system 별로 따로 position 을 보는게 맞나요 ??
2020-05-29
2164
글번호 139382