커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
4372
글번호 230811
답변완료
질문드립니다.
Var : H5(0);
H5 = (dayHigh[1]/DayLow[1])* DayClose[1];
Plot1(H5,"H5",RED);
위의 수식을 사용했을 경우 사진보시는 것과같이 곡선으로 표현이 되는데요.
이것을 수직선으로 표현할려면 어떻게 해야할까요?
2017-06-13
204
글번호 110387
답변완료
재문의 드립니다.
53652번 문의에서 두선 사이를 색채우기 하지않고 차트에 세로(수직으로) 채우기를 하고 싶습니다. 다시한번 살펴주시기 바랍니다.
수고하세요!!!
2017-06-13
152
글번호 110386
답변완료
일일매매횟수 제한
항상 감사드립니다...
아래의 시스템식은 장시작시 초기화 되어 전일매매와 상관없이 당일 새롭게 시작되는 식입니다.
그리고 하루매매횟수를 3회로 제한하는데 신호가 제어가 되질 않습니다
++++++++++++++++++++++++++++++++++++++
아래식을 다음과 같이 수정코저 합니다
1.전일마지막 신호와 연계해서 동일방향 재진입금지
2.당일 매매횟수를 3회로 제한
3.당일 첫번째 신호는 매수조건1,매도조건1 일때 신호발생
두번째 신호부터는 매수조건2,매도조건2 일때 신호발생(현재의 매수매도조건식)
### 동일방향 재진입금지/전일 마지막신호와 무관하게 진입 ###
var : entrycnt(0),T1(0),count1(0);
if stime == 170000 or (stime > 170000 and stime[1] < 170000) Then {
Entrycnt = 0;
T1 = 0;
count1 = 0;
}
if MarketPosition != 0 and MarketPosition != MarketPosition[1] then
Entrycnt = Entrycnt+1;
#####################################################
if (stime >= 170000 or stime < 170000) Then{
#매수조건이면 T1는 1, 카운트 1증가
if T1 <= 0 and uparoon>dnaroon and uparoon>50 and macdosc>0 and c>var48 and c>var52[25] and adxv1>20 and dp2>dm2 and stok80>50 then {
T1 = 1;
count1 = count1+1;
#카운트가 3보다 작거나 같을때 나머지 포지션 조건 만족할때 진입
if count1 <= 3 and ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != 1) or (MarketPosition == -1)) Then #동일방향 재진입금지#
BUY("B1_stok80");
}
#매도조건이면 T1는 -1, 카운트 1증가
if T1 >= 0 and uparoon<dnaroon and dnaroon>50 and macdosc <0 and c<var48 and c<var52[25] and adxv1>20 and dp2<dm2 and stok80<50 Then{
T1 = -1;
count1 = count1+1;
#카운트가 3보다작거나 같을때 나머저 포지션 조건 만족할때 진입
if count1 <= 3 and ((entrycnt == 0) or (entrycnt >= 1 and MarketPosition == 0 and MarketPosition(1) != -1) or (MarketPosition == 1)) then #동일방향 재진입금지#
sell("S1_stok80");
}
}
if stime == 150000 or (stime > 150000 and stime[1] < 150000) Then{
exitlong("당일매수청산");
ExitShort("당일매도청산");
}
감사합니다
2017-06-13
156
글번호 110385
답변완료
다시 한번 검토 해 주십시요
NO.53653 과 관련 입니다.
피라미딩 설정창에서 누적허용 수량을 최대한 늘려보와도 NO.53653 그림1 차트에서처럼
여전히 일부구간에서 진입신호가 나오지 않는 것은 마찬가지 입니다.
이를 면밀히 확인해 보니
전환가격 이후 역방향 신호 구간의 봉에서는 진입신호가 나오지 않는 것으로 확인이 됩니다.
모든 봉에서 진입신호가 나올 수 있도록 수정 해 주시면 감사하겠습니다.
2017-06-13
141
글번호 110384
관리자에 의해 프로그램 사용법 QnA로 이동되었습니다
2017-06-13
13
글번호 110383
매매클리닉 님에 의해서 삭제되었습니다.
2017-06-13
7
글번호 110377
답변완료
부탁 드립니다.
변환 부탁 드립니다.
경배로 감사 인사 올립니다.
pc=c>o*(1+0.5/100);
pcv=valuewhen(1,pc,v);
2017-06-13
116
글번호 110373
답변완료
수식완성 부탁합니다.
아래 수식을 적용한 결과
피라미딩 설정시 모든진입신호허용으로 할때 그림 1 차트의 원 안에서와 같이 일부 구간에서 진입신호가 발생하지 않는 구간이 있습니다.
이를 모든 구간에서 진입신호가 발생하도록 수정하여 주시면 대단히 감사 하겠습니다.
아래수식
Input:상승전환가격(0.5),하락전환가격(0.5),종가사용여부(1),파동선두께(1),수치표시(1);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분(""),
TL1(0),Text1(0);
Array:고[10,4](0),저[10,4](0); // 1:가격,2:Index,3:sDate,4:sTime
#==========================================#
HH = IFF(종가사용여부 == 1,C,H);
LL = IFF(종가사용여부 == 1,C,L);
If Index == 0 Then
{
고[1,1] = HH;
고[1,2] = 0;
고[1,3] = sDate;
고[1,4] = sTime;
저[1,1] = LL;
저[1,2] = 0;
저[1,3] = sDate;
저[1,4] = sTime;
}
If Index > 0 Then // Index가 0일때는 이전 봉이 없으므로 Index가 1일때부터 1씩 증가
{
hiBar = hiBar + 1; // 최고점을 찍은 고[저]가의 위치를 저장 해놓기 위해 봉번호를 카운트한다.
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 0; // 현재 봉이 최고가이면 봉번호를 0으로 초기화
If LL[loBar] > LL Then loBar = 0;
Condition1 = 저[1,1] + 상승전환가격 < HH and hiBar == 0;
// 최소변동률지그재그와 비교했을 때 비율 대신 가격을 사용한 게 다르다.
// 전저점에서 전환가격만큼 더한 값보다 고가가 크다면 추세가 변한 것으로 보고 신규 고점으로 인식
Condition2 = 고[1,1] - 하락전환가격 > LL and loBar == 0;
// 전고점에서 전환가격만큼 뺀 값보다 저가가 작다면 추세가 변한 것으로 보고 신규 저점으로 인식
처리구분 = "";
If Condition1 and Condition2 Then // 고점과 저점 조건 동시 만족
{
If 최종꼭지점 == "저점" Then
{
If 저[1,1] > LL Then 처리구분 = "저점처리";
Else 처리구분 = "고점처리";
}
Else If 최종꼭지점 == "고점" Then
{
If 고[1,1] < HH Then 처리구분 = "고점처리";
Else 처리구분 = "저점처리";
}
}
Else If Condition1 Then 처리구분 = "고점처리";
Else If Condition2 Then 처리구분 = "저점처리";
#==========================================#
If 처리구분 == "고점처리" Then
{
If 최종꼭지점 == "저점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
고[j,jj] = 고[j-1,jj];
}
}
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
// 다음 봉의 고가가 기준 고가로 인식되려면 hiBar 값이 0이 되어야 한다.
// 봉이 바뀔 때마다 hiBar의 값을 1씩 증가시키므로 다음 봉의 hiBar 값은 0이 된다.
loBar = -1;
TL1 = TL_New(저[1,3],저[1,4],저[1,1],고[1,3],고[1,4],고[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(고[1,3],고[1,4],고[1,1],NumToStr(고[1,1],2));
Text_SetStyle(Text1, 2, 1);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Red);
}
Else If 고[1,1] < HH[hiBar] Then // 1번 고점보다 높은 고가 출현
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,고[1,3],고[1,4],고[1,1]);
// 시작점은 변동없고 끝점의 위치가 현재 봉으로 연장된 것임
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,고[1,3],고[1,4],고[1,1]);
Text_SetString(Text1,NumToStr(고[1,1],2));
}
}
최종꼭지점 = "고점";
}
#==========================================#
If 처리구분 == "저점처리" Then
{
If 최종꼭지점 == "고점" Then
{
For j = 10 DownTo 2
{
For jj = 1 To 4
{
저[j,jj] = 저[j-1,jj];
}
}
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL1 = TL_New(고[1,3],고[1,4],고[1,1],저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text1 = Text_New(저[1,3],저[1,4],저[1,1],NumToStr(저[1,1],2));
Text_SetStyle(Text1, 2, 0);
}
TL_SetSize(TL1,파동선두께);
TL_SetColor(TL1,Blue);
}
Else If 저[1,1] > LL[loBar] Then
{
저[1,1] = LL[loBar];
저[1,2] = Index - loBar;
저[1,3] = sDate[loBar];
저[1,4] = sTime[loBar];
hiBar = -1;
loBar = -1;
TL_SetEnd(TL1,저[1,3],저[1,4],저[1,1]);
If 수치표시 == 1 Then
{
Text_SetLocation(Text1,저[1,3],저[1,4],저[1,1]);
Text_SetString(Text1,NumToStr(저[1,1],2));
}
}
최종꼭지점 = "저점";
}
#===========================================#
#===========================================#
var1 = iff(최종꼭지점 == "고점",1,iff(최종꼭지점 == "저점",-1,0));
If var1 == 1 and 저[1,1] >= 저[2,1] Then Buy("b1");
If var1 == -1 and 고[1,1] <= 고[2,1] Then Sell("s1");
2017-06-13
206
글번호 110366
답변완료
문의드립니다.
선물차트 기준으로 문의드립니다.
1. 단순이평 ma40선과 ma138선의 중간선을 만듭니다.
2. 틱차트에 10분봉차트의 ma30선을 나타냅니다.
3. 위의 1선이 2선보다 위에 있을때 세로로 분홍색 색채우기를 하고,
1선이 2선보다 아래에 있을때 파란색으로 색채우기를 하고 싶습니다.
수식을 어떻게 작성해야 하는지요? 부탁드립니다. 수고하세요!!!
2017-06-13
113
글번호 110365