커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7742
글번호 230811
답변완료
수식
> 시스템식 이동평균
10 이평선이 20 이평선을 상향돌파하면 매수하고
10 이평선이 20 이평선을 하향돌파하면 매도하는식
손절매는 3% 손절매하고나서 매도신호가나지않고 (매수신호가유효한상태) 다시상승하면 재매수
>시스템식 일목균형표
선행스펜1이선행스펜2를 상향돌파하면 매수하고
선행스펜1이선행스펜2를 하향돌파하면 매도하는식
손절매는 3% 손절매하고나서 매도신호가나지않고 (매수신호가유효한상태) 다시상승하면 재매수
2011-02-05
818
글번호 35480
erwe343 님에 의해서 삭제되었습니다.
2011-02-05
43
글번호 35478
답변완료
추가해주세요---------------
Input : Period(1),maP(30),N(0.03),Tr1(1.2),Tr2(2),진입(1000);
Var : value(0);
value = ma(bids,period)-ma(asks,period);
if stime >= 93000 and stime < 145000 then{
if value > value[1]+진입 and ma(C,map) >= ma(C,map)[1]+N Then
buy();
if value < value[1]-진입 and ma(C,map) <= ma(C,map)[1]-N Then
Sell();
SetStopLoss(PriceScale*20,PointStop);
#SetStopProfittarget(PriceScale*17,PointStop);
if MarketPosition == 1 Then{
if Highest(H,BarsSinceEntry) < EntryPrice+1 Then
ExitLong("bx1",AtStop,Highest(H,BarsSinceEntry)-Tr1);
Else
ExitLong("bx2",AtStop,Highest(H,BarsSinceEntry)-Tr2);
}
if MarketPosition == -1 Then{
if Lowest(L,BarsSinceEntry) > EntryPrice-1 Then
ExitShort("sx1",AtStop,Lowest(L,BarsSinceEntry)+Tr1);
Else
ExitShort("sx2",AtStop,Lowest(L,BarsSinceEntry)+Tr2);
}
}
위식에 포지션있을때 이평이 횡보(전봉과값이같으면)하면 청산되게해주세요
새해복많이 받으세요
2011-02-05
699
글번호 35477
답변완료
조건 만족 즉시 청산 질문드립니다.
안녕하세요?
새해 복 많이 받으세요 ^^
질문이 있습니다.
첨부 파일에서 보듯이
-------------------------------------------------
매수 진입 후
봉이 20밴드 상단의 한 봉 전값에 닿을 때(bollbandup(20,2)[1]) 바로 청산 되게끔
하는 방법을 문의드립니다.
------------------------------------------------------
보통은 봉이 완성된 후에야 청산이 되는데 이전 값이라면 이미 정해진 값이므로
그 값을 crossup 할 때 바로 청산이 가능할 것 같습니다.
감사드립니다.
2011-02-05
736
글번호 35475
erwe343 님에 의해서 삭제되었습니다.
2011-02-04
23
글번호 35474
답변완료
청산 이후 이전 신호 삭제 질문입니다.
안녕하세요?
새해 복 많이 받으시고 소원을 이루시길 바랍니다.
질문이 있습니다.
몇 개의 조건이 순서에 따라 진행 된 후 매수를 하였습니다.
이후 청산을 하면 매수 이전의 순서에 따른 조건을 취소해야
(조건이 없어져야)
지금 부터 나오는 조건의 순서를 맞출 수 있습니다.
예를 들어
----------------------------------------------------------
조건1 이후 조건2가 발생하고 이후 조건3이 나오면 매수한다.
조건4가 나오면 청산한다.
----------------------------------------------------------
위의 식에서 청산 후에
조건1, 조건2, 조건3의 index가 남아 있으면
청산후에 (새로운 조건1,2 없이) 조건3이 발생하면 이전의 조건1, 조건2의
index가 남아 있으므로
다시 매수하게 되는 일이 일어나게 됩니다.
그러므로 청산후에는 이전의 index값 혹은 이전의 조건들을 취소시켜야
제대로 됩니다.
이전 index값이나 조건을 어떻게 취소시켜야 할런지요?
해결을 부탁드립니다.
항상 감사드립니다.
2011-02-03
843
글번호 35473
답변완료
이평선 매매에 미결재약정 상승/하락(상승장/하락장) 시 재매수 수식
Input : P1(5), P2(25), P3(50);
var : 단기(0), 중기(0), 장기(0);
단기 = Ma(C, p1);
중기 = Ma(C, p2);
장기 = Ma(C, p3);
If 단기 > 중기 and 중기 > 장기 and
(단기[1] <= 중기[1] or 중기[1] <= 장기[1]) Then
Buy("매수");
Var1 = Highest(H, BarsSinceEntry+1);
ExitLong("추적청산", Atstop, Var1-ATR(15)*3);
If 단기>중기 and 중기>장기 and CrossUp(C,단기) Then
Buy("재매수");
수고하십니다
상기 이평선매매를 사용중입니다
그런데 여기에 미결재약정 상승장에서(약정 증가시 매수/하락 시 매도)하락장(약정 증가 시 매도 / 약정 하락시 매수) 수식좀 부탁 드립니다
2011-02-02
918
글번호 35472
태조산 님에 의해서 삭제되었습니다.
2011-02-02
32
글번호 35471
답변완료
오류 검증 부탁드립니다.
수고하십니다.
밑의 수식을 선물에서 적용해보니 전혀 매수매도 신호가 없이 디버거를 몇개 넣어 검증
을 해봐도 잘 모르 겠네요
아마 제생각에는 "value = ema(MACD(12, 26),9);" 와 "지표기준고 = value;"
쪽에 수식을 보완해야 될 것 같은데,, 부탁드립니다.
Input:전환율(7),지표전환(0.4),유효기간(50);
Var:j(0),value(0),다이버전스(0),다이버전스Bar(0),상승(100),하락(-100),
상승률(0),하락률(0),추세선(0),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0),
추세(0),zz(0),
지표기준고(0),지표기준저(0),지표기준고Bar(0),지표기준저Bar(0),
지표추세(0),지표zz(0);
Array:고[10](0),저[10](0),고Bar[10](0),저Bar[10](0),
지표고[10](0),지표저[10](0),지표고Bar[10](0),지표저Bar[10](0);
#=========================================================#
# 초기처리 (Initialize Routine)
#=========================================================#
value = ema(MACD(12, 26),9); // MACD signal
상승률 = 1 + (전환율/100);
하락률 = 1 - (전환율/100);
for j = 1 to 9 {
저Bar[j] = 저Bar[j] + 1;
고Bar[j] = 고Bar[j] + 1;
지표저Bar[j] = 지표저Bar[j] + 1;
지표고Bar[j] = 지표고Bar[j] + 1;
}
다이버전스Bar = 다이버전스Bar + 1;
#=========================================================#
# 주가 Zigzag 계산
#=========================================================#
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 기준고 <= H or 기준고 == 0 then {
MessageLog("기준고 --> %.0f",기준고);
기준고 = H;
기준고Bar = 0;
}
else
기준고Bar = 기준고Bar + 1;
if 기준저 >= L or 기준저 == 0 then {
기준저 = L;
기준저Bar = 0;
}
else
기준저Bar = 기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 기준고 * 하락률 > H and
기준저 * 상승률 < L then { //기준점의 인사이드일 경우
if 추세[1] == 상승 and ZZ < 기준저 then 추세 = 하락;
else if 추세[1] == 하락 and ZZ > 기준고 then 추세 = 상승;
}
else if 기준고 * 하락률 > H then 추세 = 하락;
else if 기준저 * 상승률 < L then 추세 = 상승;
if 추세[1] == 상승 and 추세 == 하락 then {
for j = 8 downto 1 {
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 하락 and
고[1] < 기준고 and
기준고 * 하락률 > H then {
고[1] = 기준고;
고Bar[1] = 기준고Bar;
ZZ = 기준고;
기준고 = H;
기준고Bar = 0;
기준저 = L;
기준저Bar = 0;
}
if 추세[1] == 하락 and 추세 == 상승 then {
for j = 8 downto 1 {
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
if 추세[1] == 상승 and 추세 == 상승 and
저[1] > 기준저 and
기준저 * 상승률 < L then {
저[1] = 기준저;
저Bar[1] = 기준저Bar;
ZZ = 기준저;
기준저 = L;
기준저Bar = 0;
기준고 = H;
기준고Bar = 0;
}
#=========================================================#
# 지표식 Zigzag 계산
#=========================================================#
#---------------------------------------------------------#
# 최근 고,저 갱신
#---------------------------------------------------------#
if 지표기준고 <= value or 지표기준고 == 0 then {
지표기준고 = value;
지표기준고Bar = 0;
}
else
지표기준고Bar = 지표기준고Bar + 1;
if 지표기준저 >= value or 지표기준저 == 0 then {
지표기준저 = value;
지표기준저Bar = 0;
}
else
지표기준저Bar = 지표기준저Bar + 1;
#---------------------------------------------------------#
# 파동 계산 Main
#---------------------------------------------------------#
if 지표기준고 - 지표전환 > value and
지표기준저 + 지표전환 < value then { //기준점의 인사이드일 경우
if 지표추세[1] == 상승 and 지표ZZ < 지표기준저 then 지표추세 = 하락;
else if 지표추세[1] == 하락 and 지표ZZ > 지표기준고 then 지표추세 = 상승;
}
else if 지표기준고 - 지표전환 > value then 지표추세 = 하락;
else if 지표기준저 + 지표전환 < value then 지표추세 = 상승;
if 지표추세[1] == 상승 and 지표추세 == 하락 then {
for j = 8 downto 1 {
지표고[j+1] = 지표고[j];
지표고Bar[j+1] = 지표고Bar[j];
}
지표고[1] = 지표기준고;
지표고Bar[1] = 지표기준고Bar;
지표ZZ = 지표기준고;
지표기준고 = value;
지표기준고Bar = 0;
지표기준저 = value;
지표기준저Bar = 0;
}
if 지표추세[1] == 하락 and 지표추세 == 하락 and
지표고[1] < 지표기준고 and
지표기준고 - 지표전환 > value then {
지표고[1] = 지표기준고;
지표고Bar[1] = 지표기준고Bar;
지표ZZ = 지표기준고;
지표기준고 = value;
지표기준고Bar = 0;
지표기준저 = value;
지표기준저Bar = 0;
}
if 지표추세[1] == 하락 and 지표추세 == 상승 then {
for j = 8 downto 1 {
지표저[j+1] = 지표저[j];
지표저Bar[j+1] = 지표저Bar[j];
}
지표저[1] = 지표기준저;
지표저Bar[1] = 지표기준저Bar;
지표ZZ = 지표기준저;
지표기준저 = value;
지표기준저Bar = 0;
지표기준고 = value;
지표기준고Bar = 0;
}
if 지표추세[1] == 상승 and 지표추세 == 상승 and
지표저[1] > 지표기준저 and
지표기준저 + 지표전환 < value then {
지표저[1] = 지표기준저;
지표저Bar[1] = 지표기준저Bar;
지표ZZ = 지표기준저;
지표기준저 = value;
지표기준저Bar = 0;
지표기준고 = value;
지표기준고Bar = 0;
}
#=========================================================#
# 다이버전스 계산
#=========================================================#
if ZZ[1] != ZZ or 지표ZZ[1] != 지표ZZ then {
if 고[2] < 고[1] and 지표고[2] > 지표고[1] then {
다이버전스 = 하락;
다이버전스Bar = 0;
}
else if 저[2] > 저[1] and 지표저[2] < 지표저[1] then {
다이버전스 = 상승;
다이버전스Bar = 0;
}
}
if 다이버전스Bar > 유효기간 then 다이버전스 = 0;
#=========================================================#
# 추세선 계산
#=========================================================#
if 다이버전스 == 상승 then {
추세선 = (고[1]-고[2])/(고Bar[2]-고Bar[1]) * 고Bar[2] + 고[2];
}
if 다이버전스 == 하락 then {
추세선 = (저[1]-저[2])/(저Bar[2]-저Bar[1]) * 저Bar[2] + 저[2];
}
if 다이버전스 == 0 then {
추세선 = 0;
}
#=========================================================#
# 시스템 식
#=========================================================#
if 다이버전스 == 상승 and C > ma(C,20) and CrossUp(C,추세선) then
Buy("매수");
if 다이버전스 == 하락 and C < ma(C,20) and CrossDown(C,추세선) then
Sell("매도");
2011-02-06
898
글번호 35470