커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4451
글번호 230811
답변완료
문의드립니다.
해당되는 하나의 봉만표시됩니다.
var21 > var22 이면서 var61이 상승중인 조건의 모든구간을 강조되게 해주세요
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
>
안녕하세요
예스스탁입니다.
## 노란색 강조: Var21 > Var22 and Var61 plot이 상승하고 있을때
## 연두색 강조: Var21 < Var22 and var62 plot이 하강하고 있을때
input : P21(30), P22(60);
input : short(12), long(26), sig(9);
var : macdv(0),macdo(0);
var : H61(0),L61(0),H62(0),L62(0);
macdV = MACD(short,long);
macdO = MACD_OSC(short,long,sig);
### 지표 2
var21 = WMA(C,P21); #30일
var22 = WMA(C,P22); #60일
### 지표 6
Condition61 = MACDO > 0;
Condition62 = MACDO < 0;
if Condition61 == true and Condition61[1] == false Then
{
H61 = H;
L61 = L;
}
if Condition61 == true then
{
if h > H61 Then
H61 = h;
if l < L61 Then
L61 = l;
}
if Condition61 == false and Condition61[1] == true Then
{
var61 = (H61+L61)/2; //MACDOsi상단평균
}
if Condition62 == true and Condition62[1] == false Then
{
H62 = H;
L62 = L;
}
if Condition62 == true then
{
if h > H62 Then
H62 = h;
if l < L62 Then
L62 = l;
}
if Condition62 == false and Condition62[1] == true Then
{
var62 = (H62+L62)/2; // MACDOsi하단평균
}
if var21 > var22 and var61 > var61[1] Then
PlotPaintBar(High, Low, "강조",YELLOW);
if var21 < var22 and var62 < var62[1] Then
PlotPaintBar(High, Low, "강조",YELLOW);
즐거운 하루되세요
> 라떼처럼 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 강조 문의드립니다. 감사합니다.
## 노란색 강조: Var21 > Var22 and Var61 plot이 상승하고 있을때
## 연두색 강조: Var21 < Var22 and var62 plot이 하강하고 있을때
input : P21(30), P22(60);
input : short(12), long(26), sig(9);
var : macdv(0),macdo(0);
var : H61(0),L61(0),H62(0),L62(0);
macdV = MACD(short,long);
macdO = MACD_OSC(short,long,sig);
### 지표 2
var21 = WMA(C,P21); #30일
plot21(var21, "30가");
var22 = WMA(C,P22); #60일
plot26(var26, "60가");
### 지표 6
Condition61 = MACDO > 0;
Condition62 = MACDO < 0;
if Condition61 == true and Condition61[1] == false Then
{
H61 = H;
L61 = L;
}
if Condition61 == true then
{
if h > H61 Then
H61 = h;
if l < L61 Then
L61 = l;
}
if Condition61 == false and Condition61[1] == true Then {
var61 = (H61+L61)/2; //MACDOsi상단평균
}
if Condition62 == true and Condition62[1] == false Then {
H62 = H;
L62 = L;
}
if Condition62 == true then {
if h > H62 Then
H62 = h;
if l < L62 Then
L62 = l;
}
if Condition62 == false and Condition62[1] == true Then {
var62 = (H62+L62)/2; // MACDOsi하단평균
}
if var61 > 0 Then
plot61(var61, "MACDOsi상단평균");
if var62 > 0 Then
plot62(var62, "MACDOsi하단평균");
/*
###강조
## 노란색 강조: Var21 > Var22 and Var61 plot이 상승하고 있을때
## 연두색 강조: Var21 < Var22 and var62 plot이 하강하고 있을때
if var62[1] > var62 Then
Begin
PlotPaintBar(High, Low, "HH",YELLOW);
end
else
NoPlot(1);
2018-11-09
143
글번호 123511
jd01 님에 의해서 삭제되었습니다.
2018-11-09
12
글번호 123508
답변완료
봉개수 카운터 문의 입니다.
수고하십니다.
주차트에서 새로운 봉이 완성시에 참조차트에 봉이 몇개발생 되었는지
카운터 방법을 문의드립니다.
감사합니다.
2018-11-09
142
글번호 123502
haha1122 님에 의해서 삭제되었습니다.
2018-11-09
10
글번호 123498
답변완료
진입 청산
안녕하세요.
CME 거래소 종목을 대상으로 월요일부터 금요일까지 거래를 하되
오전 8시부터 익일 오전 5시까지만 진입을 허용하고
오전 5시 14분 이전까지 보유 포지션을 모두 정리하는 데이 트레이딩 전략을 원합니다.
현재 로직은 오후 8시부터 익일 오전 5시까지 거래하되 5시 15분 이전에 포지션을 정리하는 방식입니다.
아래 로직을 바탕으로 수정을 해주시면 감사하겠습니다.
Inputs: SSTIME(200000), EETIME(050000), XXTIME(051430);
Var: MP(0);
MP = MarketPosition;
//--------- 써머타임 체크 로직 ---------//
Vars: ST(0), ET(0), Year(0);
Year = Floor(sDate / 10000);
Var18 = DayofWeek( (10000 * Year) + (100 * 3) + 1 );
If Var18 == 0 Then Value98 = 8;
Else Value98 = 15 - Var18; // 3월 두번째 일요일 날짜
Var20 = DayofWeek( (10000 * Year) + (100 * 11) + 1 );
If Var20 == 0 Then Value99 = 1;
Else Value99 = 8 - Var20; // 11월 첫번째 일요일 날짜
If sDate > (10000 * Year) + (100 * 3) + Value98 And sDate < ( 10000 * Year) + (100 * 11) + Value99 Then
Begin
ST = 070000; // 써머타임 적용 시, 장 시작 시간
ET = 060000; // 써머타임 적용 시, 장 종료 시간
End
Else
Begin
ST = 080000; // 장 시작 시간
ET = 070000; // 장 종료 시간
End;
CONDITION1 = ( IntPortion(Time / 10000) > IntPortion(ET / 10000) And IntPortion(Time[1] / 10000) <= IntPortion(ET / 10000) ) Or ST <> ST[1];
//------- 매매 시간대 -------//
Var: TimeCond(False);
If (sDate != sDate[1] and sTime >= SSTIME) or (sDate == sDate[1] and sTime >= SSTIME and sTime[1] < SSTIME) Then
Begin
TimeCond = True;
End;
If (sDate != sDate[1] and sTime >= EETIME) or (sDate == sDate[1] and sTime >= EETIME and sTime[1] < EETIME) Then
Begin
TimeCond = False;
End;
If (sDate != sDate[1] and sTime >= XXTIME) or (sDate == sDate[1] and sTime >= XXTIME and sTime[1] < XXTIME) Then
Begin
If MP == 1 Then ExitLong();
If MP == -1 Then ExitShort();
End;
//--------- 진입 로직 ---------//
If TimeCond Then
Begin
~~~~~ 중략 ~~~~~
End;
2018-11-09
154
글번호 123491
답변완료
다신 한 번 59885번과 관련하여 질문드립니다.
음성신호가 계속 반복 되지않고 1회만 나오게 하는 식을 알고 싶습니다.
2018-11-09
167
글번호 123488
답변완료
59925 질문입니다.
변수갑이 안 보입니다.
부탁드립니다.
2018-11-09
154
글번호 123487
답변완료
문의드립니다.
이제 입동이네요. 감기조심 하시고요.
아래와 같은 수식 부탁드립니다.
1.조건
양거래량이 5000 이상 되는 양봉이 생기면
이후로 음거래량이 5000 이상 되는 음봉이 생기기 전까지는
종가가 5일선 아래로 내려올때마다 매수만 진입하고
음거래량이 5000 이상 되는 음봉이 생기면
이후로 양거래량이 5000 이상 되는 양봉이 생기기 전까지는
종가가 5일선 위로 올라갈때마다 매도만 진입한다.
즐거운 주말 되세요.
2018-11-09
145
글번호 123485
답변완료
질문드립니다.
아래 시스템수식에 주석을 좀 달아주시면 감사하겠습니다.
그리고 MarketPosition 이라는 말에 대해서 인터넷에 찾아봐도 설명이 제대로 된게 없네요.
아래수식에 여러군데 사용됐든데 설명을 부탁드립니다
(첨부사진 마지막 두군데 숫자가 1이 아니고 -1이 아닌지...)
감사합니다.
If MarketPosition != 1
if MarketPosition != -1
if MarketPosition == 1
if MarketPosition == -1
Input : af(0.02), maxAF(0.2), Period(14);
Var : value(0);
Var : Value1(0);
value = sar(af,maxAF);
Value1 = ma(bids,period)-ma(asks,period);
If MarketPosition != 1 and Value1 > Value1[1] Then
buy("1");
if MarketPosition != -1 and value1 < value1[1] Then
sell("2");
if MarketPosition != 1 and crossup(c,value) Then{
Buy("b");
}
if MarketPosition != -1 and CrossDown(C,value) Then{
Sell("s");
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
var1 = countif(C > O,2);
Else
var1 = 0;
if MarketPosition == -1 and BarsSinceEntry == 2 Then
var2 = countif(C < O,2);
Else
var2 = 0;
if (MarketPosition == -1 and var2 < 0) and C > value[1] then
buy("sb");
if (MarketPosition == 1 and var1 < 0) and C < value[1] then
sell("bs");
if MarketPosition == 1 and BarsSinceEntry == 3 and C < EntryPrice Then
sell();
if MarketPosition == -1 and BarsSinceEntry == 3 and C > EntryPrice Then
buy();
2018-11-09
172
글번호 123484