커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7697
글번호 230811
답변완료
MACD ?
수식 부탁드립니다.
input : shortPeriod(12), longPeriod(26);
Var : value(0);
value = MACD(shortPeriod, longPeriod);
당일 오전 12시까지 기준선 "0" 아래에 있다가 기준선 "0"을 상향돌파 할때 매수.
당일 오전 12시까지 기준선 "0" 위에 있다가 기준선 "0"을 하향돌파 할때 매도.
2011-11-02
488
글번호 44360
답변완료
Re : 청산식 부탁드립니다
if MaxPositionPRofit>C*매수트레일링1 and MarketPosition==1 and PositionProfit<MaxPositionProfit*매수트레일링2
then exitlong("매수트레일링",AtStop,EntryPrice+(C-EntryPrice));
아래 문제를 해결하기 위해 위와 같이 작성해봤습니다.
사실 EntryPrice+(C-EntryPrice) 부분은 C와 같고, 현재가 청산을 위해 표현한 것인데
큰 의미는 없다고 생각합니다.
어찌됐건, if조건 만족시 청산이 현재가에 atstop으로 즉시 나가야 하는데
거래내역을 살펴보면 95% 정도가 다음봉 시가에 청산이 나가게 됩니다.
만약 100%라면 논리적으로 잘못된 것이다라고 생각하겠지만
5%의 거래내역은 생각한대로 조건 만족시 현재가 즉시 청산이 이루어지고 있습니다.
질문
1. 위에 작성한 식이 "if조건 만족시 청산이 현재가에 atstop으로 즉시 청산"이
맞습니까?
2. 1번이 맞다면 신호가 제대로 나오지 않는 것으로 보이는데 이유가 무엇이며 어떻게 해결해야 할까요?
3. 1번이 틀리다면 "if조건 만족시 청산이 현재가에 atstop으로 즉시 청산"할 수 있는 시스템식 부탁드립니다.
============================================================
안녕하세요
예스스탁입니다.
atstop이나 atlimit뒤는 가격(수치)만 올수 있습니다.
작성하신 내용은 조건문입니다.
조건문은 if문 안에만 들어갈수 있으므로
기존 작성하신 if문으로 사용하셔야 합니다.
즐거운 하루되세요
> 하얀마음흑구 님이 쓴 글입니다.
> 제목 : 청산식 부탁드립니다
> 매수트레일링1,2는 변수이며 트레일링 청산으로
exitlong("매수청산",AtStop,MaxPositionPRofit>C*매수트레일링1 and PositionProfit<MaxPositionProfit*매수트레일링2);
를 사용하고 싶은데 "숫자값이나 숫자표현식이 와야합니다." 라고 합니다.
기존의
MaxPositionPRofit>C*매수트레일링1 and PositionProfit<MaxPositionProfit*매수트레일링2 and MarketPosition==1 then exitlong();
적용시 봉 완성시에만 신호가 발생하여 즉각적인 신호를 낼 수 있는 Atstop으로
트레일링식을 만들고 싶은데 어떻게 해결해야 할까요?
2011-11-02
431
글번호 44359
답변완료
지표식 질문입니다
어제 써주신 수식 감사합니다
Input : enPeriod(20), enPercent(2);
Input : BolPeriod(20), BolDv(2);
var1 = EnvelopeUp(enPeriod, enPercent);#엔벤로프상단
var2 = ma(C, enPeriod);#엔벤로프중단
var3 = EnvelopeDown(enPeriod, enPercent);#엔벤로프하단
var4 = BollBandUp(BolPeriod,BolDv);#볼린져밴드상단
var5 = ma(C,BolPeriod);#볼린져밴드 중단
var6 = BollBandDown(BolPeriod,BolDv);#볼린져밴드하단
if dayindex == 0 and #첫봉
C < var2 and C < var5 then #종가가 엔벤로프중단과 볼린져밴드 중단 아래에 있음
buy("B1");
#B1진입인 상태에서 볼린져밴드 중단을 상향하면 매수포지션 청산
if MarketPosition == 1 and IsEntryName("B1") == true And crossup(c,var5) then
ExitLong("Bx1");
if MarketPosition == 0 and #현재 무포지션
ExitDate(1) == sdate and #직전청산이 오늘발생한 청산이고
IsExitName("Bx1",1) and #직전청산명은 bx1이고
BarsSinceExit(1) == 1 Then#청산후 다음봉이면 매도진입
sell("BS");
if MarketPosition == -1 and #현재 매도포지션 진입중이고
IsEntryName("BS") == True then{#진입명은 Bs이면
ExitShort("Sx2",atlimit,EntryPrice-1.5);#진입가대비 -1.5까지 시세내려가면 매도포지션 청산
if C < var2 and C < var5 Then#종가가 엔벨로프 중단과 볼린져밴드 중단 아래이면 매도포지션 청산하고 매수진입
buy("SB");
}
if dayindex == 0 and #첫봉
C > var2 and C > var5 then #종가가 엔벤로프중단과 볼린져밴드 중단 위 있음
Sell("S1");
if MarketPosition == -1 and CrossDown(c,var5) then#볼린져밴드 중단을 하향하면 매도포지션 청산
ExitShort("Sx1");
SetStopProfittarget(4,PointStop);#목표수익
SetStopLoss(2.5,PointStop);#손절
SetStopEndofday(150000);#당일청산
여기서요 첫봉이 볼린져밴드 위에 있음 매도 이 진입을
청산하는 조건에 그 다음봉이 첫봉의 고가를 넘는 양봉이면 청산 을 추가하고 싶은대요
if MarketPosition == -1 and IsEntryName("S1") == true And h < c and o < c then
ExitLong();
이거 아닌가요 안되네요 ;;
그리고 동영상에 합성 전략이요
수식을 못찾아서 동영상 보고 직접 다 쳤는데요
위에 처럼 자세하게 주석좀 달아주실수 있을까요 이해해 보려고합니다
var : pp(0), pr1(0), pr2(0), ps1(0), ps2(0), sp(40), lp(350), emashort(0),
emalong(0), pivot_idx(22), pivot_ch(0.3), ilmokidx(15), ilmokx(14),ilmok1(0),ilmok2(0)
,ilmok3(0), sunhang1(0), sunhang2(0), ccilen(50), ccich(100), mult(1),
ccivalue(0), bcnt(0), scnt(0);
SetStopLoss(1.6, PointStop);
#피봋
if dayindex() == 0 then {pp = (DayHigh(1)+DayLow(1)+DayClose(1))/3;
pr1 = 2*pp-daylow(1); pr2 = pp+DayHigh(1)-DayLow(1);
ps1 = 2*pp-DayHigh(1);ps2 = pp-DayHigh(1)+DayLow(1);}
if stime < 1400000 then {if crossup(c, ps1) and bids > asks then buy("pprec_b");
if CrossDown(c, pr1) and bids < asks then sell("pprev_s");}
#CCI
if date != date[1] then {bcnt = 0; scnt = 0;}
CCIvalue = cci(ccilen);
if CrossUp(ccivalue, -ccich) and bids > asks and bcnt == 0 Then
{buy("ccirev_b");bcnt = bcnt +1;}
if CrossDown(ccivalue,ccich) and bids < asks and scnt == 0 Then
{sell("ccirev_s");scnt = scnt+1;}
if BarsSinceEntry(0) > 0 then {
if IsEntryName("ccirev_b") and l == daylow(0) then exitlong("cci_le");
if IsEntryName("ccirev_s") and h == DayHigh(0) then ExitShort("cci_es");
}
#지수이평
emashort = ema(c, sp); emalong = ema(c, lp);
if crossup(emashort, emalong) and bids > asks then buy("ema_b");
if CrossDown(emashort, emalong) and bids < asks then sell("ema_s");
#피봋추세
if DayIndex() <= pivot_idx then {
if c > pr2 and bids > asks then
buy("pp_b");
if c < ps2 and bids < asks then sell("pp_s");}
if IsEntryName("pp_b") and CrossDown(c,pr2-pivot_ch) then ExitLong("pp_es");
if IsEntryName("pp_s") and Crossup(c,ps2+pivot_ch) then ExitLong("pp_el");
#일목
ilmok1 = (Highest(h,ilmokx)+lowest(l,ilmokx))/2;
ilmok2 = (Highest(h,ilmokx*3)+lowest(l,ilmokx*3))/2;
ilmok3 = (Highest(h,ilmokx*3*2)+lowest(l,ilmokx*3*2))/2;
sunhang1 = (ilmok1+ilmok2)/2;//선행스팬1
sunhang2 = ilmok3;
if DayIndex() == ilmokidx+1 then {
if AccumN( IFF (c > max(sunhang1, sunhang2),1,0), ilmokidx) == ilmokidx and bids > asks Then
buy("ilmokb");
if AccumN( IFF (c < min(sunhang1, sunhang2),1,0), ilmokidx) == ilmokidx and bids < asks Then
sell("ilmoks");}
if IsEntryName("ilmokb") and CrossDown(c, max(sunhang1, sunhang2)) Then
ExitLong("ilmok_el");
if IsEntryName("ilmoks") and Crossup(c, min(sunhang1, sunhang2)) Then
ExitLong("ilmok_es");
2011-11-02
618
글번호 44358
답변완료
초보의 질문입니다
안녕하세요.
당일 청산 전략이며, 10분봉 기준입니다.
당일 첫봉의 시가, 고가, 저가, 종가를 변수로 하고 싶습니다.
if stime == 090000 then
{
var1 = open;
var2 = high;
var3 = low;
var4 = high - low;
}
위와 같이 하면 첫봉의 시가, 고가, 저가를 var1, var2, var3에
할당되는지 궁금합니다.
안된다면, 올바른 수식 부탁드립니다.
감사합니다.
2011-11-02
395
글번호 44357
답변완료
동일한 조건 2회 만족시 매수식
매수조건이 있으면
하루중 이 매수조건이 2번 만족해야 진입하는 시스템식을 부탁합니다.
2011-11-02
422
글번호 44356
답변완료
다시 문의
20일선위에 있는종목 검색 이격이 5%이내 종목만 검색 부탁합니다~~
수고 하세요~~~^^*
2011-11-02
482
글번호 44355
답변완료
조건검색식요~~
조건
1. 20일 이평선이 60일 이평선과 골든크로스된 이후
2. 현재 주가가 20일 이평선과 60일 이평선 사이에 있고
3. 20-60사이에 있는 현재주가가 양봉이면서 20일선에 골든크로스를 주거나 20일선 위에 시초가가 시작되여 양봉이고.
4. 스토캐스틱,macd가 골드이고, adx의 플러스값이 우상향된 종목을 검색....
이러한 조건을 만족하는 검색식 부탁드립니다
2011-11-01
420
글번호 44354
답변완료
시스템 식 문의드립니다~
1분봉, 개별종목 시스템식안에서
1. 종합주가지수가 -3% 이하일 때는 거래를 하지 않는다
2. 현재 1분봉의 종가가 일봉상 전일 종가 대비 -10% 이상
3. 오늘 일봉 시가보다 현재 1분봉의 종가가 낮다
4. 바로 전봉의 밑꼬리가 2% 보다 작다
5. 전일 T자 상한가가 아니다
감사합니다~
2011-11-01
451
글번호 44353
답변완료
가장 높은 5일선값 구하기
1. (5분봉) 어제 가장 높았던 5일선의 값
2. (5분봉) 어제 장마감시각에 가장 가까운 5일선 꺾인 곳의 값을 구하고 싶습니다.
2번은 그림을 첨부합니다.
항상 도움에 감사드립니다.
2011-11-01
487
글번호 44352