커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1637
글번호 230811
답변완료
시스템식 부탁드립니다.
안녕하세요.
아래 조건에 맞는 시스템식 부탁드립니다.
매수 진입 후 다음 매수 진입전까지 이전 진입가격대비 최대수익 및 최대손실을 알고 싶습니다.
매도 진입 후 다음 매도 진입전까지 이전 진입가격대비 최대수익 및 최대손실을 알고 싶습니다.
매수/매도 진입후 익절, 손절 또는 청산 이후에도
다음 매수/매도 전까지의 직전진입가격 대비 최대수익 및 최대손실을 알고 싶습니다.
시스템식 부탁드립니다.
감사합니다.
2022-10-23
962
글번호 163216
고박사122 님에 의해서 삭제되었습니다.
2022-10-23
144
글번호 163215
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2022-10-22
10
글번호 163214
답변완료
나스닥100지수 진입시간 제한 코드
안녕하세요.
나스닥100지수로 시뮬레이션시 아래와 같이 진입시간을 9:45분 이후로 코드작성을 했는데요.
첨부한 사진 10월 18일보면 시가부터 바로 매수가 들어가지는데
혹시 어떻게 해야될까요?
나스닥100 차트기준 9시30분 장 시작하면, 15분후인 9시45분부터 진입하고싶습니다.
코드의 매수시간진입은 아래와 같이 작성했습니다.
#매수진입
if ((094500 <= sTime) and (sTime <= 161859)) Then {
If 매수조건1 Then{
Buy("B",AtStop,매수가격1);
}
}
2022-10-22
1070
글번호 163213
답변완료
수식수정
안녕하세요 늘 도움 감사드립니다.
아래의 수식으로 원하는 시간을 지정해서 볼수 있도록 수정부탁드립니다
그리고 가격이 표시 될수 있도록 해주시면 더 감사합니다.
Input:chngRate(0.3),굵기(1);
input : Per1(0),Per2(23.6),Per3(38.2),Per4(50.0),Per5(61.8),Per6(76.4),Per7(100),Per8(123.6),Per9(161.8);
Var : j(0),lastHiVal(0),lastLoVal(0),turnPntBit(""),TL1(0);
var : TL11(0),TL12(0),TL13(0),TL14(0),TL15(0),TL16(0),TL17(0),TL18(0),TL19(0);
var : Tx11(0),Tx12(0),Tx13(0),Tx14(0),Tx15(0),Tx16(0),Tx17(0),Tx18(0),Tx19(0);
Array:valArr[10](0),barArr[10](0),turnPntArr[10]("");
For j = 0 To 9
{
barArr[j] = barArr[j] + 1;
}
Condition1 = Min(valArr[1],valArr[2]) * (1 + (chngRate/100)) < H and lastHiVal < H;
Condition2 = Max(valArr[1],valArr[2]) * (1 - (chngRate/100)) > L and (lastLoVal > L || lastLoVal == 0);
If Condition1 Then { lastHiVal = H; lastLoVal = 0; }
If Condition2 Then { lastLoVal = L; lastHiVal = 0; }
turnPntBit = "";
If Condition1 and Condition2 Then
{
If Max(valArr[1],valArr[2]) < H and Min(valArr[1],valArr[2]) > L Then
turnPntBit = "HiLo";
Else If Max(valArr[1],valArr[2]) < H Then turnPntBit = "Hi";
Else If Min(valArr[1],valArr[2]) > L Then turnPntBit = "Lo";
}
Else If Condition1 Then turnPntBit = "Hi";
Else If Condition2 Then turnPntBit = "Lo";
If turnPntBit <> "" Then
{
If turnPntBit == "HiLo" Then
{
valArr[1] = IFF(turnPntArr[1] == "Hi",H,L);
barArr[1] = 0;
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
If turnPntArr[1] == "Hi" Then
turnPntBit = "Lo";
Else
turnPntBit = "Hi";
}
If turnPntBit <> turnPntArr[1] Then
{
for j = 8 downto 1
{
valArr[j+1] = valArr[j];
barArr[j+1] = barArr[j];
turnPntArr[j+1] = turnPntArr[j];
}
}
If turnPntBit <> turnPntArr[1] or
(turnPntBit == turnPntArr[1] and
((turnPntBit == "Hi" and valArr[1] < H) or
(turnPntBit == "Lo" and valArr[1] > L))) Then
{
valArr[1] = IFF(turnPntBit == "Hi",H,L);
barArr[1] = 0;
turnPntArr[1] = turnPntBit;
If turnPntArr[1][1] <> turnPntArr[1][0] Then
{
TL1 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[2],sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
value1 = valArr[1]-valArr[2];
TL_Delete(TL11);
TL_Delete(TL12);
TL_Delete(TL13);
TL_Delete(TL14);
TL_Delete(TL15);
TL_Delete(TL16);
TL_Delete(TL17);
TL_Delete(TL18);
TL_Delete(TL19);
TL_SetExtRight(TL11,False);
TL_SetExtRight(TL12,False);
TL_SetExtRight(TL13,False);
TL_SetExtRight(TL14,False);
TL_SetExtRight(TL15,False);
TL_SetExtRight(TL16,False);
TL_SetExtRight(TL17,False);
TL_SetExtRight(TL18,False);
TL_SetExtRight(TL19,False);
TL11 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per1/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per1/100));
TL12 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per2/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per2/100));
TL13 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per3/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per3/100));
TL14 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per4/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per4/100));
TL15 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per5/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per5/100));
TL16 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per6/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per6/100));
TL17 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per7/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per7/100));
TL18 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per8/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per8/100));
TL19 = TL_New(sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per9/100),sDate[barArr[1]],sTime[barArr[1]],valArr[1]-value1*(per9/100));
TL_SetExtRight(TL11,true);
TL_SetExtRight(TL12,true);
TL_SetExtRight(TL13,true);
TL_SetExtRight(TL14,true);
TL_SetExtRight(TL15,true);
TL_SetExtRight(TL16,true);
TL_SetExtRight(TL17,true);
TL_SetExtRight(TL18,true);
TL_SetExtRight(TL19,true);
TL_SetColor(TL11,RED);
TL_SetColor(TL12,BLUE);
TL_SetColor(TL13,MAGENTA);
TL_SetColor(TL14,YELLOW);
TL_SetColor(TL15,GRAY);
TL_SetColor(TL16,GREEN);
TL_SetColor(TL17,BLUE);
TL_SetColor(TL18,PINK);
TL_SetColor(TL19,Lblue);
TL_SetSize(TL11,굵기);
TL_SetSize(TL12,굵기);
TL_SetSize(TL13,굵기);
TL_SetSize(TL14,굵기);
TL_SetSize(TL15,굵기);
TL_SetSize(TL16,굵기);
TL_SetSize(TL17,굵기);
TL_SetSize(TL18,굵기);
TL_SetSize(TL19,굵기);
tx11 = Text_New(sdate,stime,TL_GetValue(TL11,sdate,stime),NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")");
tx12 = Text_New(sdate,stime,TL_GetValue(TL12,sdate,stime),NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")");
tx13 = Text_New(sdate,stime,TL_GetValue(TL13,sdate,stime),NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")");
tx14 = Text_New(sdate,stime,TL_GetValue(TL14,sdate,stime),NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")");
tx15 = Text_New(sdate,stime,TL_GetValue(TL15,sdate,stime),NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")");
tx16 = Text_New(sdate,stime,TL_GetValue(TL16,sdate,stime),NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")");
tx17 = Text_New(sdate,stime,TL_GetValue(TL17,sdate,stime),NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")");
tx18 = Text_New(sdate,stime,TL_GetValue(TL18,sdate,stime),NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")");
tx19 = Text_New(sdate,stime,TL_GetValue(TL19,sdate,stime),NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")");
Text_Delete(Tx11);
Text_Delete(Tx12);
Text_Delete(Tx13);
Text_Delete(Tx14);
Text_Delete(Tx15);
Text_Delete(Tx16);
Text_Delete(Tx17);
Text_Delete(Tx18);
Text_Delete(Tx19);
Text_SetStyle(tx11,2,1);
Text_SetStyle(tx12,2,1);
Text_SetStyle(tx13,2,1);
Text_SetStyle(tx14,2,1);
Text_SetStyle(tx15,2,1);
Text_SetStyle(tx16,2,1);
Text_SetStyle(tx17,2,1);
Text_SetStyle(tx18,2,1);
Text_SetStyle(tx19,2,1);
}
Else
{
value1 = valArr[1]-valArr[2];
TL_SetEnd(TL1,sDate[barArr[1]],sTime[barArr[1]],valArr[1]);
TL_SetBegin(TL11,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per1/100));
TL_SetEnd(TL11,sDate,sTime,valArr[1]-value1*(per1/100));
TL_SetBegin(TL12,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per2/100));
TL_SetEnd(TL12,sDate,sTime,valArr[1]-value1*(per2/100));
TL_SetBegin(TL13,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per3/100));
TL_SetEnd(TL13,sDate,sTime,valArr[1]-value1*(per3/100));
TL_SetBegin(TL14,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per4/100));
TL_SetEnd(TL14,sDate,sTime,valArr[1]-value1*(per4/100));
TL_SetBegin(TL15,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per5/100));
TL_SetEnd(TL15,sDate,sTime,valArr[1]-value1*(per5/100));
TL_SetBegin(TL16,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per6/100));
TL_SetEnd(TL16,sDate,sTime,valArr[1]-value1*(per6/100));
TL_SetBegin(TL17,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per7/100));
TL_SetEnd(TL17,sDate,sTime,valArr[1]-value1*(per7/100));
TL_SetBegin(TL18,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per8/100));
TL_SetEnd(TL18,sDate,sTime,valArr[1]-value1*(per8/100));
TL_SetBegin(TL19,sDate[barArr[2]],sTime[barArr[2]],valArr[1]-value1*(per9/100));
TL_SetEnd(TL19,sDate,sTime,valArr[1]-value1*(per9/100));
Text_SetLocation(Tx11,sdate,stime,TL_GetValue(TL11,sdate,stime));
Text_SetLocation(Tx12,sdate,stime,TL_GetValue(TL12,sdate,stime));
Text_SetLocation(Tx13,sdate,stime,TL_GetValue(TL13,sdate,stime));
Text_SetLocation(Tx14,sdate,stime,TL_GetValue(TL14,sdate,stime));
Text_SetLocation(Tx15,sdate,stime,TL_GetValue(TL15,sdate,stime));
Text_SetLocation(Tx16,sdate,stime,TL_GetValue(TL16,sdate,stime));
Text_SetLocation(Tx17,sdate,stime,TL_GetValue(TL17,sdate,stime));
Text_SetLocation(Tx18,sdate,stime,TL_GetValue(TL18,sdate,stime));
Text_SetLocation(Tx19,sdate,stime,TL_GetValue(TL19,sdate,stime));
Text_SetString(Tx11,NumToStr(Per1,2)+"%("+NumToStr(TL_GetValue(TL11,sdate,stime),2)+")");
Text_SetString(Tx12,NumToStr(Per2,2)+"%("+NumToStr(TL_GetValue(TL12,sdate,stime),2)+")");
Text_SetString(Tx13,NumToStr(Per3,2)+"%("+NumToStr(TL_GetValue(TL13,sdate,stime),2)+")");
Text_SetString(Tx14,NumToStr(Per4,2)+"%("+NumToStr(TL_GetValue(TL14,sdate,stime),2)+")");
Text_SetString(Tx15,NumToStr(Per5,2)+"%("+NumToStr(TL_GetValue(TL15,sdate,stime),2)+")");
Text_SetString(Tx16,NumToStr(Per6,2)+"%("+NumToStr(TL_GetValue(TL16,sdate,stime),2)+")");
Text_SetString(Tx17,NumToStr(Per7,2)+"%("+NumToStr(TL_GetValue(TL17,sdate,stime),2)+")");
Text_SetString(Tx18,NumToStr(Per8,2)+"%("+NumToStr(TL_GetValue(TL18,sdate,stime),2)+")");
Text_SetString(Tx19,NumToStr(Per9,2)+"%("+NumToStr(TL_GetValue(TL19,sdate,stime),2)+")");
}
}
}
TL_SetSize(TL1,굵기);
TL_SetColor(TL1,black);
plot1(valArr[1]);
plot2(valArr[2]);
2022-10-22
959
글번호 163212
답변완료
지표식 문의합니다
안녕하세요 수고많으십니다
다음과 같은 지표식 문의드립니다
매시간대별로 5분간의 최고가와 최저가를 나타내는 지표입니다
- 9시부터 10시사이는 9시부터 9시5분간의 최고가 최저가 표시
- 10시부터 11시사이는 10시부터 10시5분간의 최고가 최저가 표시
- 11시부터 12시사이는 11시부터 11시5분간의 최고가 최저가 표시
이런식으로 매시간마다 최고가 최저가를 일직선으로 표시하는 지표식입니다
감사합니다
2022-10-22
1256
글번호 163211
종호 님에 의해서 삭제되었습니다.
2022-10-22
19
글번호 163210
고성 님에 의해서 삭제되었습니다.
2022-10-23
22
글번호 163209
답변완료
종목검색수식
안녕하세요.
아래는 이평 쌍바닥 패턴을 검색식으로 바꾼 건데 이수식 변경좀 부탁드립니다.
s = sum(1) ;
value1 = ema( c, 5 ) ;
value2 = ma( c, 20 ) ;
condition1 = value1 > value1(1) && value1(1) < value1(2) ;
condition2 = value1 < value1(1) && value1(1) > value1(2) ;
value3 = valuewhen(1, condition1, s ) ;
value4 = valueWhen(1, condition1, value1 ) ;
value5 = valueWhen(1, condition1, value2 ) ;
value6 = valuewhen(1, condition2, s ) ;
value7 = valueWhen(1, condition2, value1 ) ;
value8 = valueWhen(1, condition2, value2 ) ;
value9 = valuewhen(2, condition1, s ) ;
value10 = valueWhen(2, condition1, value1 ) ;
value11 = valueWhen(2, condition1, value2 ) ;
condition3 = value3 > value6 && value6 > value9 ;
condition4 = value10 < value11 && value7 > value8 && value4 > value5 && value7 > value4 ;
condition5 = condition3 && condition4 ;
condition6 = condition5 && !condition5(1) ;
crossup( c, value1 ) && sum( condition6, 3 ) >0 ;
좋은 하루 되세요...
2022-10-22
1067
글번호 163208