커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4575
글번호 230811
답변완료
지표표시와 소리나는 것간의 불일치문제는 어찌 해결하나요?
안녕하세요..
해외선물(오일)거래에서
"지료" 로서
#1. 당일 시가
plot1(dayopen,"당일시가");
#2. 당일 중간값
plot2((dayhigh+daylow)/2,"당일중간");
#3. 당일 1/3중심
plot3((dayhigh+daylow+dayopen)/3,"당일1/3");
를 차트에 나타나게 해서 보고있고요
아울러 현재가가 위 가격에 도달하면 소리가 나도록 별도로
"검색"식을
var1=(dayhigh+daylow+dayopen)/3;
var2=(dayhigh+daylow)/2;
#1. 당일 시가 터치
if crossup(C,dayopen) or crossdown(C,dayopen) Then
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩오일 시가터치.wav");
#2. 당일 1/3중심 터치
if crossup(C,var1) or crossdown(C,var1) Then
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩오일 3분의1터치.wav");
#3. 당일 중간값 터치
if crossup(C,var2) or crossdown(C,var2) Then
PlaySound("C:₩WRFutures₩YesGlobalPro₩data₩Sound₩오일 중심터치.wav");
이렇게 정하고 파일을 만들어 보관 및 위치지정을 해줌으로써 소리가나서 알려주도록 만들었습니다.
처음에는 딱딱 잘 맞아 제대로 작동을 했는데요
시간이 흐르다보니 어느샌가(지표나 검색 양측 어느 하나도 건들지않았습니다. 거래 월물이 바뀌면서 달라지는 걸까요??)
둘이 완전히 따로도는 상황이 되어버렸습니다(차트에 시가로 표시되는 곳에 현재가가 닿은것도 아니고 완전히 저 멀리있음에도 소리는 시가에 닿았다라고 소리가 나요.)
왜 그럴까 전혀 모르겠습니다.
그러다보니 해결책도 모르겠는데 좋은 방책좀 알려주세요
답답하네요.
아참! 이러한 문제는 NH선물 예스트레이더(해외선물 오일)에서도 그렇고 하이투자 예스트레이더(코스피선물)에서도 똑같은 문제가 발생하고있습니다.
2016-07-21
163
글번호 100271
답변완료
고가와저가사이추격금지구역
input : HP(5),LP(5);
var : cnt(0),HH(0),LL(0);
HH = dayhigh(1);
for cnt = 1 to HP{
if dayhigh(cnt) > HH Then
HH = dayhigh(cnt);
}
LL = dayLow(1);
for cnt = 1 to LP{
if daylow(cnt) < LL Then
LL = dayLow(cnt);
}
if crossup(c,HH) then
buy();
if CrossDown(c,LL) Then
sell();
input : AtrMult(5), AtrPeriod(5);
var : AtrVal(0), posHigh(0), posLow(0);
ATRVal = ATR(AtrPeriod) * AtrMult;
PosHigh = Highest(H,BarssinceEntry+2);
PosLow = Lowest(L,BarsSinceEntry+2);
#5일고가와 5일저가사이 추격상하 매매 금지
If MarketPosition == -1 and C > HH Then
buy("ATR6", AtStop, PosLow + ATRVal);
If MarketPosition == 1 and C < LL Then
sell("ATR5", AtStop, PosHigh - ATRVal);
If MarketPosition == 0 and C < HH Then
buy("ATR8", AtStop, Lowest(L,BarsSinceExit(1)+1) + ATRVal);
If MarketPosition == 0 and C > LL Then
sell("ATR7", AtStop, Highest(H,BarsSinceExit(1)+1) - ATRVal);
위수식에서
5일고가와 5일저가사이에서는 추격안되록하였습나다
그런데 추적이 나오는데 잘못된걸 좀 고쳐주세요
감사합니다
2016-07-21
165
글번호 100270
답변완료
수식 작성(수정) 요청드립니다.
안녕하세요..
아래 macd divergence를 rsi divergence로 변경하고 싶은데요.. 부탁드립니다.
Input : Period(60), ShortPeriod(12), longPeriod(26), Highperiod(30);
Var : MACDV(0),LL(0),HH(0),ML(0),MH(0);
MACDV = macd(shortPeriod,longPeriod);
ML = lowest(MACDV,Period);
MH = highest(MACDV,Period);
LL = Lowest(L,Period);
HH = highest(H,Period);
#매수진입/매도청산
if MACDV > MACDV[1] and MACDV[1] <= MACDV[2] and ML[2] < MACDV[1] and
(L < LL[1] or L[1] < LL[2] or L[2] < LL[3]) Then
buy();
#매도진입/매수청산
if MACDV < MACDV[1]and MACDV[1] >= MACDV[2] and MH[2] > MACDV[1]and
(H > HH[1] or H[1] > HH[2] or H[2] > HH[3]) Then
sell();
2016-07-21
164
글번호 100269
답변완료
문의 드립니다
특정이평선(예를 들면 20이평선)의 기울기나 강도를 알 수 있는 그런 지표가 있을까요 ?
즉 20이평선이 강하게 솟아 오르거나 하락하면... 그 강도나 기울기를 수치나 지표로 알고 싶습니다.
감사합니다
2016-07-21
179
글번호 100268
답변완료
행복; 시스템식 작성 바랍니다
한국의 금융산업 발전을 위해 불철주야 애쓰시는 귀하의 노고를 높이 평가합니다
시스템식 작성 바랍니다
<< 조건 >>
- 시뮬레이션 목적 입니다
- 주기; 일봉
- 고가 == 상한가
- 종가 < 상한가
< 매수 >
- 매수금액; 천만원
- 당일 고가(상한가)
< 매도 >
- 매도수량; 전량
- 당일 종가
수고하십시요^^
2016-07-21
159
글번호 100267
그리금강산 님에 의해서 삭제되었습니다.
2016-07-21
1
글번호 100266
답변완료
수식 부탁드립니다
(1)시스템
파라볼릭 상단 저항선을 고가로 터치하고 음봉 발생 캔들에 매도...음봉 시가 돌파 매수
파라볼릭 하단 지지선을 저가로 터치하고 양봉 발생 캔들에 매수...양봉 시가 붕괴 매도
(2)지표
음봉 시가 가격 파란색 선으로 표시
양봉 시가 가격 빨간색 선으로 표시
(3)시스템
20 캔들 최고가와 40 캔들 최고가가 같은 값이고 이 값을 돌파시 매수
20 캔들 최저가와 40 캔들 최저가가 같은 값이고 이 값을 붕괴시 매도
(4)시스템
20 캔들 최고가와 40 캔들 최고가가 같은 값이고 이 값을 터치할 때 매도
20 캔들 최저가와 40 캔들 최저가가 같은 값이고 이 값을 터치할 때 매수
감사합니다
2016-07-21
203
글번호 100264
답변완료
함수변환요청(300)
안녕하세요?
아래는 키움증권에서 사용했던 함수입니다.
예스에서 사용가능하도록 함수 변환 요청드립니다.
전략은 박스권을 설정하여 고점매수, 저점매도입니다.
<사용자함수>
Param : BarsBack( Num );
Var : ii( 0 ), st( 0 ), et( 0) ;
Var : Summercond(False);
Value1 = (10000 * Year(D)) + (100 * 3) + 1;
Value2 = 15 - dayofweek(value1); // 3월 두번째 일요일 날짜
value3 = (10000 * Year(D)) + (100 * 11) + 1;
value4 = 8 - dayofweek(value3); // 11월 첫번째 일요일 날짜
Summercond = date > (10000 * Year(D)) + (100 * 3) + value2
And date < (10000 * Year(D)) + (100 * 11) + value4;
If Summercond = true
Then
Begin
CME_StartTime = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
CME_StartTime = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
<시스템함수>
var : TradingStartTime(0),TradingEndTime(0),myDayIndex(0);
TradingStartTime = CME_StartTime(0);
TradingEndTime = TradingStartTime - 10000;
if time >= TradingStartTime Or time < TradingEndTime Then
Begin
myDayIndex = myDayIndex + 1;
if myDayIndex > 10 Then
Begin
if C > Highest(C[1],10)*1.003 And False = cond1 Then
Begin
Buy("Buy",AtMarket);
cond1 = true;
End
Else if C < Lowest(C[1],10) *0.9997 And False = cond2 Then
Begin
Sell("Sell",AtMarket);
cond2 = true;
End;
End;
End
Else Begin
myDayIndex = 0;
cond1 = False;
cond2 = False;
if SignalPosition <> 0 Then
Begin
ExitLong();
ExitShort();
End;
End;
2016-07-21
177
글번호 100258
답변완료
교차에서 다음 교차까지
아래의 수식을
크로스업한 값을 저장하고 다음 크로스업할때까지 수평선을 그리고
크로스다운한 값을 저장하고 다음 크로스다운할때까지 수평선을 그리는 수식으로 수정 부탁합니다.
var : T(0),P(0),A(0),B(0);
#P가 A를 상향돌파
#구분값1
#P값 저장
if crossup(P,A) then{
T = 1;
var1 = P;
}
#P가 B를 하향이탈
#구분값1
#P값 저장
if CrossDown(P,B) then{
T = -1;
var1 = P;
}
#구분값이 1인 구간에서는 빨간색으로 var1값 출력
if T == 1 Then
plot1(var1,"1",RED);
#구분값이 -1인 구간에서는 파란색으로 var1값 출력
if T == -1 Then
plot2(var1,"1",blue);
2016-07-21
181
글번호 100257