커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7717
글번호 230811
답변완료
시스템식
안녕하세요
하기 시스템식으로 문의 부탁 드립니다.
매수 매도 청산시 진입금지 식 부탁드리며 청산후 다시 시스템 가동 할수 있도록부탁드립니다
매수매도후 즉시 진입이되는되 안되게부탁드립니다
Var : value(0);
Condition1 = IsExitName("StopProfittarget",1) and ExitDate(1) == sdate;
If (stime >= 90110 and stime < 91000) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) THEN {
if crossup(c,dayopen) Then
buy("시초가매수");
if CrossDown(c,dayopen) Then
sell("시초가매도");
}
If (stime > 91000 and stime < 111000) THEN {
if BarsSinceExit(1) > 1 then { ##청산신호 후에 1봉이 경과 할때까지 재진입을 금지하라
if stime>=090100 and Stime< 150300 and marketposition==0 then
if C > H[1] and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
buy("매수");
if MarketPosition == 1 Then
sell("반대매도",AtStop,L[BarsSinceEntry]-PriceScale); ##진입봉의 고가는 H[BarsSinceEntry] if MarketPosition == -1 Then buy("SB",AtStop,H[BarsSinceEntry]+PriceScale);
##매도진입후 매도진입봉의 고가+1틱이상의 시세가 발생하면 매도로 전환
##진입봉의 저가는 L[BarsSinceEntry] if MarketPosition == 1 Then sell("BS",AtStop,L[BarsSinceEntry]-PriceScale);
##매수진입후 매수진입봉의 저가-1틱 이하의 시세가 발생하면 매수로 전환
if C < L[1] and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
sell("매도");
if MarketPosition == -1 Then
buy("반대매수",AtStop,H[BarsSinceEntry]+PriceScale);
}
}
If (stime > 110000 and stime < 144900) THEN {
Inputs: PercentRLen(10), OverSold(10), OverBought(90), Trigger(62);
Variables: PcntR(0), AvgValue(0), Setup1(False), Setup2(False);
PcntR = PercentR(PercentRLen);
AvgValue = MA(Close, PercentRLen);
If PcntR < OverSold Then
Setup1 = True;
If PcntR > OverBought Then
Setup1 = False;
If PcntR > OverBought Then
Setup2 = True;
If PcntR < OverSold Then
Setup2 = False;
If Setup1 AND AvgValue > AvgValue[1] AND Crossup(PcntR,Trigger) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then Begin{
Setup1 = False;
//Buy ("11시이후매수");
}
End;
If Setup2 AND AvgValue < AvgValue[1] AND CrossDown(PcntR, Trigger) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then Begin{
Setup2 = False;
}
End;
If (stime >= 120000 and stime < 145000) THEN {
Inputs: Length1(5),Length2(3),Length3(3),OverSold11(30),OverBought11(70);
Variables: KLine(0), DLine(0);
KLine = StochasticsK(Length1,Length2);
DLine = StochasticsD(Length1,Length2,Length3);
If Crossup(KLine[5], DLine[5]) AND KLine[5] < OverSold11 AND DLine[5] < OverSold11 and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then ##스토매수 신호을 3개봉뒤에 신호나옴
buy("스토매수",AtStop,value);
If (stime >= 100000 and stime < 135000) THEN {
If CrossDown(KLine, DLine) AND KLine > OverBought11 AND DLine > OverBought11 and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
sell ("스토매도",AtStop,value);
}
}
}
If (stime >= 90000 and stime < 150000) THEN {
Input : Period(12), Period1(5), Period2(5);
value1 = StochasticsK(Period,Period1);
value2 = StochasticsD(Period,Period1,Period2);
If CrossDown(value1, value2) Then {
var1 = C;#데드크로스시 발생시 초기값
var2 = var1[1]; # 직전 데드크로스 구간의 종가 중 최저가
}
#가장 최근 데드크로스 구간의 종가중 최저가 계산
if value1[1] < value2[1] Then{
if C < var1 Then
var1 = L;
}
if CrossUp(value1,value2) Then{
Condition1 = IsExitName("StopProfittarget",1) and ExitDate(1) == sdate;
var3 = value1; #골든크로스시 value1값
var4 = var3[1];#직전골든크로스시 value1값
if var3 > var4 and var1 < var2 and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
buy("골든크로스시",atmarket);
if MarketPosition == 1 Then
sell("골등반대매도",AtStop,L[BarsSinceEntry]-PriceScale);
}
}
If (stime >= 100000 and stime < 150000) THEN {
Condition1 = IsExitName("StopProfittarget",1) and ExitDate(1) == sdate;
if min(c,O) > ma(c,3) and min(C,H) > ma(c,10) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
buy("이평매수");
}
If (stime >= 100000 and stime < 150000) THEN {
if max(c,O) < ma(c,10) and max(C,H) > ma(c,10) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
sell("이평매도");
}
If (stime >= 100000 and stime < 150000) THEN {
var : slowK1(0), slowD1(0), slowK2(0), slowD2(0);
slowK1 = stochasticsK(12,3);
slowD1 = stochasticsD(20,12,12);
slowK2 = stochasticsK(12,5);
slowD2 = stochasticsD(12,5,5);
if BarsSinceExit(1) > 3 then { ##청산신호 후에 1봉이 경과 할때까지 재진입을 금지하라
if stime>=120000 and Stime< 150300 and marketposition==0 then
Condition1 = IsExitName("StopProfittarget",1) and ExitDate(1) == sdate;
if slowK1 > slowD1 and crossup(slowK2,slowD2) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
buy("스토12");
if CrossDown(slowK1,slowD1) and ((Condition1 == true and BarsSinceExit(1) >= 1) or Condition1 == false) Then
sell("스토5");
}
}
2011-06-15
654
글번호 39760
답변완료
수식문의
항상 정성스럽게 답변해주셔서 감사합니다.
아래의 신호를 지표로 만들고 싶습니다.
옵션의 당일 최저점에서 N% 상승가격대에 횡선을 긋고
해당 가격에 도달할 시 음성신호가 나는 (임의의 음성신호를 선택할수 있게)
신호를 7개,
당일 최고점에서 N% 하락가격대에 횡선을 긋고
해당 가격에 도달할 시 음성신호가 나는 (임의의 음성신호를 선택할수 있게)
신호를 5개,
총 12개의 신호를 하나의 지표에 묶어서 표현하고 싶습니다.
각각의 음성신호는 모두 다르게 설정하고 싶습니다.
부탁드립니다.
2011-06-14
690
글번호 39759
답변완료
수식문의2
항상 정성스럽게 답변해주셔서 감사합니다.
아래의 신호를 지표로 만들고 싶습니다.
선물의 분봉 거래량이 n계약수가 돌파되면
소리신호가 나고
해당봉의 고+저+종/3 가격지점에 n캔들을 연속으로
(외부입력이 안된다면 '15캔들을 연속으로')
오른쪽으로 점을 찍는 표시를 하고 싶은데요,
이렇한 신호 5개를 묶어 하나의 지표에 모두 표현하고 싶습니다.
(각각의 신호에는 모두 다른 음성신호를 표현할 수 있도록)
부탁드립니다~
2011-06-14
698
글번호 39758
답변완료
수식문의
캔들패턴에 소리 신호와 차트 표기 ::
상승장악형, 상승반격형, 상승박차형
하락장악형, 하락반격형, 하락박차형
이렇게 6개 지표인데요,
-->조건완성시 소리신호가 나고 (임의의 음성신호를 선택할수 있게)
-->차트 표시는 해당캔들의 저점에 n캔들을 연속으로
(외부입력이 안된다면 '15캔들을 연속으로')
오른쪽으로 점을 찍는 표시를 하고 싶습니다.
부탁드립니다.
감사합니다~
2011-06-14
660
글번호 39757
답변완료
수식문의
var1 = data2(ma(c,5));
var2 = data2(ma(c,10));
if var1 > var2 && date <> date[1] and stime==0900000 Then
buy("b");
setstopendofdays(144500);
위와 같이 수식 작성시 주문이 나가지 않네요 뭐가 잘못 된건가요?
2011-06-14
729
글번호 39756
답변완료
19131 번호 수정좀
# 1.잦은 box권 등락시 매매좀 안나오게 해주세요
# 2.매수매도식에 베이시스 추가
# 3.매수매도에 거래량 지표 추가
# 4.추세지표하나 추가해주세요(추세구간 너무 잣매매 안나오게)
var1 = ma(obv,9);
var2 = ma(obv,26);
if crossup(var1,var2) and Oi > Oi[60] and C>dayopen Then
buy("매수");
if CrossDown(var1,var2)Then
ExitLong("매수청산");
if CrossDown(var1,var2) and Oi > Oi[60] and C<dayopen Then
Sell("매도");
if crossup(var1,var2)Then
ExitShort("매도청산");
# 4.아래는 재진입 식 단변글인대 추가 하니 매수매도 신호가
# 기존식보다 많이 나옴니다(제가조금수정) 왜그러나요??
if MarketPosition == 0 and MarketPosition(1) == 1 and C>dayopen Then
buy("b",AtStop,Highest(H,60)+PriceScale);
if MarketPosition == 0 and MarketPosition(1) == -1 and C<dayopen Then
sell("s",AtStop,Lowest(L,60)-PriceScale);
2011-06-15
765
글번호 39755
답변완료
시스탬 문의
1.추세전략
첫봉에 매수 잔량이 매도잔량 보다 많고 양봉이면 매수
반대면 매도
참조데이타 일봉 10,20,30 정배열이나 역배열시(외부참조로)
1.추세전략그대로 쓰고
2.정배열 or역배열도 아닐때 과다이격청산과 시초가 반락으로 포지션 변경
3.정배열이나 역배열이 아닐때 전략 추천좀해주세요
4.전일 종가,고가,저가 상향돌파시 매수 고가,저가 종가하향돌파시 매도
참조봉은 2시30분~3시 시초가 이후 전략을 부탁합니다
5.저가에서 3%상승시 매수 고가에서 3%하락시 매도
6.시가에서 3%상승시 매수 시가에서 3%하락시 매도
빠른답변감사합니다.
2011-06-15
758
글번호 39744
답변완료
시스템식?
INPUT : LENGTH(10);
VAR : TCHAN(0), BCHAN(0);
TCHAN = HIGHEST(HIGH, LENGTH)[1];
BCHAN = LOWEST(LOW, LENGTH)[1];
5분봉을 사용합니다.
종가가 Tchan 가격라인을 터치하고
5분봉이 상향돌파은 되지 않은 경우가 종종 있습니다.
따라서 "종가가 TCHAN을 당일에 한번이상 터치할때" 라은 전제 조건수식좀 원합니다.
2011-06-14
763
글번호 39743
답변완료
행복; 수식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
<< 지표식 1 >>
- 주기; 일봉
< 조건 1; 정배열 형성 >
- 20일 이평선, 60일 이평선 각각 우상향
- 종가 > 20일 이평선 > 60일 이평선 ; 정배열
이 발생한 시점
< 조건 2; 이격 확장 >
- < 조건 1 > 이 발생한 후
- 20일 이평선, 60일 이평선 각각 우상향
- 종가 > 20일 이평선 > 60일 이평선 ; 정배열
이 유지되는 상태에서
- 처음으로
- ( 20일 이평선 - 60일 이평선 ) / 전일 종가 * 100 > 8
이 발생한 시점
< 조건 3; 20일선 붕괴 >
- < 조건 2 > 가 발생한 후
- ( 20일 이평선 - 60일 이평선 ) / 전일 종가 * 100 > 8 이
지켜지는지 여부에 관계없이
- 직전 봉까지
- 20일 이평선, 60일 이평선 각각 우상향
- 종가 > 20일 이평선 > 60일 이평선 ; 정배열
이 유지되다가
- 처음으로
- 종가 < 20일 이평선
이 되어 20일 이평선이 붕괴된 시점
< 조건 4; 60일선 붕괴 >
- < 조건 3 > 이 발생한 후
- 60일 이평선만(20일 이평선 제외) 우상향
- 종가 > 60일 이평선(20일 이평선 제외) ; 정배열
이 유지되다가
- 처음으로
- 종가 < 60일 이평선
이 되어 60일 이평선이 붕괴된 시점
=============================================================
< 필요한 지표식 1; 이평선 색상 >
* 20일 이평선의 색상을 정해 주세요
- < 조건 2; 이격 확장 > 에서 < 조건 3; 20일선 붕괴 > 까지는 오렌지색
- 이외의 구간은 회색
* 60일 이평선의 색상을 정해 주세요
- < 조건 1; 정배열 형성 > 에서 < 조건 2; 이격 확장 > 까지는 오렌지색
- < 조건 2; 이격 확장 > 에서 < 조건 3; 20일선 붕괴 > 까지는 검은색
- < 조건 3; 20일선 붕괴 > 에서 < 조건 4; 60일선 붕괴 > 까지는 오렌지색
- 이외의 구간은 검은색
< 필요한 지표식 2; 선 그래프 >
* plot1
- < 조건 2; 이격 확장 > 에서 < 조건 3; 20일선 붕괴 > 까지는 plot1(3)
- 이외의 구간은 plot1(0)
* plot2
- < 조건 3; 20일선 붕괴 > 에는 plot2(4)
- 이외의 구간은 plot2(0)
* plot3
- < 조건 1; 정배열 형성 > 에서 < 조건 2; 이격 확장 > 까지는 plot3(1)
- < 조건 2; 이격 확장 > 에서 < 조건 3; 20일선 붕괴 > 까지는 plot3(0)
- < 조건 3; 20일선 붕괴 > 에서 < 조건 4; 60일선 붕괴 > 까지는 plot3(1)
- 이외의 구간은 plot3(0)
* plot4
- < 조건 4; 60일선 붕괴 > 에는 plot4(2)
- 이외의 구간은 plot4(0)
2011-06-14
744
글번호 39742