커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
6705
글번호 230811
답변완료
부탁드립니다
안녕하세요.
아래 3가지 수식을 대입하니 신호가 발생되지 않습니다.
무엇이 문제인가요?
var : T(0);
var1 = ma(c,5);
if crossup(c,var1) Then{
T = 1;
Condition1 = false;
}
if CrossDown(c,var1) Then
T = -1;
if T == 1 Then{
if countif(T==1 and H < H[1],3) == 3 Then{
var2 = (highest(H,3)+lowest(L,3))/3;
Condition1 = true;
}
if Condition1 == true and CrossDown(c,var2) Then
sell();
}
2.
var : T(0);
var1 = ma(c,5);
if crossup(c,var1) Then{
T = 1;
var3 = var2[1];
}
if CrossDown(c,var1) Then
T = -1;
if T == 1 then{
if Countif(T == 1 and C > O,2) == 2 Then
var2 = (highest(H,2)+lowest(L,2))/2;
if C > var3 and var3 > 0 Then
buy();
}
3.
var1에 대한 내용이 없었습니다.
var1 = ma(c,5);
if MarketPosition == 0 and countif(C<O,2) == 2 and CrossDown(C,var1) Then
sell("매도");
if MarketPosition == -1 and BarsSinceEntry >= 2 Then{
if countif(C<O,2) == 2 and
(C+C[1])/2 > (highest(h,BarsSinceEntry)+Lowest(L,BarsSinceEntry))/2 Then
ExitShort("매도청산");
}
if MarketPosition == 0 and countif(C>O,2) == 2 and crossup(C,var1) Then
Buy("매수");
if MarketPosition == 1 and BarsSinceEntry >= 2 Then{
if countif(C>O,2) == 2 and
(C+C[1])/2 < (highest(h,BarsSinceEntry)+Lowest(L,BarsSinceEntry))/2 Then
Exitlong("매수청산");
}
2014-10-29
127
글번호 79844
시월 님에 의해서 삭제되었습니다.
2014-10-28
17
글번호 79843
답변완료
시스템식 부탁드립니다.
5분봉 선물 기준으로 할때
9시 34분 55초 기준으로
a>b 이면 'A' 출력하고 매수,
a>c 이면 'B' 출력하고 매도,
a>d 이면 'C' 출력하고 매수
를 9시 35분 00에 실행하는 시스템식
2014-10-28
126
글번호 79842
답변완료
부탁드립니다
선물챠트에 data2에 프로그램 매매 수급을 넣고
당일 시작하여 앞봉보다 5천만원 이상 증가시 매수,
앞봉봉보다 5천만원 이상 감소시 매도 신호가 나오도록 부탁드립니다
2014-10-28
129
글번호 79841
답변완료
sim
안녕하세요
틱차트100사용합니다
우리트레이더 옵션차트에 sim지표추가하고싶읍니다
추가되면은 지표가-40을터치하면은 소리나게하고싶읍니다
추가안되면은 스토캐스틱슬로우5.3.3에서 기준선20을터치하면은 소리나게부탁합니다
2014-10-28
124
글번호 79835
답변완료
수식부탁드립니다
시스템매매에 관심이많은 초보이오니..
손대지않고도 바로 사용가능하도록 완벽정석으로 부탁드립니다
avg(c,단기)>avg(c,중기)&&
종가>최고값(avg(H,단기),30)
즉~~~단기이평(50)~이 > 중기이평 (70) 이고
<<30일동안중에>> 50일이평H 의 ~~최(고)값이~~현재 종가보다 큰것을~~매수및 매도청산!!
avg(c,단기)<avg(c,중기)&&
종가<최저값(avg(L,단기),30)
즉~~~단기이평(50)~이 < 중기이평 (70) 이고
<<30일동안중에>> 50일이평L 의 ~~최(저)값이~~현재 종가보다 작은것을~~매도및 매수청산!!
부탁드립니다~~~
2014-10-28
143
글번호 79832
답변완료
수식변환 가능할까요?
트레이드 스테이션에서 사용되는것 같은데
혹시 변환 가능한지 문의드립니다.
미리 감사드립니다. ^^
################################################################################
[LegacyColorValue = True]
INPUTS:
TICKCHG(10), {Change (number of ticks) required to set up a new swing
high/low.}
PCTCHG(.2), {Percent change in price to set up a new swing high/low}
OCCUR(1),
PLOTBARS(40),
ETALINE(true),
ZIGZAG(TRUE);
ARRAY:
PBAR[50](0),
P[50](0);
VARS:
X(0),
PP(1),
JA_SLOPE1(0),
JLA_CTR(0),
JLA_LINE(0),
JAIRHBAR(0), { LAST SWING HIGH BAR}
JAIRLBAR(0), {LAST SWING LOW BAR}
LOWSEEK(FALSE), {LOOKING FOR A LOW OR A HIGH?}
W(0), {COUNTER}
JLA_IRH(0), {LAST SWING HIGH VALUE}
JLA_IRL(99999), {LAST SWING LOW VALUE}
JA_SLOPE2(0),
JA_SLOPE3(0),
JLA_PT1(0),
WOLFE(0);
{==================MAIN
PROGRAM=========================}
IF CURRENTBAR = 1 THEN P[50] = C;
IF LOWSEEK = FALSE AND P[50] <= H THEN
BEGIN
P[50] = H;
PBAR[50] = 0;
END;
IF LOWSEEK = TRUE AND P[50] >= L THEN
BEGIN
P[50] = L;
PBAR[50] = 0;
END;
IF (LOWSEEK = FALSE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG = 0
AND L < P[50] * ( 1 - PCTCHG / 100) )
OR (TICKCHG <> 0
AND L < ( P[50] - tickchg * minmove points)) THEN
BEGIN
IF ZIGZAG = TRUE THEN
PLOT4[PBAR[50]](P[50],"SWINGS");
LOWSEEK = TRUE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = L;
PBAR[50] = 0;
END;
END;
IF (LOWSEEK = TRUE AND PBAR[50] <> 0) THEN
BEGIN
IF (TICKCHG = 0
AND H> P[50] * ( 1 + PCTCHG / 100))
OR (TICKCHG <> 0
AND H > (P[50] + tickchg * minmove points )) THEN
BEGIN
IF ZIGZAG = TRUE THEN
PLOT4[PBAR[50]](P[50],"SWINGS");
LOWSEEK = FALSE;
FOR W = 1 TO 49
BEGIN
PBAR[W] = PBAR[W+1];
P[W] = P[W+1];
END;
P[50] = H;
PBAR[50] = 0;
END;
END;
IF TIME = LASTCALCTIME
AND DATE = LASTCALCDATE
AND P[48 - PP] <> 0 THEN
BEGIN
PP = -1;
WOLFE = 0;
WHILE WOLFE < OCCUR AND PP < 46
BEGIN
PP = PP + 1;
VALUE1 = P[47-PP];
VALUE2 = P[48-PP];
VALUE3 = P[49-PP];
VALUE4 = P[50-PP];
CONDITION1 =
VALUE2 > VALUE1
AND VALUE4 > VALUE3
AND VALUE4 < VALUE2
AND VALUE3 < VALUE1
AND VALUE4 > VALUE1;
CONDITION2 =
VALUE2 < VALUE1
AND VALUE4 < VALUE3
AND VALUE4 > VALUE2
AND VALUE3 > VALUE1
AND VALUE4 < VALUE1;
IF CONDITION1 OR CONDITION2 THEN
WOLFE = WOLFE + 1;
END;
JA_SLOPE1 = (P[49-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[49-PP]);
JA_SLOPE2 = (P[50-PP] - P[47-PP]) / (PBAR[47-PP] - PBAR[50-PP]);
{LINE 1-3}
if PBAR[47-PP] >=0 and PBAR[49-PP] >= 0 and PBAR[49-PP]-PLOTBARS >=0 then
begin
VALUE90 = TL_New(DATE[PBAR[47-PP]],TIME[PBAR[47-PP]],P[47-PP ],
DATE[PBAR[49-PP]], TIME[PBAR[49-PP]],P[49-PP]);
Value14=TL_SetColor(VALUE90, red);
{VALUE93 = TL_SetExtRight(VALUE90,TRUE);}
VALUE94 =
TL_SETEND(VALUE90,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS],
TL_GetVALUE(VALUE90,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS])); //
end ;
{LINE 1-4}
if PBAR[47-PP] >= 0 and PBAR[50-PP] >= 0 and PBAR[49-PP]-PLOTBARS >= 0 then
begin
VALUE91 = TL_NEW(DATE[PBAR[47-PP]],TIME[PBAR[47-PP]],P[47-PP ],
DATE[PBAR[50-PP]], TIME[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE91, green);
TL_SETEND(VALUE91,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS],
TL_GETVALUE(VALUE91,DATE[PBAR[49-PP]-PLOTBARS],TIME[PBAR[49-PP]-PLOTBARS]));
end ;
if PBAR[48-PP] >=0 and PBAR[50-PP]-PLOTBARS >= 0 then
begin
{ETA LINE}
IF ETALINE THEN
BEGIN
VALUE92 = TL_NEW(DATE[PBAR[48-PP]],TIME[PBAR[48-PP]],P[48-PP ],
DATE[PBAR[50-PP]], TIME[PBAR[50-PP]],P[50-PP]);
Value14=TL_SetColor(VALUE92, blue);
TL_SETEND(VALUE92,DATE[PBAR[50-PP]-PLOTBARS],TIME[PBAR[50-PP]-PLOTBARS],
TL_GETVALUE(VALUE92,DATE[PBAR[50-PP]-PLOTBARS],TIME[PBAR[50-PP] -PLOTBARS]));
END;
end;
END;
IF DATE = LASTCALCDATE
AND TIME = LASTCALCTIME
AND ZIGZAG = TRUE THEN
BEGIN
JA_SLOPE3 = (P[50] - P[49]) / (PBAR[49] - PBAR[50]);
FOR JLA_CTR = PBAR[49] DOWNTO PBAR[50] BEGIN
PLOT4[JLA_CTR](P[49] + (PBAR[49] - JLA_CTR) *
JA_SLOPE3,"Swings");
END;
END;
FOR W = 1 TO 50
BEGIN
PBAR[W] = PBAR[W]+1;
END;
2014-10-28
237
글번호 79831
답변완료
질문드립니다.
input : P(14);
var1 = RSI(P);
if date != date[1] Then{
Condition1 = false;
Condition2 = false;
Condition3 = false;
}
if dayindex > 0 and crossup(var1,34) Then{
Condition1 = true;
var2 = dayindex;
}
if dayindex > 0 and crossup(c,기준조건) Then{
Condition2 = true;
var3 = dayindex;
}
Condition3 = Condition1 == true and Condition2 == true and var1 > 34 and C > 기준조건;
Condition4 = ExitDate(1) == sdate and PositionProfit(1) > 0;
if dayindex > 0 and dayindex < 40 and abs(var3-var2) <= 6 and Condition4 == false and
Condition3 == true and Condition3[1] == false and c>open Then
buy();
* 위의 매수식에서 기준조건 돌파는 종가기준이지만, 돌파 이前까지의 캔들이 적어도 1개 이상 몸통 전체(시가와 종가 포함,꼬리 제외)가 기준조건 미만이었을 때만 돌파시 매수한다는 조건을 붙여 주세요. (위의 그림을 참고하세요.)
2014-10-28
157
글번호 79830
미카엘 님에 의해서 삭제되었습니다.
2014-10-28
0
글번호 79829