커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
8106
글번호 230811
답변완료
수식 수정 부탁드립니다
###,57639 답변에서 다른각도로 재질문입니다.
ㅡ,참조 수식에서 피봇등분선 출력시점만 조정하는걸로 대신합니다.
ㅡ,이전에 상승파동선이나 하락파동선에 출력된 피봇등분선을 저장한후 이후 현재가가 이전에
저장된 피봇등분선의 23.6%선을 터치하거나 또는 고점,저점을 갱신할때만 피봇등분선을
출력하고 그렇지 않으면 피봇등분선을 출력하지 않고 이전 피봇등분선이 그대로 유지되는걸
로 수정 부탁드립니다
(제가 원하는 의도는 잔파동에도 피봇선이 출력되니까 캔들이 가려져서 장판단이 어려워서
요청드립니다)
$$$,매번 고맙습니다.
2018-05-01
235
글번호 118609
답변완료
틱챠트에 분봉이평선 표시하는 수식
안녕하세요
1.
해외선물 틱챠트에
60분봉 ema(23) ema(115) 를 표현할 수 있는 수식을 부탁드립니다.
2.
①EUREX 개장시간의 시가
②CME 개장시간의 시가
를 틱챠트, 분챠트에 표시하는 수식을 부탁드립니다.
검색해서 해보려는데 잘 안되네요
감사합니다.
2018-05-02
251
글번호 118608
답변완료
피보나치 매매수식 수정 부탁드립니다.
아래에 첨부드리는 수식을 수정 요청드립니다.
수정사항
# 0.382를 딛거나 돌파시 1차 매수하여 0.236 도달시 1차 수익매도
# (0.236에 도달하지 못하고 하락시) 0.5에서 2차 매수하고 0.382 도달시 전량 2차 수익매도
# (0.382에 도달하지 못하고 하락시) 0.618에서 3차 매수하고 0.382 도달시 전량 3차 수익매도
# 0.382에 도달하지 못하고 하락시 0.5에서 1/3 매도, 0.618에서 1/3 매도, 0.7에서 1/3 매도
- 진입날짜 이전에 시그널이 발생하는 경우가 간혹 있습니다. 지정일 이후에만 매매가 발생하길 원합니다.
- 아 래 -
input : n(240);
input : 지정일(20180426);
var : 매수금액(3000000);
var : hh(0),ll(0),rr(0),cnt(0);
if DayHigh(n) > 0 and DayLow(n) > 0 then{
hh = dayhigh(1);
ll = daylow(1);
for cnt = 1 to n{
if dayhigh(cnt) > hh Then
hh = DayHigh(cnt);
if daylow(cnt) < ll Then
ll = daylow(cnt);
}
rr = hh-ll;
var1 = hh;
var2 = hh - rr*0.382;
var3 = hh - rr*0.500;
var4 = hh - rr*0.618;
var5 = ll;
if crossup(c,var3) Then
Buy("매수");
if MarketPosition == 1 and crossup(c,var2) Then
ExitLong("수익");
if MarketPosition == 1 and CrossDown(c,var4) Then
ExitLong("손절");
}
2018-05-01
253
글번호 118607
jba 님에 의해서 삭제되었습니다.
2018-04-30
24
글번호 118606
jba 님에 의해서 삭제되었습니다.
2018-04-30
0
글번호 118605
회원 님에 의해서 삭제되었습니다.
2018-04-30
15
글번호 118604
답변완료
문의드립니다.
도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
밴드폭이 n개봉동안 n이하
이렇게 표현하면 될까요?
그리고 이게 진입봉의 경우 밴드폭이 늘어날텐데요. 전봉까지로 하려면
countif(BWidth < n,n개봉)[1]
이렇게 하면 되나요?
Inputs: Period(20), D(2), Period2(9);
Variables: BBTop(0), BBMid(0), BBBot(0),Bwidth(0),sig(0);
BBTop = BollBandUp(Period,D);
BBMid = ma(C,Period);
BBBot = BollBandDown(Period,D);
BWidth = ((BBTop - BBBot)/ BBMid)*10000;
sig = ma(BWidth,Period2);
countif(BWidth < n,n개봉) < 1
2018-04-30
187
글번호 118603
답변완료
수식부탁드립니다=========
1분차트로해놓고 조건이맞아도 소리가안나네요 부탁드립니다
(아래 교차간격에서는 소리가 정상적으로 납니다 )
var:신호비교봉(3),신호발생가격(1250),찬스라인(0.1),downn(0.99),LENGTH1(60),LENGTH2(10),비교봉(5),비교봉1(5),양합상승(1.008),양합하락(0.985),표시2(0);
Input:라인폭(0),소리2(0),소리22(0),표시위치(0.7),최고저기준(10),교차간격(0.05),abs간격(2),susmss간격(3);
INPUTS: LENGTH11(30),전봉차(0);
Input : Periodtsf(30);
Input : Periodt(30);
VARS: TEMA11(0),susm22tem(0);
var : sum2(0,data1),sum4(0,data1),sum6(0,data1),TEMA1atm2(0),TEMA1atm4(0),TEMA1atm6(0),ss(0);
var : HH(0,data2),LL(0,data2),hl(0,data2),ii(0,data2);;
var : crup(0),crdn(0),sum22(0),ccurnt(0),cgap(0),callgap(0),putgap(0),plemeumgap(0),chanline(0);
var :linegi(0),data2yc(0),data3yc(0),hapyc(0),hapycrt(0),TEMA1hapycrt(0),crup96(0),data2opc(0),data3opc(0),datatoopp(0);
var :susm22(0),sucrup(0),hhh(0),lll(0),hii(0),chanceline(0),pyungyc(0),pyungty(0);
var :dataabs(0),dataabstem(0);
sum2 = (data2(c)+data3(c));
sum22 =(data2(c)+data3(c))/2*250000;
data2opc = data2(openD(0));
data3opc = data3(openD(0));
// if data2(dayindex+1 == 3) Then
// data2opc = data2(c);
// if data3(dayindex+1 == 3) Then
// data3opc = data3(c);
dataabs = abs(data2(c) - data3(c));
//************ susm22의 테마 *****************************************
dataabstem = (3 * Ema(dataabs,LENGTH11)) - (3 * Ema(Ema(dataabs,LENGTH11),LENGTH11)) +
(Ema(Ema(Ema(dataabs,LENGTH11),LENGTH11),LENGTH11));
// Plot41(dataabstem,"abstemup",iff((dataabstem )>(dataabstem[1])+00,RED,iff((dataabstem )<(dataabstem[1] )-00,BLUE,BLACK)));
//*********************************************************
datatoopp = (data2opc + data3opc) / 2 *250000;
susm22 = sum22 - datatoopp;
data2yc = data2(closeD(1));
data3yc = data3(closeD(1));
pyungyc = ( data2yc + data3yc ) / 2 *250000;
pyungty = pyungyc - datatoopp;
if data2(bdate != bdate[1]) Then{
ii = 0;
HHh = susm22;
LlL = susm22;
}
else
{
ii = ii+1;
if ii < 최고저기준 Then
{
if susm22 > hhh Then
hhh = susm22;
if susm22 < lll Then
lll = susm22;
}
else{
hhh = data2(highest(susm22,최고저기준));
lll = data2(lowest(susm22,최고저기준));
}
}
hii = (hhh + lll)/2;
//plot1(sum2,"양합");
PLOT3(sum22,"수정양합");
//hhh = hh - susm22;
//lll = ll - susm22;
//hii = (hhh + lll) / 2;
plot21(HHh,"Data2 H" );
plot22(LLl,"Data2 L");
plot76(hii,"hii");
/*
if ss<=0 and hii > hii[신호비교봉] + 신호발생가격 then {
ss=1;
PLOT24(0,"상승");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsound동시매수진입.wav");
}
}
if ss>=0 and hii < hii[신호비교봉] - 신호발생가격 then {
ss=-1;
PLOT25(0,"하락");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsound동시매도진입.wav");
}
}
*/
/**********************************************************************
if ss<=0 and tema1[1] < tema1 Then {
ss=1;
PLOT45((tema1 )-0.01,"매수");
// PlaySound("C:UsersAdministratorDesktop효과Bandi.wav");
}
if ss>=0 and tema1[1] > tema1 Then {
ss=-1;
PLOT46((tema1 )-0.01,"매도");
//PlaySound("C:UsersAdministratorDesktop효과click08.wav");
}
**********************************************************************/
TEMA1atm2 = (3 * Ema(sum22,LENGTH1)) - (3 * Ema(Ema(sum22,LENGTH1),LENGTH1)) +
(Ema(Ema(Ema(sum22,LENGTH1),LENGTH1),LENGTH1));
plot5(TEMA1atm2,"태마2",iff((TEMA1atm2 )>(TEMA1atm2[1])+00,RED,iff((TEMA1atm2 )<(TEMA1atm2[1] )-00,BLUE,BLACK)));
if ( Data2(c) > Data3(c)) and ( Data2(c) - Data3(c)) < 교차간격 Then{
crup = (Data2(c)+Data3(c))/2*250000;
ccurnt = c;
}
if ( Data3(c) > Data2(c)) and ( Data3(c) - Data2(c)) < 교차간격 Then{
crup = (Data2(c)+Data3(c))/2*250000;
ccurnt = c;
}
// PLOT31(crup,"교차라인");
if ( Data2(c) > Data3(c)) and ( Data2(c) - Data3(c)) < 교차간격 Then{
PLOT52(10000,"상승교차");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsounddd2.wav");
}
}
if ( Data3(c) > Data2(c)) and ( Data3(c) - Data2(c)) < 교차간격 Then{
PLOT53(10000,"하락교차");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsounddd2.wav");
}
}
if sTime == 090000 Then {
plot59( 20000,"장시작" );
}
// PLOT58(datatoopp ,"시가평균");
susm22 = sum22 - datatoopp;
PLOT99(susm22 ,"시가대비평가");
//************ susm22의 테마 *****************************************
susm22tem = (3 * Ema(susm22,LENGTH11)) - (3 * Ema(Ema(susm22,LENGTH11),LENGTH11)) +
(Ema(Ema(Ema(susm22,LENGTH11),LENGTH11),LENGTH11));
Plot75(susm22tem,"temup",iff((susm22tem )>(susm22tem[1])+00,RED,iff((susm22tem )<(susm22tem[1] )-00,BLUE,BLACK)));
Plot91(susm22tem-라인폭,"susm22tem_1") ;
Plot92(susm22tem+라인폭,"susm22tem_2") ;
if susm22tem > susm22tem[1] and (NextBarSdate > sdate or (NextBarSdate == sdate and NextBarStime > stime)) Then{
plot93(susm22tem,"susmup");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsounddn3.wav");
}
}
if susm22tem < susm22tem[1] and (NextBarSdate > sdate or (NextBarSdate == sdate and NextBarStime > stime)) Then{
plot94(susm22tem,"susmdn");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsounddd5.wav");
}
}
/*
if ss<=0 and susm22tem < susm22tem[susmss간격] then {
ss=1;
PLOT24(susm22,"매도진입");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsounddn3.wav");
}
}
if ss>=0 and susm22tem > susm22tem[susmss간격] then {
ss=-1;
PLOT25(susm22,"매수진입");
if 소리2 == 1 then {
PlaySound("C:UsersAdministratorDesktopsounddd5.wav");
}
}
*/
//*********************************************************
plotbaseline1(0);
/*
plotbaseline2(-10000);
plotbaseline3(-20000);
plotbaseline4(-30000);
plotbaseline5(-40000);
plotbaseline6(10000);
plotbaseline8(20000);
plotbaseline9(30000);
plotbaseline10(40000);
*/
sucrup = crup - datatoopp;
PLOT62(sucrup,"수정교차라인");
// chanceline = datatoopp * 찬스라인;
// PLOT63(chanceline,"찬스라인");
PLOT63(pyungty ,"전데이타평");
if 소리22 == 1 then {
if CrossDown(susm22,-10000) or CrossUp(susm22,-10000) Then
{ plot64(susm22,"-10000");
PlaySound("C:UsersAdministratorDesktopsound마1w.wav");
}
if CrossDown(susm22,-20000) or CrossUp(susm22,-20000) Then
{ plot65(susm22,"-20000");
PlaySound("C:UsersAdministratorDesktopsound마2w.wav");
}
if CrossDown(susm22,-30000) or CrossUp(susm22,-30000) Then
{ plot66(susm22,"-30000");
PlaySound("C:UsersAdministratorDesktopsound마3w.wav");
}
if CrossDown(susm22,-40000) or CrossUp(susm22,-40000) Then
{ plot67(susm22,"-40000");
PlaySound("C:UsersAdministratorDesktopsound마4w.wav");
}
//*********************************+++++++++++++++++++++++++++++++++++++
if CrossDown(susm22,10000) or CrossUp(susm22,10000) Then
{ plot68(susm22,"10000");
PlaySound("C:UsersAdministratorDesktopsound프1w.wav");
}
if CrossDown(susm22,20000) or CrossUp(susm22,20000) Then
{ plot69(susm22,"20000");
PlaySound("C:UsersAdministratorDesktopsound프2w.wav");
}
if CrossDown(susm22,30000) or CrossUp(susm22,30000) Then
{ plot70(susm22,"30000");
PlaySound("C:UsersAdministratorDesktopsound프3w.wav");
}
if CrossDown(susm22,40000) or CrossUp(susm22,40000) Then
{ plot71(susm22,"40000");
PlaySound("C:UsersAdministratorDesktopsound프4w.wav");
}
}
var : LRLv(0);
LRLv = LRL(susm22,Periodt);
Plot72(LRLv, "LRS_susm22");
var : TSF(0);
TSF = LRL(susm22,Periodtsf)+LRS(susm22,Periodtsf);
//Plot91(TSF-라인폭,"TSF_susm221") ;
//Plot92(TSF+라인폭,"TSF_susm222") ;
if susm22 > -5000 and susm22 <= 0 then plot83(tsf,"하1");
if susm22 > -10000 and susm22 <= -5000 then plot84(tsf,"하2");
if susm22 > -15000 and susm22 <= -10000 then plot85(tsf,"하3");
if susm22 > -20000 and susm22 <= -15000 then plot86(tsf,"하4");
if susm22 > -25000 and susm22 <= -20000 then plot87(tsf,"하5");
if susm22 > -30000 and susm22 <= -25000 then plot88(tsf,"하6");
if susm22 > -35000 and susm22 <= -30000 then plot89(tsf,"하7");
if susm22 > -40000 and susm22 <= -35000 then plot90(tsf,"하8");
2018-05-01
320
글번호 118601
답변완료
함수요청
안녕하세요?
60분봉상 크루드오일 전략을 작성하고 있습니다.
월봉상 MACD오실레이터가 월봉상 직전봉기준 0값 이상이면 A매수진입&청산전략을
0값 이하면 B매도진입&청산전략을
월봉상 직전봉기군 5ma>20ma이면 C매수진입&청산전략을
5ma<20ma면 D매도진입&청산전략을 사용하고 싶습니다.
함수 요청드립니다.
2018-04-30
168
글번호 118599