커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7683
글번호 230811
답변완료
문의요~~
수고하십니다 ..
일봉,분봉,틱 챠트 관계없이
최근 20개봉 고점 돌파후 신고가를 종가상 다시 돌파하는경우 매수, 최근 10개봉 저점 이탈후 신저점 재이탈시 매수청산//
최근 20개봉 저점 이탈후 신저가를 종가상 다시 이탈하는 경우 매도, 최근 10개봉 고점 돌파후 신고점 재돌파시 매도청산 공식 부탁드립니다.
2012-01-29
329
글번호 47024
답변완료
문의?
안녕하세요?
수식점 부탁드립니다.
전일 장대양봉[+4포인트 이상], 전일 장대음봉[-4포인트 이하]
감사드립니다/
2012-01-28
377
글번호 47023
답변완료
문의드립니다.
한달에 일정이상 수익을 낸 경우에 남은 기간동안은 매매를 하지 않는 식 작성이
가능할까요?
그리고 현재 포지션이 진입한 시점에서 2포 넘게 오르면 손절을 진입시점에서 1포 오른 가격에 설정하고 싶습니다.
처음 진입조건은 20 이평선입니다. 만약 2포 이상 오르지 않는다면 0.5포 손절을 두고 싶습니다.
답변 부탁드립니다.
2012-01-28
321
글번호 47022
답변완료
포지션이 없을때 청산신호발생?
안녕 하세요..
차트상에 포지션이 없을경우 매수청산신호가 발생하면
매도가 되나요??
계좌에는 포지션이 없는데 매수청산신호가 발생하면 매도가
되는지 알려 주세요/.,.
2012-01-28
356
글번호 47021
답변완료
22544질문의 답변에 대한 재문의입니다
답변주셔서 감사드립니다
그런데 실제로 설정해보니 챠트에 변화가 전혀 없습니다.
혹시 기준이 높아서 그런가하고 기간을 50==>10으로 배수를 300==>에서 100으로 조정해봤는데도 표시가 안됩니다. 3분챠트에서 적용했구요. 검색에서 BigVolumeBars를 적용해보면 봉위에 표시가 되는데 선은 그리지 못하는 상황입니다. 재 점검 부탁드립니다. 이전봉비교한 거래량발생시와 거래량이 3000, 6000개 넘었을 때 그리고 최대거래량 발생시에도 표시구간을 정할 수 있도록 했으면 좋겠읍니다. 감사합니다^^
====================================
3.
매봉 연속되게 그리는 식이 아니시면
점그래프로 그리셔야 합니다.
신호발생하 idx로 지정한 봉갯수만큼만 표시를 합니다.
Inputs: Length(50), PcntMultip(200),N(3),idx(10);
var : cnt(0),sum(0),count(0),mav(0);
Array : VV[100](0);
VAR1 = TimeToMinutes(STIME)%N;
if dayindex == 0 or (var1 < var1[1] and stime > stime[1]) Then{
VV[0] = 0;
for cnt = 1 to 99{
VV[cnt] = VV[cnt-1][1];
}
}
VV[0] = VV[0]+V;
sum = 0;
for count = 1 to Length{
sum = sum+VV[count];
}
mav = sum/Length;
If VV[0] > mav * (1 + (PcntMultip * .01)) Then Begin
value1 = O;
value2 = C;
value3 = (O+C)/2;
value4 = index;
End;
if index >= value4 and index < value4+idx Then{
Plot1(value1);
plot2(value2);
plot3(value3);
}
2012-01-28
376
글번호 47020
답변완료
수식 수정
늘 감사합니다.
if stime >= 91500 Then{
if crossup(data2(c), data3(c)) Then
PlotPaintBar(o,c,"1",LGREEN);
if CrossDown(data2(c), data3(c)) Then
PlotPaintBar(o,c,"1",LGREEN);
}
위의 수식을 다음과 같이 보완해 주세요
1. 9시15분시작 끝2시50분 까지만 되는 수식
2. crossup의 경우 캔들 위에 점을 표시하는 수식, 다음신호 나올 때까지
CrossDown의 경우 캔들 아래에 점을 표시하는 수식, 다음신호 나올 때까지
3. crossup의 경우 소리나게 표시하는 수식
CrossDown의 경우 소리나게 표시하는 수식
감사합니다.
2012-01-28
331
글번호 47019
답변완료
수식 부탁드릴께요!1
ma(c,5),ma(c,20),ma(c,60),ma(c,120),ma(c,200)
5개의 이평선간격중 제일 먼것 2개의 차이가 c*0.이상이면서 c가 ma(c,5)을 crossup시매수,
5개의 이평선간격중 제일 먼것 2개의 차이가 c*0.이상이면서 c가 ma(c,5)을 crossdown시매도식요!
2012-01-28
311
글번호 47018
대단한콩 님에 의해서 삭제되었습니다.
2012-01-28
0
글번호 47017
답변완료
옵션매수매도
안녕하세요 현제의식으로 data 는 선물을기준으로 data1콜옵션매수 청산식 data2는 풋옵션매수청산식 부탁드립니다
var : pp(0), pr1(0), pr2(0), ps1(0), ps2(0), sp(40), lp(350), emashort(0),emalong(0),
pivot_idx(22), pivot_ch(0.3), ilmokidx(15), ilmokx(14),ilmok1(0),ilmok2(0), ilmok3(0),
sunhang1(0), sunhang2(0), ccilen(50), ccich(100), mult(1), ccivalue(0), bcnt(0), scnt(0);
#손절 1.6 포인트
SetStopLoss(1.6, PointStop);
#피봇
#
if dayindex() == 0 then{# 첫봉에서
pp = (DayHigh(1)+DayLow(1)+DayClose(1))/3;#(전일고가+전일저가+전일종가)/3을 피봇포인트 값으로 저장
pr1 = 2*pp-daylow(1); #PP의 두배값에서 전일저가를 뺀값을 저항1값으로 저장
pr2 = pp+DayHigh(1)-DayLow(1);#PP값+전일고가-전일저가값을 저항2값으로 저장
ps1 = 2*pp-DayHigh(1);##PP의 두배값에서 전일고가를 뺀값을 지지1값으로 저장
ps2 = pp-DayHigh(1)+DayLow(1);#PP값-전일고가+전일저가값을 지지2값으로 저장
}
#14시 이전에
if stime < 140000 then {
#종가가 지지1값을 상향돌파하고 매수잔량이 매도잔량보다 크면 매수
if crossup(c, ps1) and bids > asks then buy("pprec_b");
#종가가 저항1값을 하향이탈하고 매도잔량이 매수잔량보다 크면 매도
if CrossDown(c, pr1) and bids < asks then sell("pprev_s");
}
#CCI
if date != date[1] then {
bcnt = 0;
scnt = 0;
}
CCIvalue = cci(ccilen);#CCI값
#CCI가 -100을 상향돌파하고 매수잔량이 매도잔량보다 크고 당일 첫번째 조건만족할 때만 매수진입
if CrossUp(ccivalue, -ccich) and bids > asks and bcnt == 0 Then{
buy("ccirev_b");
bcnt = bcnt +1;#if조건 만족하면 1씩 증가
}
#CCI가 100을 하향이탈하고 매도잔량이 매수잔량보다 크고 당일 첫번째 조건만족할 때만 매도진입
if CrossDown(ccivalue,ccich) and bids < asks and scnt == 0 Then{
sell("ccirev_s");
scnt = scnt+1;#if조건 만족하면 1씩증가
}
if BarsSinceEntry(0) > 0 then {# 진입후(BarsSinceEntry가 0보다 크다는 진입이 들어가 있는 상태라는 표현입니다.)
#진입명이 ccirev_b 일때 당일 저가를 갱신하면 매수청산
if IsEntryName("ccirev_b") and l == daylow(0) then exitlong("cci_le");
#진입명이 ccirev_s 일때 당일 고가를 갱신하면 매도청산
if IsEntryName("ccirev_s") and h == DayHigh(0) then ExitShort("cci_es");
}
#지수이평
emashort = ema(c, sp);#단기지수이평
emalong = ema(c, lp);#장기지수이평
#단기지수이평이 장기지수이평을 상향돌파하고 매수잔량이 매도잔량보다 크면 매수
if crossup(emashort, emalong) and bids > asks then buy("ema_b");
#단기지수이평이 장기지수이평을 하향이탈하고 매수잔량이 매도잔량보다 작으면 매도
if CrossDown(emashort, emalong) and bids < asks then sell("ema_s");
#피봇추세
#당일 22개봉 이전에
if DayIndex() <= pivot_idx then {
#종가가 저항2값보다 크고 매수잔량이 매도잔량보다 크면 매수
if c > pr2 and bids > asks then
buy("pp_b");
#종가가 지지2값보다 작고 매도잔량이 매수잔량보다 크면 매도
if c < ps2 and bids < asks then
sell("pp_s");
}
# PP_B 진입이 발생하고 주가가 저항2값-0.3보다 작아지면 매수청산
if IsEntryName("pp_b") and CrossDown(c,pr2-pivot_ch) then ExitLong("pp_es");
# PP_s 진입이 발생하고 주가가 지지2값+.3보다 커지면 매도청산
if IsEntryName("pp_s") and Crossup(c,ps2+pivot_ch) then ExitShort("pp_el");
#일목
ilmok1 = (Highest(h,ilmokx)+lowest(l,ilmokx))/2;#14봉 최고가와 최저가의 중간값
ilmok2 = (Highest(h,ilmokx*3)+lowest(l,ilmokx*3))/2;#14*3봉 최고가와 최저가의 중간값
ilmok3 = (Highest(h,ilmokx*3*2)+lowest(l,ilmokx*3*2))/2;#14*3*2봉 최고가와 최저가의 중간값
sunhang1 = (ilmok1+ilmok2)/2;//선행스팬1
sunhang2 = ilmok3;#선행스팬2
#당일 15번째 봉 이후
if DayIndex() == ilmokidx+1 then {
#15개봉 연속으로 종가가 선행스팬1과 선행스팬2중 큰값(구름대 상단)보다 크고 현재봉 매수잔량이 매도잔량보다 많으면 매수
if AccumN( IFF (c > max(sunhang1, sunhang2),1,0), ilmokidx) == ilmokidx and bids > asks Then
buy("ilmokb");
#15개봉 연속으로 종가가 선행스팬1과 선행스팬2중 작은값(구름대 하단)보다 작고 현재봉 매도잔량이 매수잔량보다 많으면 매도
if AccumN( IFF (c < min(sunhang1, sunhang2),1,0), ilmokidx) == ilmokidx and bids < asks Then
sell("ilmoks");
}
#ilmokb 진입후에 선행스팬1이 선행스팬2를 하향이탈하면 매수청산
if IsEntryName("ilmokb") and CrossDown(c, max(sunhang1, sunhang2)) Then
ExitLong("ilmok_el");
#ilmoks 진입후에 선행스팬1이 선행스팬2를 상향돌파하면 매도청산
if IsEntryName("ilmoks") and Crossup(c, min(sunhang1, sunhang2)) Then
ExitShort("ilmok_es");
#==========================================#
# 지표명 : 꺾은선차트
# 작성자 : 수식지왕
# 블로그 : http://yahoosir.blog.me
#==========================================#
Input:상승전환가격(0.5),하락전환가격(0.5);
Var:j(0),꺾은선(0),방향(0),상승(100),하락(-100),
기준고(0),기준저(0),기준고Bar(0),기준저Bar(0);
Array:고[20](0),저[20](0),고Bar[20](0),저Bar[20](0);
#==========================================#
# 전고점,전저점 index 증가
#==========================================#
For j = 1 To 19
{
고Bar[j] = 고Bar[j] + 1;
저Bar[j] = 저Bar[j] + 1;
}
#==========================================#
# 최근 고,저 갱신
#==========================================#
If 기준고 <= C || 기준고 == 0 || IsNaN(기준고) == True Then
{
기준고 = C;
기준고Bar = 0;
}
Else
기준고Bar = 기준고Bar + 1;
If 기준저 >= C || 기준저 == 0 || IsNaN(기준저) == True Then
{
기준저 = C;
기준저Bar = 0;
}
Else
기준저Bar = 기준저Bar + 1;
#==========================================#
# 추세방향 결정
#==========================================#
If 기준저[1] + 상승전환가격 > C[1] && 기준저[1] + 상승전환가격 <= C Then 방향 = 상승;
If 기준고[1] - 하락전환가격 < C[1] && 기준고[1] - 하락전환가격 >= C Then 방향 = 하락;
#==========================================#
# 추세변화에 따른 변곡점 처리
#==========================================#
If 방향[1] == 하락 && 방향 == 상승 Then
{
For j = 18 DownTo 1
{
저[j+1] = 저[j];
저Bar[j+1] = 저Bar[j];
}
저[1] = 기준저;
저Bar[1] = 기준저Bar;
꺾은선 = 기준저;
기준저 = C;
기준저Bar = 0;
기준고 = C;
기준고Bar = 0;
}
Else If 방향[1] == 상승 && 방향 == 하락 Then
{
For j = 18 DownTo 1
{
고[j+1] = 고[j];
고Bar[j+1] = 고Bar[j];
}
고[1] = 기준고;
고Bar[1] = 기준고Bar;
꺾은선 = 기준고;
기준고 = C;
기준고Bar = 0;
기준저 = C;
기준저Bar = 0;
}
Else If 방향[1] == 하락 && 방향 == 하락 Then
{
If 기준고[1] - 하락전환가격 <= C[1] &&
기준고[1] - 하락전환가격 > C &&
고[1] < 기준고 Then
{
고[1] = 기준고;
고Bar[1] = 기준고Bar;
꺾은선 = 기준고;
기준고 = C;
기준고Bar = 0;
}
}
Else If 방향[1] == 상승 && 방향 == 상승 Then
{
If 기준저[1] + 상승전환가격 >= C[1] &&
기준저[1] + 상승전환가격 < C &&
저[1] > 기준저 Then
{
저[1] = 기준저;
저Bar[1] = 기준저Bar;
꺾은선 = 기준저;
기준저 = C;
기준저Bar = 0;
}
}
#==========================================#
# 지표식 출력
#==========================================#
/*
//If 꺾은선[1] != 꺾은선 Then Plot1(꺾은선,"파동");
//Else If LastBarOnChart == 1 Then plot2(Iff(방향 == 상승,기준고,기준저));
If 꺾은선[1] != 꺾은선 Then{
var1 = 꺾은선;
var2 = var1[1];
Plot1(꺾은선);
}
If 기준저[1] <= C and c>o Then
Plot4(기준저,"파동1",red);
If 기준저[1] >= C and c<o Then
Plot4(기준저,"파동1",blue);
If 기준고[1] <= C and c<o Then
Plot5(기준고,"파동1",red);
If 기준고[1] >= C and c>o Then
Plot5(기준고,"파동1",blue);
*/
If 기준저[1] < C and c>ma(c,20)[1] and C[1] > ma(c,20)[1] and marketposition(0)!=1 Then{
PlaySound("C:₩리딩투자증권₩리딩스타플러스₩data₩Sound₩매수신호발생1.wav");
buy("매수");
}
If 기준저[1] > C and c<ma(c,20)[1] and C[1] < ma(c,20)[1] and marketposition(0)!=-1 Then{
PlaySound("C:₩리딩투자증권₩리딩스타플러스₩data₩Sound₩매도신호발생1.wav");
sell("매도");
}
#윗꼬리없는 양봉 - 고점에 점
if C > O and H == C then
sell();
#아랫꼬리없는 음봉 - 저점에 점
if C < O and L == C then
buy();
2012-01-28
623
글번호 47016