커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7668
글번호 230811
답변완료
죄송합니다..ㅠㅠ한번만더..ㅠㅠ
첫매수는 보유금액의 1/8를 볼린저밴드 하단선을 상향돌파할때 매수
청산은 볼린저밴드 상단선 닿을때
추가매수는
평균가에서 -10%될때마다 or 다시 하단선밑으로 떨어졌다가 상향돌파할때
추가매수금액은
첫추가매수는 1/8
두번째추가매수는 2/8
세번째추가매수는 4/8
2012-03-29
370
글번호 49507
답변완료
문의드립니다....
아래는 어떤 분과 예스스탁이 풀이한 중심가격이라는 것입니다...
좋은 방법인것 같아 쓰고 싶지만 잘 알수가 없어서요...ㅠㅠㅠ
지표로 쓸수 있게끔 해주실수 있나요?...
항상 수고해주시는 마음...감사드립니다...ㅎㅎ
--------------------------------------
안녕하세요
예스스탁입니다.
첨부된 파일을 yeslang 폴더안의 functions 폴더에
다운 하신 후 사용하시면 됩니다.
올려주신 수식내 중심가격이 배열변수입니다.
외부변수로 각배열의 값을 지정할 수 있게 작성했습니다.
아래와 같이 사용하시면 됩니다.
plot1(중심가격(0));
plot2(중심가격(1));
plot3(중심가격(2));
즐거운 하루되세요
> 파문일기 님이 쓴 글입니다.
> 제목 : 중심가격
> 다음의 중심가격 지표식을 사용자함수로 만들어 사용하고 싶습니다
감사합니다
Var:j(0),행번호(0),단위가격(0),추가행(0),알파벳(0),최대개수(0),총개수(0),봉개수(0),
추정거래량(0),cnt(0),중앙가격(0),최대행(0),중심행(0),상위개수(0),
하위개수(0),시초범위상(0),시초범위하(0),가치영역상한(0),가치영역하한(0),누적개수(0),
위꼬리상한(0),위꼬리하한(0),아래꼬리상한(0),아래꼬리하한(0);
Array:가격대[100](0),거래량[100](0),개수[100](0),프로파일[100](0),
가치영역상[10](0),가치영역하[10](0);
단위가격 = 2 * _TickValue();
if DayIndex()==0 then { //날짜 변경시점에
for j = 8 downto 0 {
중심가격[j+1] = 중심가격[j]; //전일 중심가격과
가치영역상[j+1] = 가치영역상[j]; //전일 가치영역 관리
가치영역하[j+1] = 가치영역하[j];
}
for 행번호 = 0 to 99 { //0값으로 초기화
거래량[행번호] = 0;
개수[행번호] = 0;
프로파일[행번호] = 0;
}
최대개수 = 0;
총개수 = 0;
시초범위상 = 0; //장 개시 후 1시간내의 가격범위
시초범위하 = 0;
가격대[0] = H + 단위가격 * 20; //20호가의 여유를 둠
for 행번호 = 0 to 98 {
가격대[행번호+1] = 가격대[행번호] - 단위가격; //가격대 배열에 가격 대입
}
}
if 가격대[0] <= H then { //고가가 가격대 배열 이상이 되면
추가행 = ceiling((H-가격대[0])/단위가격) + 5; //고가에 5호가 여유를 더 두어 재설정
for 행번호 = (99 - 추가행) downto 0 {
가격대[행번호+추가행] = 가격대[행번호]; //추가행만큼 뒤로 옮긴다
거래량[행번호+추가행] = 거래량[행번호];
개수[행번호+추가행] = 개수[행번호];
프로파일[행번호+추가행] = 프로파일[행번호];
}
가격대[0] = 가격대[0] + 단위가격 * 추가행; //추가된 행에 가격 재설정
for 행번호 = 0 to (추가행-1) {
가격대[행번호+1] = 가격대[행번호] - 단위가격;
}
for 행번호 = 0 to 추가행 { //추가된 행의 나머지 항목은
거래량[행번호] = 0; //0값으로 초기화
개수[행번호] = 0;
프로파일[행번호] = 0;
}
중심행 = 중심행 + 추가행; //중심가격의 행번호도 뒤로 밀린다
}
알파벳 = DayIndex() + 1; //알파벳 대신 숫자 사용
중앙가격 = (DayHigh()+Daylow())/2; //전체가격폭의 중앙
if DayIndex() == 60/BarInterval-1 then { //장 개시 후 1시간내의 가격범위
시초범위상 = DayHigh();
시초범위하 = DayLow();
}
cnt = 0;
for 행번호 = 0 to 99 {
if L <= 가격대[행번호] and 가격대[행번호] <= H then { //현재 봉 가격대가 몇가격대에
cnt = cnt + 1; //걸쳐져 있는지 계산
}
}
추정거래량 = V/cnt; //가격대별 배분할 거래량
for 행번호 = 0 to 99 {
if L <= 가격대[행번호] and 가격대[행번호] <= H then {
거래량[행번호] = 거래량[행번호] + 추정거래량;
개수[행번호] = 개수[행번호] + 1;
프로파일[행번호] = 알파벳;
총개수 = 총개수 + 1;
if 최대개수 < 개수[행번호] then { //신규 최빈값 나왔을 때
최대개수 = 개수[행번호];
중심행 = 행번호;
}
else if 최대개수 == 개수[행번호] then { //최빈값과 동일하다면
if 거래량[중심행] < 거래량[행번호] then //거래량 많은 가격대를
중심행 = 행번호;
else if 거래량[중심행] == 거래량[행번호] and //거래량도 동일하면
abs(중앙가격-가격대[중심행]) > //전체가격폭 중앙에
abs(중앙가격-가격대[행번호]) then //가까운 가격으로
중심행 = 행번호;
}
}
}
//알파벳 개수가 가장 많은 가격
봉개수 = 0; //단봉, 쌍봉, 삼봉 등 패턴파악용
for 행번호 = 1 to 99 {
if 개수[행번호-1] < 개수[행번호] then { //개수가 올라가면
if 봉개수 == 0 then 봉개수 = 0.3; //x.3
else if 봉개수 == 1 then 봉개수 = 1.3;
else if 봉개수 == 2 then 봉개수 = 2.3;
else if 봉개수 == 3 then 봉개수 = 3.3;
else if 봉개수 == 4 then 봉개수 = 4.3;
}
if 최대개수 * 0.8 < 개수[행번호] then { //꼭지에 도달하면
if 봉개수 == 0.3 then 봉개수 = 0.7; //x.7
else if 봉개수 == 1.3 then 봉개수 = 1.7; //낮은 봉은 배제하려고
else if 봉개수 == 2.3 then 봉개수 = 2.7; //최대개수의 80% 수준으로 설정
else if 봉개수 == 3.3 then 봉개수 = 3.7;
else if 봉개수 == 4.3 then 봉개수 = 4.7;
}
if 개수[행번호-1] > 개수[행번호] then { //개수가 떨어지는데
if 봉개수 == 0.7 then 봉개수 = 1; //꼭지 찍고 내려오는 것은
else if 봉개수 == 1.7 then 봉개수 = 2; //1.0
else if 봉개수 == 2.7 then 봉개수 = 3;
else if 봉개수 == 3.7 then 봉개수 = 4;
else if 봉개수 == 4.7 then 봉개수 = 5;
else if 봉개수 == 0.3 then 봉개수 = 0; //꼭지 못찍고 내려오면
else if 봉개수 == 1.3 then 봉개수 = 1; //원위치
else if 봉개수 == 2.3 then 봉개수 = 2;
else if 봉개수 == 3.3 then 봉개수 = 3;
else if 봉개수 == 4.3 then 봉개수 = 4;
}
}
중심가격 = 가격대[중심행];
2012-03-29
565
글번호 49506
답변완료
전일 매매 참조 방법
수식 좀 부탁드립니다.
1. 어제 매매를 오늘 시스템 적용 시 참조가 가능한지요?
(예) 조건식 : 어제 매매가 2번 있었고, 매매손익의 합이 1P 이상인 경우의 표현
2. 현 포지션 진입 이후 최고가를 기록한 봉의 고가 및 저가 그리고 그 봉의 시간(time)
3. 직전 봉이 현재 포지션 진입 이후 가장 큰 양봉인 조건과 그 봉의 종가
4. 현재 포지션의 최고 이익 및 손실과 오늘 중 진입 순번(예: 3번째 진입)
5. 한가지 더.......선물 미결제 약정 데이타 이용이 가능한지요?
가능하다면 미결제약정의 증감 표현식
한꺼번에 너무 많은 질문을 드렸나요? ㅋ
감사합니다.
2012-03-29
355
글번호 49505
답변완료
수식부탁드립니다----------------
input : N(10),비율(0.004);
if highest(H,N)-lowest(L,N) <= C*(n*비율) Then{
var1 = highest(H,N);
var2 = lowest(L,N);
var3 = (var1 - var2)/2 + var2;
}
var3 가 5봉중 2봉이 하락하고
전봉포함 5봉중 3봉의 고가가 var1에 닿았고
현재봉 종가나 고가가 var1보다 낮으면 다음봉시가에 매도
항상수고하십니다-
수고스럽지만 부탁드립니다
2012-03-29
369
글번호 49500
답변완료
간단한 질문.
var : dw(0,data2) ;
dw = data2((c-o)/o*100);
data2 는 해외 시장이구요
값이 두번 정의되는 것을 막기위해 변수선언시 위와 같이 해주었는데도 두번 불리우네요.. 한번만 되게끔 해주세요.
2012-03-29
415
글번호 49499
답변완료
수식부탁드립니다---------------
input : N(10),비율(0.004);
if highest(H,N)-lowest(L,N) <= C*(n*비율) Then{
var1 = highest(H,N);
var2 = lowest(L,N);
}
plot1(var1);
plot2(var2);
현재봉이 장시작후 n봉이 안될때는 당일봉만 참고하게해주세요
수고하세요
2012-03-29
367
글번호 49498
rlaxoeh 님에 의해서 삭제되었습니다.
2012-03-29
0
글번호 49491
답변완료
수식부탁 드립니다
선물 호가잔량을 봉차트로 만들고 싶습니다.
상승이면 양봉 하락 음봉 3분봉과 300틱 기준으로 만들어 보고 싶습니다.
만든후에 호가잔량의 고 저 중심을 가로로 선으로 표시 하고 싶습니다.
수식 부탁 드릴께요
2012-03-29
385
글번호 49490
답변완료
변환 부탁드립니다.
안녕하세요
아래 로직을 YT로 변환 부탁드리겠습니다.
atrlen=50
len1=3
len2=2.2
len3=2.9
break=3
level=0.5
big=8
len=0.37
Var49 = highd(1)-lowd(1)
Var20 = slowk(5,3)
Var21 = slowd(5,3,3)
'-------------------------------------------------
' 고점 얻기
'-------------------------------------------------
If crossdn( Var20, Var21 ) Then
Var3 = Var1 '이전고점
Var4 = Var2 '이전고점바
Var2 = BarNum(1) '고점바
Var1 = hhv(1,high,Var2-var4) '고점
Var5 = ( Var1-var3 ) / ( Var2-var4 ) '기울기
Else
Var1 = Var1(1) '고점
Var2 = Var2(1) '고점바
Var3 = Var3(1) '이전고점
Var4 = Var4(1) '이전고점바
Var5 = Var5(1) '기울기
End If
If Var2-var4 > 0 Then
Var7 = Var5 * ( BarNum-var2 )+ Var1 '고점저항선
End If
'-------------------------------------------------
' 저점 얻기
'-------------------------------------------------
If crossup( Var20, Var21 ) Then
Var13 = Var11 '이전저점
Var14 = Var12 '이전저점바
Var12 = BarNum(1) '저점바
Var11 = llv(1,low,Var12-var14) 'low(1) '저점
Var15 = ( Var11-var13 ) / ( Var12-var14 ) '기울기
Else
Var11 = Var11(1) '저점
Var12 = Var12(1) '저점바
Var13 = Var13(1) '이전저점
Var14 = Var14(1) '이전저점바
Var15 = Var15(1) '기울기
End If
If Var12-var14 > 0 Then
Var17 = Var15 * ( BarNum-var12 )+ Var11 '저점지지선
End If
'-------------------------------------------------
' 매매
'-------------------------------------------------
Var47 = macdsignal(close,12,26,9)
Var48 = mov(Var47,5,s)
If Var7 > 0 Then
If crossup(close, Var7) Then '추세선가격을 상향돌파하면
If close >= opend+var49*len Then
If Var48 >= Var48(1) Then
If close > mov(close,20,s) Then
buy("")
End If
End If
End If
End If
End If
Var62=high-low
Var63=mov(Var62,atrlen,s)
If position=1 Then
Var50 = HHV(1,High,BarnumsinceEntry +1)
Call exitlong("매수추적",Atstop,Var50-var63*len1)
Call exitlong("매수변동성",Atstop,close-var63*len2 )
If Var50>= Entryprice+var63*break Then
Call exitlong("매수손익분기",Atstop,Entryprice+var63*level)
Call exitlong("매수추적1",Atstop,Var50-var63*len3)
End If
If Var50>=Entryprice+var63*big Then
Call exitlong("매수초과수익",Atstop,llv(1,low,3))
End If
End If
2012-03-29
401
글번호 49485