커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7493
글번호 230811
답변완료
수식작성 부탁드립니다.
안녕하십니까. 항상 감사드립니다.
1.매수(매도는반대) 10분봉거래
a.조건1 14일(일봉의값) ADX값이 20이상
b.조건2 ADX의 값이 커지는 추세
c.조건3 단기(5일.일봉)-중(20.일일봉)-장기(60일.일봉) 이평선이 정배열
d.조건1.2.3만족후 5봉뒤에서 매수
e.이평선 정배열된 날의 저점에 손절스탑
f.이평선 정배열 무너지면 청산
2.매수(매도는반대) 10분봉거래
a. 조건1 가격이 20지수이평(EMA)과 100단순이평 아래에 있을것
b. 조건2 MACD가 +로 전환된후 5봉이내일것
c. 조건1.2 만족후 가격이 20지수이평(EMA)과 100단순이평을 모두 돌파후 15핍상승
d. 15핍상승한 가격에서 시장가 매수 2계약
e. 이평선 돌파봉의 저점에 손절스탑설정
f. 매수가격 + (매수가격-손절가격)만큼 상승시 1계약 이익청산후 나머지 1계약 손절스탑을 진입가로 수정
g. 가격이 20지수이평(EMA)-15핍에서 이익 트레일링 스탑설정
3.매수(매도는반대) 당일특정시간 분봉거래.
a. 전일까지 7거래일 연속 음봉의 조건 만족시 (일봉기준)
b. 금일 특정시간(예 120000)이후 분봉기준 양봉이 나올시 2계약 매수진입
c. 진입가 -30핍아래 손절스탑
d. 진입가 +60핍에서 1계약 이익청산후 나머지 1계약 손절스탑을 진입가로 이동
e. 나머지 1계약은 + 120핍의 이익청산 설정
수고하세요
2014-09-12
170
글번호 78481
답변완료
수식 문의합니다...
자동매매에서 진입은 수동으로
청산은 자동으로 매매가 가능할까요.?
2014-09-12
146
글번호 78480
혼자뜨는별 님에 의해서 삭제되었습니다.
2014-09-12
4
글번호 78478
답변완료
문의드립니다.
plot나 tl_new같은 추세선함수를 사용자 함수에 추가해서 지표에 그리기가 가능한가요?
예제)
Drawline()
{
var1 = O;
plot(var1);
Drawline = true;
}
2014-09-12
143
글번호 78469
답변완료
시스템식 부탁합니다
아침 장시작 당일 고가
고가에서 하락하다 반등하여 당일고가 돌파시 매수하는
시스템식 부탁합니다
당일 장시작 후 당일 고가 재돌파시 매수식 부탁합니다
시간 제한 11시 이전
2014-09-12
148
글번호 78468
외환달러 님에 의해서 삭제되었습니다.
2014-09-12
0
글번호 78467
답변완료
연결선물에서 선물만기일 다음날 가격정보관련
연결선물에서 선물만기일 다음날은 가격정보가
차월물로 바뀌기 때문에 전일 가격과 비교하는 수식의 경우
원하는 것과 다른 결과가 나오는데 이를 막을 수 있는 방법을
수식으로 알려주시면 감사하겠습니다.
예를 들어
전일종가와 차이 = Close - CloseD(1) 로 수식을 사용하고 있는데
선물만기일 다음날 차월물과 관계에서 실제 CloseD(1) 값이 아닌 것을
방지하기 위한 방법을 원합니다.
쉽게말해 그래프 데이터 말고 전일대비 등락값을 가져올수 있는 방법을 알려주시면
감사하겠습니다.
2014-09-12
185
글번호 78466
답변완료
시스템식 수정
항상감사드립니다
아래 시스템식은 타주기를 이용한 시스템식입니다,근데 신호가 잘나오질 않습니다
오류수정 부탁드립니다
제가구현하고자 하는 시스템식은
1.타주기적용시스템_A
1-1 아래 시스템식_1 이 주차트(300틱)와 타주기챠트(2분)에서 같은방향으로 신호가 발생시
매수/매도
1-2 주챠트(300틱)에 C > 기하이평 20 고가선((Hma2) 이면 매수진입
주챠트(300틱)에 C < 기하이평 20 저가선(Lma2) 이면 매도진입
1-3 주챠트(300틱)와 타주기챠트(2분)에서 선행스팬2(52) 기준추가(상단에 위치하면매수/
하단에 위치하면 매도)
1-4 주챠트(300틱)에 MACD_OSC 기준매매 추가
1-5 주챠트(300틱)에 ADX 매수매도식 추가
1-6 주챠트(300틱)에 aroon 매수매도식 추가
*** 시스템식_1 과 선행스팬2(52) 만 주챠트와 타주기챠트에 적용합니다***
***변형하고자하는 시스템식은
2.타주기적용시스템_B
2-1 시스템식_1 은 주차트(300틱)에만 적용하고(매수/매도)
2-2 주챠트(300틱)에 C > 기하이평 20 고가선((Hma2) 이면 매수진입
주챠트(300틱)에 C < 기하이평 20 저가선(Lma2) 이면 매도진입
2-3 주챠트(300틱)에 MACD_OSC 기준매매 추가
2-4 주챠트(300틱) 및 타주기챠트에(2분) 선행스팬2(52) 기준추가
(상단에 위치하면매수/하단에 위치하면 매도)
2-5 타주기챠트에(2분) C > 기하이평 20 고가선(Hma2) 이면 매수진입
타주기챠트에(2분) C < 기하이평 20 저가선(Lma2) 이면 매도진입
2-6 주챠트(300틱)에 ADX 매수매도식 추가
2-7 주챠트(300틱)에 aroon 매수매도식 추가
를 구현하고 싶습니다
########################
##### 시스템식_1 #####
########################
input:Period(30),ma1(12),ma2(26),shortperiod(9),Longperiod (26),signalperiod(9),baseLine(0);
var : A1(0,data1),B1(0,data1),V10(0,data1);
var : A2(0,data2),B2(0,data2),V20(0,data2);
var : Bcond(false,data1),Scond(false,data1);
A1=PVI;
B1=data1(ema(A1,period));
if data1(o>c and A1>B1 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
V10= 1 ;
if data1(o<c and A1< B1 and Ema(C,MA1) < Ema(C,MA2)) Then
V10= -2 ;
if data1(o<c and A1<B1 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
V10= -1 ;
if data1(o>c and A1>B1 and Ema(C,MA1) >Ema(C,MA2)) Then
V10= 2 ;
A2=PVI;
B2=data2(ema(A2,period));
if data2(o>c and A2>B2 and Ema(C,MA1) > Ema(C,MA2) and MACD(shortperiod,Longperiod) >= baseLine) Then
V20= 1 ;
if data2(o<c and A2< B2 and Ema(C,MA1) < Ema(C,MA2)) Then
V20= -2 ;
if data2(o<c and A2<B2 and Ema(C,MA1) < Ema(C,MA2) and MACD(shortperiod,Longperiod) <= baseLine) Then
V20= -1 ;
if data2(o>c and A2>B2 and Ema(C,MA1) >Ema(C,MA2)) Then
V20= 2 ;
######################
### 기하이동평균선 ###
######################
input : P1(5),P2(20));
var : HI(0),LL(0),CC(0),cnt(0);
var : Hma1(0),Lma1(0),Cma1(0);
var : Hma2(0),Lma2(0),Cma2(0);
var : Hma3(0),Lma3(0),Cma3(0);
HH = Log(H);
LL = Log(L);
CC = Log(C);
Hma1 = 0;
Lma1 = 0;
Cma1 = 0;
for cnt = 0 to P1-1 begin
Hma1 = Hma1 + HI[cnt];
Lma1 = Lma1 + LL[cnt];
Cma1 = Cma1 + CC[cnt];
end;
Hma1 = 2.71828182845904^(Hma1/P1);
Lma1 = 2.71828182845904^(Lma1/P1);
Cma1 = 2.71828182845904^(Cma1/P1);
Hma2 = 0;
Lma2 = 0;
Cma2 = 0;
for cnt = 0 to P2-1 begin
Hma2 = Hma2 + HI[cnt];
Lma2 = Lma2 + LL[cnt];
Cma2 = Cma2 + CC[cnt];
end;
Hma2 = 2.71828182845904^(Hma2/P2); #Hma2 20기하이평 고가#
Lma2 = 2.71828182845904^(Lma2/P2); #Lma2 20기하이평 저가#
Cma2 = 2.71828182845904^(Cma2/P2); #Cma2 20기하이평 종가#
#########################
### MACD_OSC 기준매매 ###
#########################
input: MACDP1(12),MACDP2(26),MACDP3(9);
var : MACDV(0),MACDS(0);
MACDV = MACD(MACDP1,MACDP2); #MACD_OSC(12,26)_red#
MACDS = ema(MACDV,MACDP3); #MACD_OSC(9)_시그널_blue#
##########################
### 선행스팬2(52) 기준 ###
##########################
var52 = (Highest(High, 52) + Lowest(Low, 52)) / 2; #선행스팬2_52#
######################
##### ADX 시스템 #####
######################
input : Period3(10);
var : ADXv(0),DP2(0),DM2(0);
ADXv = ADX(Period3);
DP2 = DiPlus(Period3);
DM2 = DiMinus(Period3);
if DP2 > DM2 Then
var13= 1 ;
if DP2 < DM2 Then
var13= -1 ;
###### aroon ######
input : Period4(9);
var : Counter(0), Lowval(0), Highval(0), DownVel(0),UpVel(0), DnAroon(0),UpAroon(0) ;
Lowval= Lowest(Low, Period4+1);
Highval = Highest(High, Period4+1);
For counter= 0 To Period4 {
If Low[counter] == Lowval Then
DownVel = counter;
If High[counter] == highval Then
UpVel = counter;
}
DnAroon = 100*(Period4-DownVel)/Period4;
UpAroon = 100*(Period4-UpVel)/Period4;
###########################
##### 매수/매도 조건식 ####
###########################
Bcond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == 1;
Scond = MarketPosition == 0 and ExitDate(1) == sdate and MarketPosition(1) == -1;
if Bcond == false and c>o and V10 == 1 and V20 == 1 and c>var52[25] and
var13==1 and macdv>macds and upAroon > DnAroon Then
buy("buy_1");
if Scond == false and c<o and V10 == -1 and V20 == -1 and c<var52[25] and
var13==-1 and macdv<macds and upAroon < DnAroon Then
exitlong("eB1");
if Scond == false and c<o and V10 == -1 and V20 == -1 and c<var52[25] and
var13==-1 and macdv<macds and upAroon < DnAroon Then
sell("sell_1");
if Bcond == false and c>o and V10 == 1 and V20 == 1 and c>var52[25] and
var13==1 and macdv>macds and upAroon > DnAroon Then
exitshort("eS1");
감사합니다
2014-09-12
186
글번호 78465
답변완료
전일과 전전일의 지지/저항선을 표시하는 식으로 변경 부탁드립니다.
아래는 당일의 지지와저항선을 구하는 수식입니다.
당일만 나오다 보니 전일과 전전일의 지지와저항선도 보고 싶어지는군요. 제 실력으로 수정이 어려워 부탁드립니다. 주요 지지저항선만 나오면 됩니다. 감사합니다.
---------------------------------------------------------
# swingHigh와 swingLow를 이용한 장중 지지선과 저항선
input : Length(10); //SwingHigh와 SwingLow의 기간값
input : LengthMult(2); //기본 기간값에 N배수(굵게 표시되는 중요 지지선과 저항선)
input : NdayAgo(0); //N일전(0이면 당일, 1이면 전일, 2이면 전전일...)
var : 저항선(0), 지지선(0), Rcount(0), Scount(0);
var : 저항선2(0), 지지선2(0), Rcount2(0), Scount2(0);
var : R1(0), R2(0), R3(0), R4(0), R5(0), R6(0), R7(0), R8(0), R9(0),R10(0),
R11(0), R12(0), R13(0), R14(0), R15(0), R16(0), R17(0), R18(0), R19(0),R20(0);
var : S1(0), S2(0), S3(0), S4(0), S5(0), S6(0), S7(0), S8(0), S9(0),S10(0),
S11(0), S12(0), S13(0), S14(0), S15(0), S16(0), S17(0), S18(0), S19(0),S20(0);
var : R81(0), R82(0), R83(0), R84(0), R85(0), S91(0), S92(0), S93(0), S94(0), S95(0);
var1 = DateToJulian(currentdate);
var2 = DateToJulian(date);
if var1-var2 == NdayAgo && dayindex >= Length-1 then {
저항선 = SwingHigh(1, H, Length, Length, Length*2+1);
지지선 = swingLow(1, L, Length, Length, Length*2+1);
if 저항선 == -1 Then 저항선 = 저항선[1];
if 지지선 == -1 Then 지지선 = 지지선[1];
if 저항선 != 저항선[1] then Rcount = Rcount + 1;
if 지지선 != 지지선[1] Then Scount = Scount + 1;
if Rcount == 1 then R1 = 저항선;
if Rcount == 2 Then R2 = 저항선;
if Rcount == 3 then R3 = 저항선;
if Rcount == 4 Then R4 = 저항선;
if Rcount == 5 then R5 = 저항선;
if Rcount == 6 Then R6 = 저항선;
if Rcount == 7 then R7 = 저항선;
if Rcount == 8 Then R8 = 저항선;
if Rcount == 9 then R9 = 저항선;
if Rcount == 10 Then R10 = 저항선;
if Rcount == 11 then R11 = 저항선;
if Rcount == 12 Then R12 = 저항선;
if Rcount == 13 then R13 = 저항선;
if Rcount == 14 Then R14 = 저항선;
if Rcount == 15 then R15 = 저항선;
if Rcount == 16 Then R16 = 저항선;
if Rcount == 17 then R17 = 저항선;
if Rcount == 18 Then R18 = 저항선;
if Rcount == 19 then R19 = 저항선;
if Rcount == 20 Then R20 = 저항선;
if Scount == 1 then S1 = 지지선;
if Scount == 2 Then S2 = 지지선;
if Scount == 3 then S3 = 지지선;
if Scount == 4 Then S4 = 지지선;
if Scount == 5 then S5 = 지지선;
if Scount == 6 Then S6 = 지지선;
if Scount == 7 then S7 = 지지선;
if Scount == 8 Then S8 = 지지선;
if Scount == 9 then S9 = 지지선;
if Scount == 10 Then S10 = 지지선;
if Scount == 11 then S11 = 지지선;
if Scount == 12 Then S12 = 지지선;
if Scount == 13 then S13 = 지지선;
if Scount == 14 Then S14 = 지지선;
if Scount == 15 then S15 = 지지선;
if Scount == 16 Then S16 = 지지선;
if Scount == 17 then S17 = 지지선;
if Scount == 18 Then S18 = 지지선;
if Scount == 19 then S19 = 지지선;
if Scount == 20 Then S20 = 지지선;
if R1 > 0 then plot1(R1, "R1", RED);
if R2 > 0 then plot2(R2, "R2", RED);
if R3 > 0 then plot3(R3, "R3", RED);
if R4 > 0 then plot4(R4, "R4", RED);
if R5 > 0 then plot5(R5, "R5", RED);
if R6 > 0 then plot6(R6, "R6", RED);
if R7 > 0 then plot7(R7, "R7", RED);
if R8 > 0 then plot8(R8, "R8", RED);
if R9 > 0 then plot9(R9, "R9", RED);
if R10 > 0 then plot10(R10, "R10", RED);
if R11 > 0 then plot11(R11, "R11", RED);
if R12 > 0 then plot12(R12, "R12", RED);
if R13 > 0 then plot13(R13, "R13", RED);
if R14 > 0 then plot14(R14, "R14", RED);
if R15 > 0 then plot15(R15, "R15", RED);
if R16 > 0 then plot16(R16, "R16", RED);
if R17 > 0 then plot17(R17, "R17", RED);
if R18 > 0 then plot18(R18, "R18", RED);
if R19 > 0 then plot19(R19, "R19", RED);
if R20 > 0 then plot20(R20, "R20", RED);
if S1 > 0 then plot51(S1, "S1", BLUE);
if S2 > 0 then plot52(S2, "S2", BLUE);
if S3 > 0 then plot53(S3, "S3", BLUE);
if S4 > 0 then plot54(S4, "S4", BLUE);
if S5 > 0 then plot55(S5, "S5", BLUE);
if S6 > 0 then plot56(S6, "S6", BLUE);
if S7 > 0 then plot57(S7, "S7", BLUE);
if S8 > 0 then plot58(S8, "S8", BLUE);
if S9 > 0 then plot59(S9, "S9", BLUE);
if S10 > 0 then plot60(S10, "S10", BLUE);
if S11 > 0 then plot61(S11, "S11", BLUE);
if S12 > 0 then plot62(S12, "S12", BLUE);
if S13 > 0 then plot63(S13, "S13", BLUE);
if S14 > 0 then plot64(S14, "S14", BLUE);
if S15 > 0 then plot65(S15, "S15", BLUE);
if S16 > 0 then plot66(S16, "S16", BLUE);
if S17 > 0 then plot67(S17, "S17", BLUE);
if S18 > 0 then plot68(S18, "S18", BLUE);
if S19 > 0 then plot69(S19, "S19", BLUE);
if S20 > 0 then plot70(S20, "S20", BLUE);
}
# 중요 지지저항선은 굵게 표시
if var1-var2 == NdayAgo && dayindex >= Length*LengthMult-1 then {
저항선2 = SwingHigh(1, H, Length*LengthMult, Length*LengthMult, Length*LengthMult*2+1);
지지선2 = swingLow(1, L, Length*LengthMult, Length*LengthMult, Length*LengthMult*2+1);
if 저항선2 == -1 Then 저항선2 = 저항선2[1];
if 지지선2 == -1 Then 지지선2 = 지지선2[1];
if 저항선2 != 저항선2[1] then Rcount2 = Rcount2 + 1;
if 지지선2 != 지지선2[1] Then Scount2 = Scount2 + 1;
if Rcount2 == 1 then R81 = 저항선2;
if Rcount2 == 2 Then R82 = 저항선2;
if Rcount2 == 3 then R83 = 저항선2;
if Rcount2 == 4 Then R84 = 저항선2;
if Rcount2 == 5 then R85 = 저항선2;
if Scount2 == 1 then S91 = 지지선2;
if Scount2 == 2 Then S92 = 지지선2;
if Scount2 == 3 then S93 = 지지선2;
if Scount2 == 4 Then S94 = 지지선2;
if Scount2 == 5 then S95 = 지지선2;
//아래 plot들은 속성창에서 굵게 표시해야 함
if R81 > 0 then plot81(R81, "R81", rgb(255,89,172));
if R82 > 0 then plot82(R82, "R82", rgb(255,89,172));
if R83 > 0 then plot83(R83, "R83", rgb(255,89,172));
if R84 > 0 then plot84(R84, "R84", rgb(255,89,172));
if R85 > 0 then plot85(R85, "R85", rgb(255,89,172));
if S91 > 0 then plot91(S91, "S91", rgb(9,154,1));
if S92 > 0 then plot92(S92, "S92", rgb(9,154,1));
if S93 > 0 then plot93(S93, "S93", rgb(9,154,1));
if S94 > 0 then plot94(S94, "S94", rgb(9,154,1));
if S95 > 0 then plot95(S95, "S95", rgb(9,154,1));
}
2014-09-12
226
글번호 78464