커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1694
글번호 230811
답변완료
부탁 드립니다.
항상 도움에 감사 드립니다.
타주기 수식
(분봉지표를 분봉에서, 일봉 지표를 분봉에서)
부탁 드립니다.
질문1)
var1=ma(c,period);
질문2)
var2=wma(c,period);
질문3)
var3=ema(c,period);
참고 수식)
Input : Atime(30),Period(10),sig(9);
var : S1(0),D1(0),TM(0),EP(0);
Var : TF1(0),idx1(0),emav1(0),Pre1(0);
Ep = 2/(Period+1);
if Bdate != Bdate[1] Then{
S1 = TimeToMinutes(stime);
D1 = sdate;
}
if D1 > 0 then{
if sdate == D1 Then
TM = TimeToMinutes(stime)-S1;
Else
TM = TimeToMinutes(stime)+1440-S1;
TF1 = TM%Atime;
if Bdate != Bdate[1] or
(Bdate == Bdate[1] and Atime <= 1 and TF1 > TF1[1]) or
(Bdate == Bdate[1] and Atime > 1 and TF1 < TF1[1]) Then{
idx1 = idx1+1;
Pre1 = emav1[1];
}
if idx1 <= 1 then
emav1 = C;
else
emav1 = C * EP + Pre1 * (1-EP);
var1=ma(Emav1,sig);
}
Plot1(var1);
2021-11-07
870
글번호 153447
신대륙발견 님에 의해서 삭제되었습니다.
2021-11-08
8
글번호 153446
2wnwn 님에 의해서 삭제되었습니다.
2021-11-07
9
글번호 153445
답변완료
문의 드립니다.~~~~
아래 식은 역추세 진입 역추세 청산 재진입식입니다.
이 식을 반대로
1,추세 진입
2,추세 청산과 동시에 추세 재진입식으로
바꾸어 보려고 하는데 잘 되지 않아
도움을 요청합니다.
if Tcond == true Then
{
if MarketPosition == 0 and OO > 0 and LL > OO-PriceScale*진입틱수 Then
Sell("하루시작매도",AtLimit,LL+PriceScale*진입틱수);
if MarketPosition == 0 and OO > 0 and HH < OO+PriceScale*진입틱수 Then
Buy("하루시작메수",AtLimit,HH-PriceScale*진입틱수);
}
if MarketPosition == 1 Then
{
if Tcond == true Then
Sell("Bp1",AtLimit,EntryPrice+PriceScale*진입틱수);
Else
ExitLong("Bp2",AtLimit,EntryPrice+PriceScale*진입틱수);
if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*최소손실틱 Then
{
if Tcond == true Then
Sell("sx1",AtLimit,Lowest(L,BarsSinceEntry)+PriceScale*손실감소틱);
Else
ExitLong("sx2",AtLimit,Lowest(L,BarsSinceEntry)+PriceScale*손실감소틱);
}
}
if MarketPosition == -1 Then
{
if Tcond == true Then
Buy("sp1",AtLimit,EntryPrice-PriceScale*진입틱수);
Else
ExitShort("sp2",AtLimit,EntryPrice-PriceScale*진입틱수);
if highest(H,BarsSinceEntry) >= EntryPrice+PriceScale*최소손실틱 Then
{
if Tcond == true Then
Buy("bx1",AtLimit,highest(H,BarsSinceEntry)-PriceScale*손실감소틱);
Else
ExitShort("bx2",AtLimit,highest(H,BarsSinceEntry)-PriceScale*손실감소틱);
}
}
2021-11-08
685
글번호 153444
답변완료
시스템식 부탁드립니다.
항상 도움 주셔서 감사합니다.
아래 조건에 맞는 시스템식 부탁드립니다.
요청수식1 :
종목 : 해외선물(오일)
차트 : 틱차트 100
매수 : MACD가 0선 크로스 업 매수진입
단, 매수는 바로 이전 진입이 매도 일때만 가능
포지션 진입후 10틱 하락하면 추가 매수
매도 : MACD가 0선 크로스 다운 매도진입
단, 매도는 바로 이전 진입이 매수 일때만 가능
포지션 진입후 10틱 상승하면 추가 매도
즉 이전 포지션이 매수면 그 다음은 매도, 이전 포지션이 매도면 그 다음은 매수
이런식으로 교차했으면 합니다.
단, 그 다음날 (익일 7시)은 다시 초기화 했으면 합니다.
예)
var : MACDV(0) ;
# 매일 장 시작전 진입조건 초기화
if marketpositon == 0 and crossup(MACDv,0) then {
# 여기조건에 바로이전 포지션이 매도 인경우에만 매수진입 가능
buy("b");
}
# 매수진입 후 진입가격에서 10틱하락하면 추가 1계약 매수
if marketpositon == 0 and crossdown(MACDv,0) then {
# 여기조건에 바로이전 포지션이 매수 인경우에만 매도진입 가능
sell("s");
}
# 매도진입 후 진입가격에서 10틱상승하면 추가 1계약 매도
요청수식2)
종목 : 해외선물(오일)
차트 : 틱차트 100
매수 : MACD가 0선 크로스 업 매수진입
단, 아침 7시 장시작부터 새벽 6시 장 끝날때까지 매수는 1번만 진입
그리고 진입가격에서 10틱 하락하면 추가 매수
매도 : MACD가 0선 크로스 다운 매도진입
단, 아침 7시 장시작부터 새벽 6시 장 끝날때까지 매도는 1번만 진입
그리고 진입가격에서 10틱 상승하면 추가 매도
단, 그 다음날 (익일 7시)은 다시 초기화 했으면 합니다.
예)
var : MACDV(0) ;
# 매일 장 시작전 진입횟수 초기화
# 진입횟수는 변경할수 있도록 변수화 부탁드립니다.
if marketpositon == 0 and crossup(MACDv,0) then {
buy("b");
}
# 매수 진입후 10틱 하락하면 추가 매수
if marketpositon == 0 and crossdown(MACDv,0) then {
sell("s");
}
# 매도 진입후 10틱 하락하면 추가 매도
요청질문)
input : StartTime(070000),EndTime(010000);
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
제가 초보라 위 수식에 대해 이해가 안됩니다.
죄송하지만 수식에 대한 설명좀 부탁드립니다.
1. sdate != sdate[1] 무슨 뜻인가요?
2. sdate == sdate[1] 무슨 뜻인가요?
3. stime >= StartTime and stime[1] < StartTime 무슨 뜻인가요?
4. 전체적으로 무슨 뜻인가요?
시스템식 부탁드립니다.
감사합니다.
2021-11-06
708
글번호 153443
답변완료
지표식좀 요청 드립니다.
* 항상 많은 도움에 고맙습니다.
* 신고가 갱신 지표 4개 좀 부탁 드립니다.
당일 시작봉 부터 COUNT 시작(총봉갯수)
1. var1 = 고가갱신 봉수 / 총 봉갯수
# 고가갱신 봉수 = 고가 가 갱신된 봉의 횟수
# 총봉수 = 당일 시가 부터 직전(C[1]) 봉 까지 갯수
2.var2 = 신고가갱신누적봉수 합 / 총봉수
#신고가갱신누적봉수 =
당일시가보다 크고 전고가 갱신 봉 부터 신고가 갱신봉까지 봉갯수 누적
즉 신고가 갱신시 마다 당일 시가 보다 큰 봉수만 더해서 합산
3. var3 = 저가갱신 봉수 / 총 봉수
#저가갱신 봉수 = 저가 가 갱신된 봉의 횟수
4. var4 = 신저가 갱신누적봉수 합 / 총봉수
#신저가갱신봉수 =
당일시가보다 작고 전저가 갱신 봉 부터 신저가 갱신봉 까지 봉갯수 합
* 매번 많은 도움에 고맙습니다. 수고하십시요.
2021-11-09
957
글번호 153442
답변완료
수식 문의 드립니다.
관리자님,
Volume power(5) , volume Ratio(20) , Volume OSC(10, 20, 9)를 programe에 적용코저 합니다.
Volume power(5) 적용식을 알려 주십시오
Volume Ratio(20) 적용식을 알려 주십시오
Volume OSC (10,20,9) 적용식을 알려 주십시오
2021-11-08
1194
글번호 153441
회원 님에 의해서 삭제되었습니다.
2021-11-06
0
글번호 153440
답변완료
문의드립니다
추가 문의드립니다.
아래 내용에 대한 수식 부탁드립니다.
감사합니다.
input : StartTime(233000),EndTime(030000);
var : 전환선(0),단기추세선(0);
var1 = 가중이동평균(5);
전환선 = (highest(H,1)+lowest(L,1))/2;
단기추세선 = (highest(H,26)+lowest(L,26))/2;
익절 및 손절은 스위칭으로 합니다.
1.
전환선(0)이 가중이동평균(5)을 크로스해서 돌파할 때 즉시 매수,
가중이동평균(5)이 전환선(0)을 크로스 해서 돌파할 때 즉시 매도로 스위칭 되게 해주세요.
2.
전환선(0)이 단기추세선을 크로스 해서 돌파할 때 즉시 매수,
단기추세선이 전환선(0)을 크로스해서 돌파할 때 즉시 매도로 스위칭 되게 해주세요.
3.
1번과 2번이 동시에 충족할 때만 즉시 매수, 매도 진입하며 스위칭 되게 해주세요.
4. 스위칭 외에 익절 100틱, 손절 50틱으로 할시 수식도 추가 부탁드립니다.
2021-11-08
1108
글번호 153439