커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7337
글번호 230811
장군 님에 의해서 삭제되었습니다.
2017-03-03
0
글번호 107449
답변완료
조화이평 사용자함수 정의
안녕하세요
조화이평 harmonic moving average
hma라고 이름지어서
Hma 사용자함수 정의하려 하는데 사용자함수 알려주시면 감사하겟습니다
2017-03-03
167
글번호 107447
답변완료
수식 작성 부탁드립니다 ^^
전일 시가,종가,고가,저가와
당일 시가,종가,고가,저가,당일중심값 의 수식 작성 부탁드립니다 ^^
2017-03-03
158
글번호 107446
답변완료
문의드립니다.
안녕하세요.
수식지왕님 블로그에서 자동고저라인 추세선 지표식을 가져와
예스에 넣어보는데 추세선이 그려지지 않습니다.
어디가 잘못되었는지 봐주실수 있나요?
수식은 아래와 같습니다.
감사합니다.
Input:length(10);
Var:최종고가(0),최종저가(0),최종변곡점(""),처리구분(""),
sBar(0),TL1(0),TL2(0),TL3(0),
고추세기울기(0),고추세봉개수(0),고추세시작(0),고추세시작IDX(0),고추세최종(0),
저추세기울기(0),저추세봉개수(0),저추세시작(0),저추세시작IDX(0),저추세최종(0);
Var:고1(0),고2(0),고3(0),고4(0),고5(0),고6(0),고7(0),고8(0),고9(0),고10(0),
저1(0),저2(0),저3(0),저4(0),저5(0),저6(0),저7(0),저8(0),저9(0),저10(0),
고1IDX(0),고2IDX(0),고3IDX(0),고4IDX(0),고5IDX(0),
고6IDX(0),고7IDX(0),고8IDX(0),고9IDX(0),고10IDX(0),
저1IDX(0),저2IDX(0),저3IDX(0),저4IDX(0),저5IDX(0),
저6IDX(0),저7IDX(0),저8IDX(0),저9IDX(0),저10IDX(0);
#==========================================#
Condition1 = Highest(C,length) == C and 최종고가 <> C;
Condition2 = Lowest (C,length) == C and 최종저가 <> C;
처리구분 = "";
If Condition1 and Condition2 Then // 기간고점과 기간저점 동시 발생
{
If 최종변곡점 == "저점" Then 처리구분 = "고점처리"; // 저 - 고 순으로 처리
Else 처리구분 = "저점처리"; // 고 - 저 순으로 처리
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
최종고가 = C; // 신규고점을 체크하기 위해 저장
If 최종변곡점 == "저점" Then
{
고9 = 고8; 고9IDX = 고8IDX;
고8 = 고7; 고8IDX = 고7IDX;
고7 = 고6; 고7IDX = 고6IDX;
고6 = 고5; 고6IDX = 고5IDX;
고5 = 고4; 고5IDX = 고4IDX;
고4 = 고3; 고4IDX = 고3IDX;
고3 = 고2; 고3IDX = 고2IDX;
고2 = 고1; 고2IDX = 고1IDX;
고1 = C; 고1IDX = Index;
sBar = Index - 저1IDX; // 추세선 시작점의 위치, n봉전으로 표시
TL1 = TL_New(sDate[sBar],sTime[sBar],저1,sDate[0],sTime[0],고1);
TL_SetSize(TL1,2);
TL_SetColor(TL1,GREEN);
}
Else If 고1 < C Then // 1번 고점보다 높은 고가 출현
{
고1 = C; 고1IDX = Index;
TL_SetEnd(TL1,sDate[0],sTime[0],고1);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
}
/* 고점추세선 */
If 고2IDX[1] <> 고2IDX Then // 고2의 Index값이 변동 없음 즉, 새로운 고점이 생기지 않았음
{
고추세최종 = 0; 고추세기울기 = 0; 고추세시작 = 0; 고추세봉개수 = 0;
If 고2 < 고3 Then
{
고추세기울기 = (고2 - 고3)/(고2IDX - 고3IDX);
고추세시작 = 고3;
고추세시작IDX = 고3IDX;
}
Else If 고2 < 고4 Then
{
고추세기울기 = (고2 - 고4)/(고2IDX - 고4IDX);
고추세시작 = 고4;
고추세시작IDX = 고4IDX;
}
Else If 고2 < 고5 Then
{
고추세기울기 = (고2 - 고5)/(고2IDX - 고5IDX);
고추세시작 = 고5;
고추세시작IDX = 고5IDX;
}
Else If 고2 < 고6 Then
{
고추세기울기 = (고2 - 고6)/(고2IDX - 고6IDX);
고추세시작 = 고6;
고추세시작IDX = 고6IDX;
}
Else If 고2 < 고7 Then
{
고추세기울기 = (고2 - 고7)/(고2IDX - 고7IDX);
고추세시작 = 고7;
고추세시작IDX = 고7IDX;
}
Else If 고2 < 고8 Then
{
고추세기울기 = (고2 - 고8)/(고2IDX - 고8IDX);
고추세시작 = 고8;
고추세시작IDX = 고8IDX;
}
Else If 고2 < 고9 Then
{
고추세기울기 = (고2 - 고9)/(고2IDX - 고9IDX);
고추세시작 = 고9;
고추세시작IDX = 고9IDX;
}
고추세봉개수 = Index - 고추세시작IDX;
고추세최종 = 고추세기울기 * 고추세봉개수 + 고추세시작;
If 고추세최종 > 0 Then
{
TL2 = TL_New(sDate[고추세봉개수],sTime[고추세봉개수],고추세시작,sDate[0],sTime[0],고추세최종);
TL_SetSize(TL2,1);
TL_SetColor(TL2,RED);
}
}
Else If 고추세최종[1] > 0 Then
{
고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작;
TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종);
}
If 저추세최종[1] > 0 Then
{
저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작;
TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종);
}
최종변곡점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
최종저가 = C;
If 최종변곡점 == "고점" then
{
저9 = 저8; 저9IDX = 저8IDX;
저8 = 저7; 저8IDX = 저7IDX;
저7 = 저6; 저7IDX = 저6IDX;
저6 = 저5; 저6IDX = 저5IDX;
저5 = 저4; 저5IDX = 저4IDX;
저4 = 저3; 저4IDX = 저3IDX;
저3 = 저2; 저3IDX = 저2IDX;
저2 = 저1; 저2IDX = 저1IDX;
저1 = C; 저1IDX = Index;
sBar = Index - 고1IDX;
TL1 = TL_New(sDate[sBar],sTime[sBar],고1,sDate[0],sTime[0],저1);
TL_SetSize(TL1,2);
TL_SetColor(TL1,GREEN);
}
Else If 저1 > C then
{
저1 = C; 저1IDX = Index;
TL_SetEnd(TL1,sDate[0],sTime[0],저1);
}
/* 저점추세선 */
If 저2IDX[1] <> 저2IDX Then
{
저추세최종 = 0; 저추세기울기 = 0; 저추세시작 = 0; 저추세봉개수 = 0;
If 저2 > 저3 and 저3 > 0 Then
{
저추세기울기 = (저2 - 저3)/(저2IDX - 저3IDX);
저추세시작 = 저3;
저추세시작IDX = 저3IDX;
}
Else If 저2 > 저4 and 저4 > 0 Then
{
저추세기울기 = (저2 - 저4)/(저2IDX - 저4IDX);
저추세시작 = 저4;
저추세시작IDX = 저4IDX;
}
Else If 저2 > 저5 and 저5 > 0 Then
{
저추세기울기 = (저2 - 저5)/(저2IDX - 저5IDX);
저추세시작 = 저5;
저추세시작IDX = 저5IDX;
}
Else If 저2 > 저6 and 저6 > 0 Then
{
저추세기울기 = (저2 - 저6)/(저2IDX - 저6IDX);
저추세시작 = 저6;
저추세시작IDX = 저6IDX;
}
Else If 저2 > 저7 and 저7 > 0 Then
{
저추세기울기 = (저2 - 저7)/(저2IDX - 저7IDX);
저추세시작 = 저7;
저추세시작IDX = 저7IDX;
}
Else If 저2 > 저8 and 저8 > 0 Then
{
저추세기울기 = (저2 - 저8)/(저2IDX - 저8IDX);
저추세시작 = 저8;
저추세시작IDX = 저8IDX;
}
Else If 저2 > 저9 and 저9 > 0 Then
{
저추세기울기 = (저2 - 저9)/(저2IDX - 저9IDX);
저추세시작 = 저9;
저추세시작IDX = 저9IDX;
}
저추세봉개수 = Index - 저추세시작IDX;
저추세최종 = 저추세기울기 * 저추세봉개수 + 저추세시작;
If 저추세최종 > 0 Then
{
TL3 = TL_New(sDate[저추세봉개수],sTime[저추세봉개수],저추세시작,sDate[0],sTime[0],저추세최종);
TL_SetSize(TL3,1);
TL_SetColor(TL3,BLUE);
}
}
Else If 저추세최종[1] > 0 Then
{
저추세최종 = 저추세기울기 * (Index - 저추세시작IDX) + 저추세시작;
TL_SetEnd(TL3,sDate[0],sTime[0],저추세최종);
}
If 고추세최종[1] > 0 Then
{
고추세최종 = 고추세기울기 * (Index - 고추세시작IDX) + 고추세시작;
TL_SetEnd(TL2,sDate[0],sTime[0],고추세최종);
}
최종변곡점 = "저점";
}
2017-03-03
195
글번호 107441
답변완료
시스템 수직 작성 요청합니다!!
어디서부터 시작해야될지 난감한데
아래 조건으로 시스템 만들어주실수없으신가요 ㅠㅠ;
★ 신규 매수
1분봉 macd가 시그널보다 위에 있고 파라볼릭sar가 상승전환시 매수
5틱 이상 수익권이고 파라볼릭 하락 전환이나 macd가 시그널 보다 아래로 돌파되면 청산
손절컷 /
1.최근60개의 1분봉중 최저값 보다 5틱 아래에서 스탑로스
2.파라볼릭 하락전환과 macd가 시그널 보다 아래로 돌파되면 손절과 동시에 신규 매도 전환
★ 신규 매도
1분봉 macd가 시그널보다 아래에 있고 파라볼릭sar가 하락전환시 매도
5틱 이상 수익권이고 파라볼릭 상승 전환이나 macd가 시그널 보다 위로 돌파되면 청산
손절컷 /
1.최근60개의 1분봉중 최저값 보다 5틱 아래에서 스탑로스
2.파라볼릭 하락전환과 macd가 시그널 보다 아래로 돌파되면 손절과 동시에 신규 매수 전환
2017-03-03
156
글번호 107437
답변완료
재요청 드립니다.
안녕하세요?
아래와 같은 답변을 받고 설명 드립니다.
기준선 설정 : 2틱이상짜리 봉나오고 다음봉이 1틱 역봉 나오면 들어가는 것인데, 1틱봉 종가가 기준선이 된다는 뜻입니다.
실례가 안된다면 제가 글로써설명이 부족하여 연락처 남겨놓겠습니다
김덕규 010-5675-5903
안녕하세요
예스스탁입니다.
문의하신 내용을 정확히 이해를 못했습니다.
기준선설정이 어떤 부분을 의미하시는지 모르겠습니다.
도움을 드리지 못해 죄송합니다.
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 시스템식 추가 요청드립니다.
> 고생하십니다.
최근 아래와 같은 답변을 받았읍니다
제가 나이가 적지가 않아 부대조건을 추가하는게 쉽지가 않네요..
어렵게 표현한것같아서 쉽게 다시 설명드리고 아래 시스템식에 추가할수있게 부탁코저 합니다
* 추가로 입력할 부대조건
1. 기준선 설정 : 장 시작후 첫 번째 나오는 1틱 조건봉의 종가
2. 익,손절 설정 : 익절 0.50P이상,손절 -0.50
3. 손절후는 첫 조건봉 나올시 재진입
4. 제외 조건봉 : 무손실 1틱봉( 갭하락 상승 1틱 양봉,갭 상승 1틱 음봉)
5. 변수로 설정 : 주기,익손절,U-turn지점(0.20,0.70)
답변부탁드립니다.
혹여 잘 안될시에 다시 쉽게 뺼거빼고 재등록 하겠습니다.
감사합니다.
안녕하세요
예스스탁입니다.
진입과 청산조건으로만 작성한 내용입니다.
부대조건 중 내용은 어떻게 추가해야 할지 잘 모르겠습니다.
청산도 모두 청산식으로 작성했습니다.
해당 내용 참고하셔서 수정보완하시기 바랍니다.
if C[1] <= O[1]-PriceScale*2 and
C >= O+PriceScale*1 Then
buy("b",AtMarket);
if C[1] >= O[1]+PriceScale*2 and
C <= O-PriceScale*1 Then
sell("s",AtMarket);
if MarketPosition == 1 Then{
ExitLong("bl",AtStop,EntryPrice-0.5);
var1 = (highest(H,BarsSinceEntry)-EntryPrice);
var2 = int(var1/0.5);
if highest(H,BarsSinceEntry) >= EntryPrice+var2*0.5+0.3 Then
ExitLong("bx",AtStop,EntryPrice+var2*0.5);
}
if MarketPosition == -1 Then{
ExitShort("sl",AtStop,EntryPrice+0.5);
var1 = (EntryPrice-lowest(L,BarsSinceEntry));
var2 = int(var1/0.5);
if Lowest(L,BarsSinceEntry) <= EntryPrice-var2*0.5+0.3 Then
ExitShort("sx",AtStop,EntryPrice-var2*0.5);
}
즐거운 하루되세요
> 대구어린울프 님이 쓴 글입니다.
> 제목 : 시스템 작성 부탁드립니다.
> 그동안 답변주신것 감사드리고,아래와 같이 전략작성을 부탁드리고자 합니다
** 진입조건(진입 조건봉)
① 2틱이상 음봉 다음 1틱양봉 발생후 다음봉 시가에 매수 진입
② 2틱이상 양봉 다음 1틱음봉 발생후 다음봉 시가에 매도 진입
** 청산조건 및 역진입
① 익 0.30P-0.50 도달후 U-turn시 0.00점 청산(설정된 기준선에 매수시는 음봉종가
접속,매도시는 양봉 종가 접속시 청산 역진)
② 익 0..80P-1.00 ( “ ”) 익 0.50점 청산 ( “ ” )
③ 익 1.30P-1.50 ( “ ”) 익 1.00점 청산 ( “ ” )
④ 익 1.80P-2.00 ( “ ”) 익 1.50점 청산 ( “ ” )
⑤ 익 2.30P-2.50 ( “ ”) 익 2.00점 청산 ( “ ” )
⑥ 익 2.80P-3.00 ( “ ”) 익 2.50점 청산 ( “ ” )
⑦ 익 3.30P-3.50 ( “ ”) 익 3.00점 청산 ( “ ” )
⑧ 0.50P단위로 단계적으로 확대
** 부대조건
* 익 0.50 이상, 손절 0.50
* 상기 청산후 바로 역진입(1틱 조건봉 아니어도 됨)
* 기준선 도달전 역조건봉 나올시 청산 역진입
* 손절후는 첫조건봉 나올시 진입
* 기준선 설정 : 장시작후 첫진입한 1틱봉의 종가
* 무손실 1틱은 제외(갭상승 1틱 음봉,갭하락 1틱 양봉)
* 익절,손절,주기는 변수로
감사합니다..^^
2017-03-03
245
글번호 107434
답변완료
수식부탁드립니다
일목균형표를 이용한 매매인데요.
후행스팬이 있는 위치에서(오늘 종가보다 26일 전이죠) 구름대를 상향돌파할 때 검색하는 식을 부탁드립니다.
2017-03-03
147
글번호 107430
sambuck 님에 의해서 삭제되었습니다.
2017-03-03
0
글번호 107429
카카 님에 의해서 삭제되었습니다.
2017-03-03
21
글번호 107421