커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8126
글번호 230811
답변완료
kodex200 ETF 거래
선물에 적용되는 시스템을 kodex200 etf를 거래하면
수식 수정 없이 그대로 사용해도 되나요?
아니면 sell 조건문은 없애주어야 하나요?
항상 감사합니다.
2017-03-12
189
글번호 107697
답변완료
시스템 문의
안녕하세요.
조건ㄱ이면 매도진입
기간A 동안의 매도청산 수익 누적값을a라고 하고 기간B 동안의 매도청산 수익 누적값을 b라고 할 때
a와 b를 평균하고 그 값을 c로
b값이 c보다 작으면
조건ㄱ 중단하고 조건ㄴ이면 매도진입
이렇게 가능할까요 부탁드립니다
2017-03-12
157
글번호 107696
카카 님에 의해서 삭제되었습니다.
2017-03-11
22
글번호 107695
답변완료
문의드립니다.
관리자님 안녕하세요??
총 4가지 문의드립니다.
1.n분봉상 전일시가대비 고가의 평균값 선을 차트에 표현
고가의 평균값=[{(전일첫째봉고가-전일시가)+(전일두번째봉고가-전일시가))+(전일셋째봉고가-전일시가).....+(전일마지막봉고가-전일시가)}/ 전일n분봉의갯수] + 전일시가
2.n분봉상 전일시가대비 종가의 평균값 선을 차트에 표현
종가의 평균값=[{(전일첫째봉종가-전일시가)+(전일두번째봉종가-전일시가))+(전일셋째봉종가-전일시가).....+(전일마지막봉종가-전일시가)}/ 전일n분봉의갯수] + 전일시가
3.n분봉상 전일시가대비 저가의 평균값 선을 차트에 표현
저가의 평균값=[{(전일첫째봉저가-전일시가)+(전일두번째봉저가-전일시가))+(전일셋째봉저가-전일시가)......+(전일마지막봉저가-전일시가)}/ 전일n분봉의갯수] + 전일시가
4.위의 전일시가대비 고가,종가,저가의 평균값을 가지고 이격도를 만들어주시고 이격도의 조건은 기준선을 0으로 만들어 주시고 항상 당일 이격도의 시작점이 기준선인 0에서부터 시작하도록 만들어 주십시요. 감사합니다.
2017-03-11
194
글번호 107694
답변완료
수식부탁합니다
아래수식에서
#,양봉거래량합이 음봉거래량합을 돌파시 소리발생~
*반대로
#,음봉거래량합이 양봉거래량합을 돌파시 소리발생~
수식 부탁드립니다.
- 감사합니다 -
input : n(1);
var : cnt(0),sum1(0),sum2(0);
Array : V1[10](0),V2[10](0);
if bdate != Bdate[1] Then{
V1[0] = 0;
V2[0] = 0;
for cnt = 1 to 9{
V1[cnt] = V1[cnt-1][1];
V2[cnt] = V2[cnt-1][1];
}
}
if C > O then
V1[0] = V1[0] + v;
if C < O Then
V2[0] = V2[0] + v;
if V1[n] > 0 and V2[n] > 0 then{
sum1 = 0;
sum2 = 0;
for cnt = 0 to N-1{
sum1 = sum1 + V1[cnt];
sum2 = sum2 + V2[cnt];
}
plot1(sum1,"n일간 양봉거래량");
plot2(sum2,"n일간 음봉거래량");
}
2017-03-11
205
글번호 107693
답변완료
수식 부탁 드립니다
input : P1(100),P2(10),sto1(30),sto2(5),sto3(2);
var : T1(0),entry(0),Tcond(false),HH(0),LL(0),L1(0);
var : stok(0),stod(0);
HH = highest(H,P1);
LL = lowest(L,P1);
L1 = lowest(L,P2);
stok = StochasticsK(sto1,sto2);
stod = StochasticsD(sto1,sto2,sto3);
if MarketPosition == 0 and
L1 < HH-(HH-LL)*0.5 and L1>LL and
crossup(stok, stod) Then
buy("매수",OnClose,def,2);
L1>LL 를 추가했는데 맞는 수식인지 검증좀 해 주세요^^
10봉 저점이 100봉 전저점 윗구간에서 신호가 나오게 하고싶습니다 10봉 저점이 100봉 저점을 깨면
신호가 안나오게 하고 싶은데,,부탁합니다
// 청산신호
50틱 수익후 30 틱은 수익 지킬수 있게 청산
70틱 이상 수익이면 매수 포지션이면 23.6 라인하방돌파면 청산
70틱 이상 수익이면 매도 포지션이면 76.4 라인상방돌파면 청산
// 손절신호
매수신호후 100봉 저점 무너지면 손절
매수가 대비 30틱 손실이면 손절
수식 부탁 드립니다 ^^
2017-03-11
178
글번호 107692
답변완료
분할청산_ 시스템 재문의 드립니다
위 그림과 같이 분할 청산 하고 싶습니다
항상 수고 많으십니다
수식이 잘되지 않아 재 문의 드립니다
신호에서 처음 3계약 진입후 분할청산이 되지않습니다
예) 10틱 20틱 30틱 이런식 인데
1차청산만 되고 그후 신호 발생 하여 다시 3계약 진입 합니다
손절같은경우
그리고 1차청산 하고 진입가에 +1틱에 오면 손절도 안되는거 같아요
그림 첨부 하였습니다 확인 부탁합니다
-----------------------------
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 본 수식에서 분활청산 문의 드립니다
> 안녕하세요
예스스탁입니다.
Inputs: FastLen(4), MedLen(9), SlowLen(18);
Variables: FastAvg(0), MedAvg(0), SlowAvg(0);
FastAvg = MA(Close, FastLen);
MedAvg = MA(Close, MedLen);
SlowAvg = MA(Close, SlowLen);
If (FastAvg[1] < MedAvg[1] OR MedAvg[1] < SlowAvg[1]) AND (FastAvg > MedAvg AND MedAvg > SlowAvg) Then
Buy ("매수",OnClose,def,3);
if MarketPosition == 1 then{
exitlong("bp1",atlimit,EntryPrice+PriceScale*10,"",1,1);
exitlong("bp2",atlimit,EntryPrice+PriceScale*20,"",1,1);
exitlong("bp3",atlimit,EntryPrice+PriceScale*30,"",1,1);
if CurrentContracts < MaxContracts Then
ExitLong("bl",AtStop,EntryPrice+PriceScale*1);
}
2017-03-11
200
글번호 107691
답변완료
오류메세지 수정 부탁드립니다.
수고 많으십니다.
아래 수식의 오류메세지 수정을 못하겠는데 부탁 좀 드리겠습니다.
감사합니다.
//==========================================
// Indicator Name : Min Change Rate ZigZag Wave
// Version : 1.1
// Written by : yahoosir
// Blog : http://yahoosir.blog.me
//==========================================
Input:Rate(5),ClsPxUseBit(0),waveLineSize(3),displPRC(1);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),TL1(0),Text1(0),lastVertex(""),procBit("");
Array:PK[10,4](0),VL[10,4](0); // 1:Price,2:BarNumber,3:Date,4:Time
//==========================================
HH = IFF(ClsPxUseBit = 1,C,H);
LL = IFF(ClsPxUseBit = 1,C,L);
If CurrentBar = 1 Then Begin
PK[1,1] = HH;
PK[1,2] = 0;
PK[1,3] = Date;
PK[1,4] = Time;
VL[1,1] = LL;
VL[1,2] = 0;
VL[1,3] = Date;
VL[1,4] = Time;
End;
If CurrentBar > 0 Then Begin
hiBar = hiBar + 1;
loBar = loBar + 1;
End;
If HH[hiBar] < HH Then hiBar = 0;
If LL[loBar] > LL Then loBar = 0;
Condition1 = VL[1,1] * (1 + (Rate/100)) <= HH and hiBar = 0;
Condition2 = PK[1,1] * (1 - (Rate/100)) >= LL and loBar = 0;
procBit = "";
If Condition1 and Condition2 Then Begin
If lastVertex = "Valley" Then Begin
If PK[1,1] < HH and VL[1,1] > LL Then procBit = "Peak"
Else If VL[1,1] > LL Then procBit = "Valley"
Else procBit = "Peak";
End
Else Begin
If PK[1,1] < HH and VL[1,1] > LL Then procBit = "Valley"
Else If PK[1,1] < HH Then procBit = "Peak"
Else procBit = "Valley";
End;
End
Else If Condition1 Then procBit = "Peak"
Else If Condition2 Then procBit = "Valley";
//==========================================
If procBit = "Peak" Then Begin
If lastVertex = "Valley" Then Begin
For j = 10 DownTo 2 Begin
For jj = 1 To 4 Begin
PK[j,jj] = PK[j-1,jj];
End ;
End;
PK[1,1] = HH[hiBar];
PK[1,2] = BarNumber - hiBar;
PK[1,3] = Date[hiBar];
PK[1,4] = Time[hiBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]);
If displPRC = 1 Then Begin
Text1 = Text_New(PK[1,3],PK[1,4],PK[1,1],NumToStr(PK[1,1],2));
Text_SetStyle(Text1, 2, 1);
Text_SetColor(Text1,black);
End ;
TL_SetSize(TL1,waveLineSize);
TL_SetColor(TL1,Red);
End
Else If PK[1,1] < HH[hiBar] Then Begin
PK[1,1] = HH[hiBar];
PK[1,2] = BarNumber - hiBar;
PK[1,3] = Date[hiBar];
PK[1,4] = Time[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]);
If displPRC = 1 Then Begin
Text_SetLocation(Text1,PK[1,3],PK[1,4],PK[1,1]);
Text_SetString(Text1,NumToStr(PK[1,1],2));
End;
End ;
lastVertex = "Peak";
End ;
//==========================================
If procBit = "Valley" Then Begin
If lastVertex = "Peak" then Begin
For j = 10 DownTo 2 Begin
For jj = 1 To 4 Begin
VL[j,jj] = VL[j-1,jj];
End;
End;
VL[1,1] = LL[loBar];
VL[1,2] = BarNumber - loBar;
VL[1,3] = Date[loBar];
VL[1,4] = Time[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]);
If displPRC = 1 Then Begin
Text1 = Text_New(VL[1,3],VL[1,4],VL[1,1],NumToStr(VL[1,1],2));
Text_SetStyle(Text1, 2, 0);
Text_SetColor(Text1,black);
End ;
TL_SetSize(TL1,waveLineSize);
TL_SetColor(TL1,Blue);
End
Else If VL[1,1] > LL[loBar] then Begin
VL[1,1] = LL[loBar];
VL[1,2] = BarNumber - loBar;
VL[1,3] = Date[loBar];
VL[1,4] = Time[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]);
If displPRC = 1 Then Begin
Text_SetLocation(Text1,VL[1,3],VL[1,4],VL[1,1]);
Text_SetString(Text1,NumToStr(VL[1,1],2));
End ;
End ;
lastVertex = "Valley";
End ;
2017-03-11
285
글번호 107690
답변완료
출력 함수에서 문의 드립니다.
첨부파일 두번째에 수식 파일을 첨부했습니다. 지표 수식 파일.이 첨부가 안되서.
그림으로 첨부했습니다.
csv 확장자 파일도 첨부 안되네요..
이렇게 지표로 만들어서
전략 실행차트에서 골드 1분 데이터를 검증해서 파일로 저장해 보면 ( 해외 선물 입니다. ) 현대선물
2017-03-06 23:57
2017-03-06 23:58
2017-03-06 23:59
2017-03-07 : : 0
2017-03-07 : 1:00
2017-03-07 : 2:00
2017-03-07 : 3:00
2017-03-07 : 4:00
2017-03-07 : 5:00
2017-03-07 : 6:00
2017-03-07 : 7:00
이렇게 0 시 되는 부분에 무조건 시간 데이터가 깨집니다.
그리고.
2017-03-10 13:12 1201.7
2017-03-10 13:12 1201.8
2017-03-10 13:12 1201.9
2017-03-10 13:12 1201.8
2017-03-10 13:12 1201.9
2017-03-10 13:12 1201.8
2017-03-10 13:12 1201.9
2017-03-10 13:12 1201.8
2017-03-10 13:12 1201.9
2017-03-10 13:12 1201.8
2017-03-10 13:12 1201.9
2017-03-10 13:12 1201.8
2017-03-10 13:12 1201.9
이렇게 같은 시간대로 찍히는 것도 있네요.
파일을 올려 드릴텐데.
직접해보셔도 아마 그렇게 동일하게 나올것 같습니다.
수정 요청을 드려도 되는지요?
감사합니다.
2017-03-11
309
글번호 107689