커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4631
글번호 230811
답변완료
47620재문의 차트에 아무것도 나타나지 않습니다.
다시한번 검토바랍니다.
차트에 아무것도 나타나지 않습니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 시스템 문의드립니다.
>
안녕하세요
예스스탁입니다.
1.
INPUTS: LENGTH1(5),LENGTH2(20),LENGTH3(120),LENGTH4(180);
VARS : DEMA1(0),DEMA2(0),DEMA3(0),DEMA4(0),Bcond(false),Scond(false);
var1= EMA(C,LENGTH1);
value1= EMA(EMa(C,LENGTH1),LENGTH1);
var2= EMA(C,LENGTH2);
value2= EMA(EMa(C,LENGTH2),LENGTH2);
var3= EMA(C,LENGTH3);
value3= EMA(EMa(C,LENGTH3),LENGTH3);
var4= EMA(C,LENGTH4);
value4= EMA(EMa(C,LENGTH4),LENGTH4);
DEMA1 = var1 * 2 - value1;
DEMA2 = var2 * 2 - value2;
DEMA3 = var3 * 2 - value3;
DEMA4 = var3 * 2 - value3;
Bcond = DEMA1 > DEMA2 and DEMA2 > DEMA3 and DEMA3 > DEMA4;
Scond = DEMA1 < DEMA2 and DEMA2 < DEMA3 and DEMA3 < DEMA4;
if Bcond == true and bcond[1] == false Then
buy();
if MarketPosition == 1 and CrossDown(DEMA1,DEMA3) Then
ExitLong();
if Scond == true and Scond[1] == false Then
sell();
if MarketPosition == -1 and CrossUp(DEMA1,DEMA3) Then
ExitShort();
2
INPUTS: LENGTH1(5),LENGTH2(20),LENGTH3(120),LENGTH4(180);
VARS : DEMA1(0),DEMA2(0),DEMA3(0),DEMA4(0),Bcond(false),Scond(false);
var1= EMA(C,LENGTH1);
value1= EMA(EMa(C,LENGTH1),LENGTH1);
var2= EMA(C,LENGTH2);
value2= EMA(EMa(C,LENGTH2),LENGTH2);
var3= EMA(C,LENGTH3);
value3= EMA(EMa(C,LENGTH3),LENGTH3);
var4= EMA(C,LENGTH4);
value4= EMA(EMa(C,LENGTH4),LENGTH4);
DEMA1 = var1 * 2 - value1;
DEMA2 = var2 * 2 - value2;
DEMA3 = var3 * 2 - value3;
DEMA4 = var3 * 2 - value3;
Bcond = DEMA1 > DEMA2 and DEMA2 > DEMA3 and DEMA3 > DEMA4;
Scond = DEMA1 < DEMA2 and DEMA2 < DEMA3 and DEMA3 < DEMA4;
if Bcond == true and bcond[1] == false Then
buy();
if Scond == true and Scond[1] == false Then
sell();
즐거운 하루되세요
> 마르시아 님이 쓴 글입니다.
> 제목 : 시스템 문의드립니다.
> 안녕하세요? 수고하십니다.
DEMA3개선에 1개선을 더 추가해서 신호발생을 하고자합니다.
DEMA 1번(5)일선
2번(20)일선
3번(120일선
4번(180일선)
1.매수신호: 1번,2번,3번,4번이평 정배열시 매수신호 발생
매수신호청산:1번(5)이평이 3번(120)이평을 데드크로스하면 매수청산
매도신호: 1번,2번,3번,4번 이평 역배열시 매도신호 발생
매도신호청산:1번(5)이평이 3번(120)이평을 골든크로스 하면 매도청산
2.매수신호: 1번,2번,3번,4번이평 정배열시 매수신호 발생
매도신호: 1번,2번,3번,4번이평 역배열시 매도신호 발생
시스템 매매 설정에서 변수를 편집할수있게해주세요.
2016-05-10
98
글번호 97911
답변완료
지표 수식저장
pc 포멧시 현수식을 그대로 사용하고자 합니다
타 증권사 hts같이 서버에 저장하고 다시 불러오기가 가능한가요
아니면 다른 방법이 있으면 알려주세요
감사합니다
2016-05-10
118
글번호 97898
답변완료
data 연계
* 항상 친철한 답변 고맙습니다.
* 요청 사항 : data를 사용한 종합지수 연계 시스템 방법좀 알려 주십시요.
* 해설 : input : sto1(10),sto2(5),short(12),long(26);
var : stok(0),MACDV(0);
stok = StochasticsK(sto1,sto2);
MACDV = MACD(short,long);
if stok > 50 and crossup(MACDV,0) Then
buy();
상기 수식을 사용할때 종합주가지수 코스피가 5포인트 이상오를때만 적용하고 싶습니다.
즉
코스피는 5포인트 이상 코스탁은 2포인트 이상(동시만족) 상승 할때 상기 매수 랭귀지 실행
* data 방법을 몰라 매번 부탁 드립니다. 고맙습니다.
2016-05-10
91
글번호 97895
답변완료
47577재문의합니다.
47577재문의 합니다.
아래의 지표 4개 중에
1. 2개 만족시 매수매도 신호 발생요건에서
1개 캔들에서 2개의 매수매도 신호가 동시에 골든크로스나 데드크로스가 발생되어야만
매수매도 신호가 나오는데요
매수의경우 1개 지표가 골든크로스가 발생하고 다음캔들 그다음캔들 현재봉캔들
까지 합해서 3개봉캔들 사이에서 또 다른 지표가 골든크로스가 나타나면
매수 신호가 나오게 해주세요.
매도 신호는 그 반대로 해주시고요.
2. 3개 보조지표가 3개 봉캔들 사이에서 지표 3개가 골든크로스가되면 매수 신호발생
3. 4개 보조지표가 3개 봉캔들 사이에서 지표 4개가 골든크로스가되면 매수 신호발생
매도는 반대로 해주시고요
위의 3가지식 부탁드립니다.
시스템설정에서 변수 편집할 수 있게해주시고요.
감사합니다.
1.
var1 = StochasticsK(12,5);
var2 = StochasticsD(12,5,5);
var3 = MACD(12,26);
var4 = ema(var3,9);
var5 = RSI(14);
var6 = CCI(9);
var7 = ema(var6,10);
value1 = 0;
if crossup(var1,var2) Then
value1 = value1+1;
if crossup(var3,var4) Then
value1 = value1+1;
if crossup(var5,30) Then
value1 = value1+1;
if crossup(var6,var7) Then
value1 = value1+1;
value2 = 0;
if CrossDown(var1,var2) Then
value2 = value2+1;
if CrossDown(var3,var4) Then
value2 = value2+1;
if CrossDown(var5,70) Then
value2 = value2+1;
if CrossDown(var6,var7) Then
value2 = value2+1;
if value1 == 2 Then
buy();
if value2 == 2 Then
sell();
2
var1 = StochasticsK(12,5);
var2 = StochasticsD(12,5,5);
var3 = MACD(12,26);
var4 = ema(var3,9);
var5 = RSI(14);
var6 = CCI(9);
var7 = ema(var6,10);
value1 = 0;
if crossup(var1,var2) Then
value1 = value1+1;
if crossup(var3,var4) Then
value1 = value1+1;
if crossup(var5,30) Then
value1 = value1+1;
if crossup(var6,var7) Then
value1 = value1+1;
value2 = 0;
if CrossDown(var1,var2) Then
value2 = value2+1;
if CrossDown(var3,var4) Then
value2 = value2+1;
if CrossDown(var5,70) Then
value2 = value2+1;
if CrossDown(var6,var7) Then
value2 = value2+1;
if value1 == 3 Then
buy();
if value2 == 3 Then
sell();
3
var1 = StochasticsK(12,5);
var2 = StochasticsD(12,5,5);
var3 = MACD(12,26);
var4 = ema(var3,9);
var5 = RSI(14);
var6 = CCI(9);
var7 = ema(var6,10);
value1 = 0;
if crossup(var1,var2) Then
value1 = value1+1;
if crossup(var3,var4) Then
value1 = value1+1;
if crossup(var5,30) Then
value1 = value1+1;
if crossup(var6,var7) Then
value1 = value1+1;
value2 = 0;
if CrossDown(var1,var2) Then
value2 = value2+1;
if CrossDown(var3,var4) Then
value2 = value2+1;
if CrossDown(var5,70) Then
value2 = value2+1;
if CrossDown(var6,var7) Then
value2 = value2+1;
if value1 == 4 Then
buy();
if value2 == 4 Then
sell();
2016-05-10
99
글번호 97894
답변완료
합성 시스템
귀사에서 제공하는 합성 시스템에 있는 cci-macd-dmi-stochastics
여기서 나오는 신호대로 진입하되 진입가의
상하 20틱사이에는 재진입을 안하고 손절이 날경우에는
손절남과 동시에 역포시션으로 진입하는 수식 부탁드립니다.
그리고 거래시간을 정할수 있는 수식도 부탁드립니다.
2016-05-10
128
글번호 97892
답변완료
부탁 드립니다.
42738번의 재질문 입니다.
답변 수식(2번 완성봉시)을 실행 해보면
유로화에서는 지표값이 0에서 2사이에서 변동하나
오일에서는 지표값이 0 에서 40 근처까지 변동 하여 정상적이지 않아 보입니다.
어떻게 하여야 하는 지요?
미리 감사와 경배 올립니다.
답변된 수식)
Input: Atime(10),p1(5);
Var: Cnt(0),HH(0),LL(0);
var : count(0),sum1(0),mav1(0),sum2(0),mav2(0),TF(0);
Array: tp[100](0), upv[100](0),dnv[100](0);
Array : OO[100](0),CC[100](0);
TF = TimeToMinutes(stime)%Atime;
if dayindex() == 0 or (TF < TF[1] and stime > stime[1]) Then{
OO[0] = O;
for cnt = 1 to 99{
OO[cnt] = OO[cnt-1][1];
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
if CC[P1+1] > 0 and dayindex() == 0 or (TF < TF[1] and stime > stime[1]) Then{
sum1 = 0;
sum2 = 0;
for count = 0 to P1-1{
sum1 = sum1+CC[count+1];
sum2 = sum2+CC[count+2];
}
mav1 = sum1/P1;
mav2 = sum2/P1;
If (CC[1] < mav1 and CC[2] >= mav2) Then
{
tp[0] = (OO[1] + CC[1]) / 2;
For Cnt = 1 To 99
{
tp[Cnt] = tp[Cnt -1][1];
}
}
for cnt = 0 to 99
{
if tp[cnt] >= C Then
upv[cnt] = tp[cnt];
Else
upv[cnt] = 2;
if tp[cnt] <= C Then
dnv[cnt] = tp[cnt];
Else
dnv[cnt] = 0;
}
HH = 2;
LL = 0;
for cnt = 0 to 99
{
if upv[cnt] < HH Then
HH = upv[cnt];
if dnv[cnt] > LL Then
LL = dnv[cnt];
}
plot1(HH,"상승변곡");
plot2(LL,"하락변곡");
}
2016-05-10
167
글번호 97885
답변완료
타주기 적용 시스템변경
항상 감사드립니다
아래시스템식을 data1,data2로 나누어 타주기챠트에 적용할수 잇도록 수정해주시기 바랍니다.
진입 : 주챠트신호(1분봉) and 타주기 챠트(20틱)
청산 : 타주기챠트
####################
###신거래선 기준 ###
####################
if V == highest(V,240) Then
var60 = (C+H+L)/3; #240거래선#
######################
### 거래선_60 ########
######################
var : upv1(0),upv2(0),upv3(0);
var : dnv1(0),dnv2(0),dnv3(0);
var : upv11(0),upv12(0),upv13(0);
var : dnv11(0),dnv12(0),dnv13(0);
var : upv21(0),upv22(0),upv23(0);
var : dnv21(0),dnv22(0),dnv23(0);
If V== highest(V,60) then{
Var71 = (C+H+L)/3;
var72 = var71[1];
if var71 > var72 Then{
upv1 = var71;
upv2 = upv1[1];
upv3 = upv2[1];
if upv1 > upv2 and upv2 > upv3 Then
var70 = 1;
}
if var71 < var72 Then{
dnv1 = var71;
dnv2 = dnv1[1];
dnv3 = dnv2[1];
if dnv1 < dnv2 and dnv2 < dnv3 Then
var70 = -1;
}
}
###################
###### aroon ######
###################
input : Period10(20);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Lowval= Lowest(Low, Period10+1);
Highval = Highest(High, Period10+1);
For counter= 0 To Period10 {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period10-DownVel)/Period10;
UpAroon = 100*(Period10-UpVel)/Period10;
#####################################
##### 션샤인 보조_2호(macd_sar) #####
#####################################
input : short1(12),long1(26),signal1(9),af(0.02),maxaf(0.2);
var : XX(0),YY(0);
var7 = MACD(short1,long1);#MACD
var8 = ema(var7,Signal1);#MACD sig
var9 = sar(af,maxaf); #파라볼릭
if var7 > var8 Then{
if C > var9 Then
XX = 6;
Else
XX = 2;
}
Else{
if var9 > C Then
XX = -6;
Else
XX = -2;
}
if var7 > 0 Then
YY = 10;
Else
YY = -10;
if (XX+YY)>0 Then
var12 = 1; # buy();
if (XX+YY)<0 Then
var12 = -1; # sell();
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0);
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then # 현지시간_뉴욕 17:00 장시작 #
Entrycnt = 0;
if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then
Entrycnt = Entrycnt+1;
if (stime >= 170000 or stime < 143000) Then{ # 현지시간_뉴욕 17:00 장시작~익일 14:30 장종료 #
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) and #동일방향 재진입금지#
매수조건 Then
buy("B_30");
if ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) and #동일방향 재진입금지#
매도조건 Then
sell("S_30");
}
###############################
##### 청산 시스템 #####
###############################
if MarketPosition == 1 and 타주기매도조건 then
exitlong("eB_타주기");
if MarketPosition == -1 and 타주기매수조건 Then
ExitShort("eS_타주기");
2016-05-10
115
글번호 97883
질갱이 님에 의해서 삭제되었습니다.
2016-05-10
10
글번호 97880
답변완료
참조 데이터 사용하고싶습니다.
1.외국인 선물 순매수수량이 1000이상이고
2.금융투자 순매수금액이 개인 순매수금액보다 크면
3.가격이 20일선 돌파시 매수
적용방법(차트 셋팅방법) 부탁드립니다^^
2016-05-10
101
글번호 97879