커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7665
글번호 230811
답변완료
매수 시간에 대해서..
질문 하나 더 드리겠습니다.
제가 현물 3분봉으로 매매를 진행할 예정인데
조건에 해당되는 위치에 매수를 들어갈때
14:47분에 매수조건이 만족되어
buy("매수", atmarket, def, 매수수량);
으로 매수 주문을 하면 체결되는 시간이 14:50분이 되는 건지요?
14:50분부터는 동시호가라서 매수가 안되는 건지 궁금합니다.
그리고 만약 14:50분에 조건이 만족하거나 15:00에 조건이 만족되는 경우
다음날 09:00에 매수가 들어가는 건지 궁금합니다.
감사합니다.
2012-04-09
343
글번호 49882
답변완료
청산관련
안녕하세요 매일 번거롭게 해 드리네요~
기존에 청산식 문의드렸던 내용에 대해서 보내주신 소스로 테스트를 해 보았는데
원하는 대로 청산이 이루어지지 않는 것 같습니다.
그 방식으로는 청산이 불가한 것이 아닌가 싶은 생각이 있습니다.
그래서 현재는 5% 수익후에 50% 이익실현후
10% 상승시 나머지 물량 매도
5% 상승후 2% 하락시 나머지 물량 매도하는 방식을 취하고 있습니다.
그런데 문제가 5% 이상 상승하지 않고 2~3% 상승만 하는 경우에는
결국 손실로 청산되는 문제가 있습니다.
그래서 아래의 식을 요청드렸으면 합니다.
기존 5% 상승시 50% 수익실현
10%, 3%로 변동시에 전량매도는 그대로 가져가구요
5%까지 상승을 못했을 경우에 대응을 할려고 합니다.
대응방안
수익이 2% 이상 발생한 경우 5봉내에 수익이 증가하지 않을 경우에는
전량 매도식을 추가하고 싶습니다.
위에 설명드린 매도식은 아래와 같습니다.
해당 매도식에 추가 부탁드리겠습니다.
if MarketPosition == 1 then {
if CodeCategory == 1 Then{
if BasePrice < 50000 Then
매도수량 = int(int(CurrentContracts*0.5)/10)*10;
Else
매도수량 = int(CurrentContracts*0.5);
}
if CodeCategory == 2 Then
매도수량 = int(CurrentContracts*0.5);
if CurrentContracts == MaxContracts Then
//exitlong("청산5",atlimit,EntryPrice*1.01,"");
exitlong("청산5",atlimit,EntryPrice*1.05,"",매도수량,1);
if CurrentContracts < MaxContracts and highest(H,BarsSinceEntry) >= EntryPrice*1.03 Then{
exitlong("청산3",AtStop,EntryPrice*1.03);
exitlong("청산10",atlimit,EntryPrice*1.10);
}
}
그리고 아래 소스는 제가 저번주에 문의드린 청산식인데
제대로 청산이 이루어지지 않는 것 같습니다.
==================================================================
안녕하세요
예스스탁입니다.
if MarketPosition == 1 Then{
if MarketPosition[1] != 1 Then{
var1 = int(CurrentContracts*0.25);
}
exitlong("bx1",atlimit,EntryPrice*1.03,"",var1,1);
exitlong("bx2",atlimit,EntryPrice*1.05,"",var1,1);
exitlong("bx3",atlimit,EntryPrice*1.07,"",var1,1);
exitlong("bx4",atlimit,EntryPrice*1.10);
if highest(H,BarsSinceEntry) >= EntryPrice*1.05 Then
exitlong("bx",AtStop,EntryPrice*1.02);
}
즐거운 하루되세요
> 엠제이 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다.
>
3% 수익시에 25% 물량 정리
5% 수익시에 25% 물량 정리
7% 수익시에 25% 물량 정리
10% 수익시에 25% 물량 정리
1. exitlong(atstop이나 atlimit)으로 구현 부탁드릴께요
2. 만약 3분봉 매매일때 한봉에서 10%가 올랐다면
3%, 5%, 7%, 10%의 물량 모두가 정리되는건지도 궁금합니다.
만약 한 봉에서 진입가 대비 5% 수익이 났다면
물량 50%(3% 25%물량, 5% 25%물량)가 정리되었으면 합니다.
그리고 다시 다음봉에서 3% 밑으로 내려갔다
재차 5% 되는 경우에는 이미 3%와 5%는 매도했으므로 매도가 되지 않아야 함
7% 올랐을때 25% 물량 정리
10%가 되었을때 마지막 25% 물량이 정리되었으면 합니다.
3. 만약 5% 이상 상승후 2% 이하로 하락하는 경우에는 나머지 물량 전량 정리
늘 감사드립니다.
2012-04-09
342
글번호 49881
답변완료
타 통화쌍 검색 식 문의 입니다.
다시 귀찮게 질문드려 죄송합니다.
아래 시나리오처럼 하려면 어떻게 해야 하나요?
현재 창은 GBP/JPY_A 의 5분봉 차트가 그려지고 있습니다.
이때, EUR/USD_A 의 5분봉 차트를 조회하여 5일선이 20일선을 상향 돌파할 경우
매수포지션 신호가 발생하고(GBP/JPY_A 의 차트에 신호를 표시합니다.)
7시간 후에 GBP/JPY_A 에 매수포지션 진입을 하고 플로팅 합니다.
타 통화쌍을 조건으로 하려고 하는데, 어려움이 있어 위와 같은 질문을 드립니다.
감사합니다.
2012-04-09
378
글번호 49880
안미남 님에 의해서 삭제되었습니다.
2012-04-09
1
글번호 49879
답변완료
식 질문입니다
data1 첫봉의 종가를 나타내고 싶습니다
data2 첫봉의 종가를 나타내고 싶습니다
2012-04-09
381
글번호 49877
답변완료
질문입니다.
x값이 결국 양봉몸통길이인데,,
그게 0.5가됐든 0.1이됐든
1분봉 400봉으로 했을때 고작 20개 남짓정도만 검색될리가 없지않습니까?
전종목에 가까운 종목이 검색되어야 정상아닙니까?
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 질문드립니다
> 안녕하세요
예스스탁입니다.
X값을 조절해 검색해 보시기 바랍니다.
첨부된 그림은 X를 0.1로 설정하고 1분봉에서
검색에 필요한 최소기간을 400으로 하고 검색한 화면입니다.
즐거운 하루되세요
> 메두사 님이 쓴 글입니다.
> 제목 : 질문드립니다
> 테스트해보고 올리신겁니까?
분봉으로 해서 검색하면 아무것도 검색이 되지않습니다.
기간을 크게해도 없고, 아무것도 없습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 질문드립니다.
> 안녕하세요
예스스탁입니다.
input : x(0.5);
var1 = (C-O)/O*100;
if var1 >= DayClose(1)*(x/100) Then
find(1);
분봉에서 검색하시므로 속성화면에서
검색에 필요한 기간을 충분히 설정하셔야 합니다.
검색하는 분봉주기의 하루치 봉갯수 이상으로 설정하고
검색하시기 바랍니다.
가령 1분봉일경우 당일 351개 이상이 필요하므로 360정도로 설정하시면 됩니다.
즐거운 하루되세요
> 메두사 님이 쓴 글입니다.
> 제목 : 질문드립니다.
>
분봉에서 양봉캔들검색을 원합니다.
몸통은 전일종가를 기준으로 분봉캔들의 시가,종가등락율 차로 합니다.
몸통이 x 이상인놈을 찾는다. 정도가 되겟네요
검색기간을 하루로 제한하는 방법도 알려주십시오.
실제로 분봉프레임을 달리해서 테스트해보신후에 올려주십시오.
제가만들어보니 영 이상하게 나옵니다.
2012-04-09
380
글번호 49872
답변완료
질문..
if crossup(C,20) then
이 문장에서..종가가 20이평선을 돌파하면이잖아요?
이게 기준이 전봉 종가가 20이평선 밑에있다는 얘기인가요...아니면 시가는 20이평밑에있고 종가가 20이평돌파시만인가영?
예를들어 3번 2번 1번봉이 있을 시..
3번봉 종가가 20일선 밑마감.
2번봉 시가 20일선밑. 종가 20일선위.
1번봉 시가 20일선밑. 종가 20일선위.
이렇게 나왔다면..크로스가 두번된거인가여? 아니면 전봉 종가대비 크로스업되서 1개만인가여?
2012-04-09
467
글번호 49870
답변완료
식 질문입니다
OpenPositionProfit
미청산 포지션의 손익액
PositionProfit
포지션의 손익액
피라미딩 전략을 사용했을때 예를 들어
차이점을 예제로 설명해주세요
2012-04-09
435
글번호 49869
답변완료
궁금...
Input: len1(25), len2(6), s1(0.37), s2(2.7), level(50);
var : cond1(false),cond2(false);
Var1=slowk(len1,len2);
If sdate<>sdate[1] then{
Var10=9999999;
Var11=0;
Var50=totaltrades;
Cond1=False;
Cond2=False;
}
If crossup(Var1,level) then{
Var10=high;
}
If crossdown(Var1,level) then{
Var11=low;
}
Cond1=crossup(Var1, level);
Cond2=CrossDown(Var1, level);
If totaltrades-var50==0 then{
If stime<150000 then{
If opend(0)< closed(1) then{
buy("매수",Atstop,Var10);
}
If opend(0)> closed(1) then{
sell("매도", Atstop,Var11);
}
If Var1>level then{
buy("매수1",Atstop,opend(0)+(highd(1)-lowd(1))*s1);
}
If Var1<level then{
sell("매도1",Atstop,opend(0)-(highd(1)-lowd(1))*s1);
}
}
}
If MarketPosition<>0 then{
exitlong("매수추적",Atstop,Highest(high,barssinceentry+1) - atr(20)*s2);
exitshort("매도추적",Atstop,Lowest(low,barssinceentry+1)+atr(20)*S2);
}
If Cond2 then{
exitlong("지표청산1",Atstop,lowest(low,3));
}
If Cond1 then{
exitshort("지표청산2",Atstop,highest(high,3));
}
SetStopEndofday(150400);
하루 한번만 진입을 하려고 totaltrades-var50==0 값을 넣었는데
한봉에서 청산을 하고 바로 다시 진입이 들어가 버리네요..
어떻게 해결하나요??
2012-04-09
436
글번호 49859