커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6414
글번호 230811
답변완료
문의드립니다
하루 최대 두번매매,하루 한번 매매도 가능함.
데이터2의 시가를 종가상 이탈하면 데이터1에 매수 신호.
데이터2의 시가대비 10틱 올라오면 손절
익절은 10틱 20틱 30틱40틱 순차 청산
20틱이익후 고전 대비 80% 눌리면 청산
진입수량과 손절틱수는 input 으로 부탁 합니다.
감사합니다.
2016-07-11
168
글번호 99944
답변완료
문의 드립니다.
짧게 0.2 정도 목표가 청산을 한 경우에
청산되자 마자 동일 신호로 진입이 되는 경우가 있습니다.
예를 들어서 "a"란 신호로 매수진입해서 다음 캔들에서
곧바로 수익이 났는데, 목표가 청산 캔들에서 동시에 "a" 진입 신호가
발생하는 경우입니다.
목표가가 짧아서 1~2 캔들내에서 청산이 되는 경우에 자주 발생하는데요
이걸 막는 방법은 없을까요?
예를 들어서 동일 진입 후 몇 캔들 내에서는 동일 신호 진입 금지와
같이 명령을 줄 수 있는지 궁굼합니다.
항상 감사합니다.
2016-07-11
143
글번호 99942
답변완료
수식 문의 드립니다.
안녕하세요.
늘 빠르고 정확한 답변에 감사드리고 싶습니다.
아래 로직에서 추가하고 싶은게 있어서 문의드립니다.
1. 강제 청산 조건에서
현재 20일 이평 만날 경우, 강제 청산으로 되어 있는데,
진입 가격대비 (15틱 이상 멀어질 경우--> 물타기를 하여 2계약 진입이 된 상태에서)를 추가하여,
두 가지 조건중, 조건을 먼저 만족하는 경우 강제 청산을 하는 로직을 추가하고 싶습니다.
2. 해당 로직은 현재 4틱 이상 상승후, 되돌림하여 +2틱이 되면 수익청산을 하게끔 되어 있는데,
6틱 이상 상승후 되돌림하여 +3틱이 되면 수익 청산이 되게끔 수정을 할려면,
아래 수식에서 해당 숫자를 아래와 같이 6과 3으로 변경하면 되는지요? (제가 일부 변경하여 적용해봤는데, 여전히 이전 조건으로 청산이 되는거 같습니다.)
if var1 >= EntryPrice+PriceScale*6 Then
exitlong("bx1",AtStop,EntryPrice+PriceScale*3);
#4틱이상 상승후 진입가+2틱에 도달하면 매수청산
if var1 >= EntryPrice+PriceScale*4 Then
exitlong("bx1",AtStop,EntryPrice+PriceScale*2);
늘 감사하게 생각하고 있습니다.
무더위에 조심하세요.
_._
=======================================================================================
수정 반영분.
input : P1(5),P2(20);
var : D1(0),MM(0),mav(0);
MM = stime%100;
D1 = C/ma(C,P1);
mav = ma(C,p2);
#이격이 99.5이하인 시점에 매수진입
if CrossDown(d1,99.5) and ((MM >= 0 and MM < 25) or (MM >= 30 and MM < 55)) Then
buy("b",OnClose,def,1);
#이격이 100.5이상인 시점에 매도진입
if crossup(d1,100.50) and ((MM >= 0 and MM < 25) or (MM >= 30 and MM < 55)) Then
sell("s",OnClose,def,1);
#매수진입후
if MarketPosition == 1 Then{
if CurrentContracts > CurrentContracts[1] Then
var1 = H;
if H > var1 Then
var1 = H;
#진입이 1번일경우
if MaxEntries == 1 Then{
#15틱 하락하면 1계약 추가매수진입
buy("bb",atlimit,EntryPrice-PriceScale*15,1);
#진입가+10틱에 청산
ExitLong("bp1",Atlimit,EntryPrice+PriceScale*10);
#4틱이상 상승후 진입가+2틱에 도달하면 매수청산
if var1 >= EntryPrice+PriceScale*4 Then
exitlong("bx1",AtStop,EntryPrice+PriceScale*2);
}
#진입이 2번일 경우
if MaxEntries == 2 Then{
#청산이 아직 발생하지 않은 경우 평단가+4틱 수익이면 1계약청
if CurrentContracts == MaxContracts Then
ExitLong("bp21",Atlimit,avgEntryPrice+PriceScale*4,"",1,1);
#일부청산이 된 경우
if CurrentContracts < MaxContracts Then
#평단가 +10틱이상이면 나머지 청산
ExitLong("bp22",Atlimit,AvgEntryPrice+PriceScale*10);
#평단가 +4틱이상 상승후 하락해서 평단가+4틱에 도달하면 나머지 청산
if var1 > AvgEntryPrice+PriceScale*4 Then
exitlong("bx2",AtStop,EntryPrice+PriceScale*4);
}
if H < mav Then
exitlong("bx21",AtLimit,mav);
if L > mav Then
exitlong("bx22",AtStop,mav);
}
#매도진입후
if MarketPosition == -1 Then{
if CurrentContracts > CurrentContracts[1] Then
var2 = L;
if L < var2 Then
var2 = L;
#진입이 1번일경우
if MaxEntries == 1 Then{
#15틱 상승하면 1계약 추가매도진입
sell("ss",atlimit,EntryPrice+PriceScale*15,1);
#진입가-10틱에 청산
ExitShort("sp1",Atlimit,EntryPrice-PriceScale*10);
#4틱 하락 후 진입가-2틱에 도달하면 매도청산
if var2 <= EntryPrice-PriceScale*4 Then
ExitShort("sx1",AtStop,EntryPrice-PriceScale*2);
}
#진입이 2번일 경우
if MaxEntries == 2 Then{
if CurrentContracts == MaxContracts Then
ExitShort("sp21",Atlimit,avgEntryPrice-PriceScale*4);
if CurrentContracts < MaxContracts Then
ExitShort("sp22",Atlimit,AvgEntryPrice-PriceScale*10);
if var2 < AvgEntryPrice-PriceScale*4 Then
ExitShort("sx2",AtStop,EntryPrice-PriceScale*4);
}
if L > mav Then
ExitShort("sx21",AtLimit,mav);
if H < mav Then
ExitShort("sx22",AtStop,mav);
}
2016-07-11
163
글번호 99941
답변완료
로직문의
현대중공업 macd oscillator 로 하고 있읍니다.
봉은 day봉입니다.(일봉 기준)
그런데, 매매신호가 봉완성시 생성되면
익일 시초가 이후에 실제 매매가 발생합니다.
(당일 봉완성시 신호떠도 익일 아침 싯가에 실제 매수/매도가
체결되는 형식입니다)
익일 시초가에는 물량이 충분치 않아서 슬리피지가 많이
발생하고, 그나마도 물량부족으로 전체량이 체결안되곤 합니다.
해결방법이 없을까요?
가령, 시초가 이후 (익일 장시작이후) 5분정도 있다가
체결한다던지 등등 (전일 봉 신호에 대하여 익일 9:05분에 지연체결
되게 로직을 조정하는 방법),
아니면 다른 방법이 없겠읍니까?
혹시, 전략실행차트에서 시스템트레이딩설정/매매/매매가격에서 현재가+-5호가 대신
시장가나 최유리지정가 등으로 설정하면 가능합니까?
예스자동정정주문은 무엇입니까?
2016-07-12
180
글번호 99940
답변완료
질문드립니다.
x 와 p는 변수 입력
조건 : x 일 이후 형성된 최저점을 p일 동안 유지하는경우
# 단 최저점은 주가흐름에 따라 변경된다. 다음 캔들 최저점이 이전 캔들 최저점보다 낮으면
그 캔들로부터 p 기간 동안 최저점이 다시 유지되어야 조건이 유효하다
조건이 만족하면 최저점 값을 저장한다
x일의 최고점보다 현재주가가 클때 해당날짜 저장한다
2016-07-12
164
글번호 99939
답변완료
문의 드립니다
저점에서 위로 10% 가격변동폭이 생기면 위로 계단식으로 표현되고 계속해서 추세가 상승이면
10% 단위로 계속해서 위로 계단이 상승하고 고점에서 아래로 10% 가격변동폭이 생기면
아래로 계단식으로 표현되고 추세가 하락이면 계속해서 아래로 10% 단위로 계단식으로 표현
되게하는 수식을 알고싶습니다. 만약 저점, 고점 기준으로 10% 이내의 횡보장이라면 그냥
수평선만 그려지겠지요. ^^ 감사합니다~~
2016-07-11
186
글번호 99938
답변완료
조건 카운터 수식
RSI는 미가열이며 StochasticsK 가열이탈이 2번째일때 매도하는 수식을 아래와 같이
작성했는대 잘 안되내요 확인 부탁 드립니다.
Value7의 카운터가 이상한가 봅니다.
Input : S_Period(25), S_Period1(6), S_Period2(6), S_SPercent(80), S_LPercent(20), R_Period(20), R_SPercent(70), R_LPercent(30), shortPeriod(5), Period(20), longPeriod(60);
Var : value(0) ;
value1 = StochasticsK(S_Period,S_Period1);
value2 = StochasticsD(S_Period,S_Period1,S_Period2);
value4 = ma(V,shortPeriod);
value5 = ma(V,Period);
value6 = ma(V,longPeriod);
value = RSI(R_Period);
# 매수/매도청산
If CrossUP(Value4, Value5) and Value4 >= Value6 Then
{
Buy();
# 매도 조건
if Condition2 == true then
{ Condition1 = False ;
Condition2 = False ;
}
}
# 매도/매수청산
If value1 >= S_SPercent and value >= R_SPercent Then
{
Condition1 = true;
}
If value1[2] >= S_SPercent and value1[2] > value1[1] and value1[1] > value1 and value < R_SPercent and value[1] < R_SPercent and value[2] < R_SPercent
and value[3] < R_SPercent and value[4] < R_SPercent and value[5] < R_SPercent and value[6] < R_SPercent and value[7] < R_SPercent
and value[8] < R_SPercent and value[9] < R_SPercent Then
{
Value7 = Value7 + 1 ;
}
If Condition1 == true and Value7 == 2 Then
{
Sell();
Condition2 = true;
}
2016-07-10
168
글번호 99937
답변완료
진입과 청산 시스템에서
진입은 봉완성시에,
청산은 봉미완성시에도 된다고 알고있습니다.
그러면, 청산은 예비신호 나오기만 하면 바로 청산이 되는것이 맞는지요 ?
완성시에 청산되는건 아니죠 ?
정확히 알고싶어서 질문드립니다.
2016-07-10
178
글번호 99936
답변완료
이평선 매매
* 항상 많은 도움 고맙습니다.
* 이평선 매매를 할려고 하는대요.
* 기준은
Input : Period1(10), Period2(40), Period3(50);
var : Sma1(0),Sma2(0),Sma3(0);
Sma1 = ma(C,Period1);
Sma2 = ma(C,Period2);
Sma3 = ma(C,Period3);
if CrossUp(Sma2,Sma3)
then buy("매수");
if MarketPosition == 1 then { if CrossDown (Sma1,Sma2) then ExitLong ("매도");
인데요..... 여기서 조건을 하나 추가 하고 싶은것이 있습니다.
첨부 파일에 보면
2차 매수 하기전 필수적으로
CrossDown (Sma2,Sma3)
꼭 한번 있어야 합니다.
즉 2차 매수 전 에는
1차 매수 CrossUp(Sma2,Sma3)
이후에 꼭 한번
CrossDown (Sma2,Sma3)
있어야 합니다.
CrossDown이 없으면 매수 하면 안되는로직
구현 요청 합니다.
종합 : Sma2 가 Sma3 를 CrossUp 하면 사고
Sma1 가 Sma2 를 CrossDown 하면 매도 하는데
다음 매수때에는 Sma2 가 Sma3 를 CrossDown 이 꼭 한번 있어야 합니다.
* 항상 많은 도움 고맙습니다.
꾸벅.........
2016-07-10
270
글번호 99935