커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
7745
글번호 230811
답변완료
딕셔너리 처럼 사용 가능한 방법이 있을까요?
파이썬에 딕셔너리 같이 사용이 가능한 방법 문의 드립니다.
dic = {"조건1":1,"조건2":2}
위와 같은 딕셔너리처럼 사용가능한 방법이 있을까요?
2024-01-12
813
글번호 175673
답변완료
per 조건
input : N(60),N1(7),per(10);
var : TX1(0),TX2(0),cnt(0),box(0),box1(0);
var : TL1(0),TL2(0),TL3(0),TL4(0),TL5(0),TL6(0),TL7(0),TL8(0),TL9(0),TL10(0);
var : Tcond(False,Data2),i2(0,Data2);
var : box3(0),cond(False),H2(0),L2(0);
Plot1(Data2(c));
For cnt = 0 to 49
{
TL_Delete(TL1[cnt]);
TL_Delete(TL2[cnt]);
TL_Delete(TL3[cnt]);
TL_Delete(TL4[cnt]);
TL_Delete(TL5[cnt]);
TL_Delete(TL6[cnt]);
TL_Delete(TL7[cnt]);
TL_Delete(TL8[cnt]);
TL_Delete(TL9[cnt]);
Text_Delete(TX1[cnt]);
Text_Delete(TX2[cnt]);
TL_Delete(Box[cnt]);
TL_Delete(Box1[cnt]);
}
if Data2(Bdate != Bdate[1]) Then
{
Tcond = False;
i2 = 0;
}
if Tcond == False and Data2(sTime >= 85000) Then
{
Tcond = true;
}
if Tcond == true Then
{
i2 = i2+1;
TL1 = TL_New_Self(sDate,sTime,data2(highest(H,min(N,i2))),NextBarSdate,NextBarStime,data2(highest(H,min(N,i2))));
TL2 = TL_New_Self(sDate,sTime,data2(lowest(L,min(N,i2))),NextBarSdate,NextBarStime,data2(lowest(L,min(N,i2))));
TL_SetColor(TL1,Red);
TL_SetColor(TL2,Blue);
TL_SetSize(TL1,1);
TL_SetSize(TL2,1);
TL_SetExtLeft(TL1,true);
TL_SetExtLeft(TL2,true);
TL3 = TL_New_Self(Data2(sDate[NthHighestBar(1,H,min(N,i2))]),Data2(stime[NthhighestBar(1,H,min(N,i2))]),-9999,Data2(sDate[NthHighestBar(1,H,min(N,i2))]),Data2(stime[NthhighestBar(1,H,min(N,i2))]),9999);
TL_SetColor(TL3,Pink);
TL_SetSize(TL3,5);
TL5 = TL_New(Data2(sDate[NthHighestBar(1,H,min(N,i2))]),Data2(stime[NthhighestBar(1,H,min(N,i2))]),-9999,Data2(sDate[NthHighestBar(1,H,min(N,i2))]),Data2(stime[NthhighestBar(1,H,min(N,i2))]),9999);
TL_SetColor(TL5,Pink);
TL_SetSize(TL5,5);
TL7 = TL_New_Self(sDate,sTime,data2(lowest(L*1.1,min(N,i2))),NextBarSdate,NextBarStime,data2(lowest(L*1.1,min(N,i2))));
TL_SetColor(TL7,Red);
TL_SetSize(TL7,0.5);
TL_SetExtLeft(TL7,true);
TL8 = TL_New_Self(sDate,sTime,data2(lowest(L*1.2,min(N,i2))),NextBarSdate,NextBarStime,data2(lowest(L*1.2,min(N,i2))));
TL_SetColor(TL8,Green);
TL_SetSize(TL8,1);
TL_SetExtLeft(TL8,true);
TL9 = TL_New_Self(sDate,sTime,data2(lowest(L*1.3,min(N,i2))),NextBarSdate,NextBarStime,data2(lowest(L*1.3,min(N,i2))));
TL_SetColor(TL9,Red);
TL_SetSize(TL9,0.5);
TL_SetExtLeft(TL9,true);
TX1 = Text_New_Self(Data2(sDate[NthHighestBar(1,H,min(N,i2))]),Data2(stime[NthhighestBar(1,H,min(N,i2))]),Data2(highest(H+PriceScale*1,min(N,i2))),"■");
TX2 = Text_New_Self(Data2(sDate[NthLowestBar(1,L,min(N,i2))]),Data2(stime[NthLowestBar(1,L,min(N,i2))]),Data2(Lowest(L-PriceScale*1,min(N,i2))),"■");
Text_SetStyle(TX1,2,1);
Text_SetStyle(TX2,2,0);
Text_SetColor(TX1,Blue);
Text_SetColor(TX2,Magenta);
Text_SetSize(tx1,35);
Text_SetSize(tx2,35);
box1 = Box_New(Data2(sDate[NthlowestBar(1,L,min(N,i2))+N1]),Data2(stime[NthlowestBar(1,L,min(N,i2))+N1]),9999,
Data2(sDate[NthlowestBar(1,L,min(N,i2))]),Data2(stime[NthlowestBar(1,L,min(N,i2))]),-9999);
Box_SetColor(box1,Blue);
Box_SetFill(box1,true,40);
box = Box_New_Self(Data2(sDate[NthlowestBar(1,L,min(N,i2))+N1]),Data2(stime[NthlowestBar(1,L,min(N,i2))+N1]),9999,
Data2(sDate[NthlowestBar(1,L,min(N,i2))]),Data2(stime[NthlowestBar(1,L,min(N,i2))]),-9999);
Box_SetColor(box,Blue);
Box_SetFill(box,true,40);
if data2(CrossUp(L,Lowest(L,min(N,i2))*(1+per/100))) Then
{
Box_Delete(box3);
cond = true;
H2 = Data2(H);
L2 = Data2(lowest(L,min(N,i2))*(1+per/100));
box3 = Box_New_Self(sDate[1],sTime[1],L2,Sdate,Stime,9999);
Box_SetColor(box3,Lime);
Box_SetFill(box3,true,40);
TL_Delete(TL10);
TL10=TL_New(sDate,sTime,0,sDate,sTime,9999);
TL_SetColor(TL10,Lime);
TL_SetSize(TL10,5);
}
Else
{
if cond == true Then
{
if data2(H) > H2 Then
H2 =Data2(H);
Box_SetEnd(box3,sDate,sTime,9999);
if Data2(l < lowest(L,min(N,i2))*(1+per/100)) Then
Box_Delete(box3);
}
}
}
N봉중 최저가보다 현재봉 저가가 10퍼센트 이상일 때 생성되는 박스 조건을 (92줄 이후만),
N봉중 최저가가 현재봉으로부터 20봉 이전일 때만 박스 생성으로 조건 추가. (and)
1~60봉 전을 20~60봉 사이 최저가 대비 10퍼센트 저가가 상승시 박스 생성.
N봉중 최저가가 20봉 이내로 가까이 있으면 제외, 멀 때만 생성.
일부만 수정이 안되면 전체를 20봉 이전 조건 추가 등 무관. 감사합니다.
2024-01-12
937
글번호 175670
답변완료
문의 드립니다
안녕하세요
1.국선장 시작부터 피보나치
2.해선장 시작부터 피보나치
3.항생장 시작부터 피보나치을 적용하려고 합니다
각 시장 시작시간부터 장종료때까지 피보나치가 나타나고 각 수열은 변경 가능하게
하고 싶습니다
4. 국선 야간장 시가,고가,저가선을 다음날 주간장에 표시하고 싶습니다
감ㅅ합니다
2024-01-12
641
글번호 175667
2wnwn 님에 의해서 삭제되었습니다.
2024-01-12
8
글번호 175666
답변완료
수식추가
if Data1(CrossUp(C,ma(C,60))) and Data2(C>ma(C,5)) Then
Buy();
if Data1(CrossDown(C,ma(C,60))) and Data2(C<ma(C,5)) Then
Sell();
안녕하세요
숫자
60.5를 전면에서 조정할수 있게 해주세요.
input
2024-01-12
913
글번호 175665
답변완료
수식요청
30분봉에서
지수 5이평이 볼밴(60,2) 하한선을 상향돌파하는 수식을 연구해봐도 안됩니다.
간단히 수식 부탁할까요?
2024-01-12
899
글번호 175664
답변완료
시스템 스위칭 오류 수정 문의 드립니다.
항상 많은 도움 감사드립니다. 시스템식에서 스위칭이 이루어질때 결과 보고서 상의 거래내역에는 문제없이 체크가 되지만 실제 거래에서는 오류가 발생되어 시스템 수정에 대하여 문의 드립니다. 어제 올리신 분의 경우와 비슷한 경우이긴 한테 차이가 있어서 한번 검토부탁드립니다.
오류 내역은 위에 나와 있는 세번째 그림에 나와 있구요..시스템식은 아래와 같습니다.
If MarketPosition == 0 && 조건 A then Sell ("매도",atmarket,def,2);
If MarketPosition <= 0 && 조건 B then buy ("매수",atmarket,def,2);
if IsEntryName("매도") == true Then {
ExitShort("dp5",AtLimit,EntryPrice-25,"",1,1);
if 조건 A-1 Then
ExitShort("매도정리",atmarket,def,"매도");
}
if IsEntryName("매수") == true Then {
ExitLong("Sp4",AtLimit,EntryPrice+35,"",1,1);
if 조건B-1 Then
ExitLong("매수정리",atmarket,def,"매수");
}
두번째 그림에 있는 시스템 보고서의 거래내역이 제대로 실행되는 내역이구요.
세번째 그림에서의 실제 거래 내역의 오류를 보면
if 조건 A-1 Then
ExitShort("매도정리",atmarket,def,"매도");
위에 있는 분할청산 시스템식이 조건이 충족되어서 매수 접수(exitlong)를 발생시켰는데 계약이 체결되기 전에
If MarketPosition <= 0 && 조건 B then buy ("매수",atmarket,def,2);
위의 매수 2계약 접수를 진행시켜 오류가 났으며 결국 이 매수는 진행되지 않았습니다.
2번째 그림의 시스템 보고서상에는 문제없이 거래가 종료되었으나 실제로는
if IsEntryName("매수") == true Then {
{
ExitLong("Sp4",AtLimit,EntryPrice+35,"",1,1);
if 조건B-1 Then
ExitLong("매수정리",atmarket,def,"매수");
위의 "매수"에 대한 분할청산 건 매도 2건이 미체결약정으로 남아 있는 상태입니다.
만일에 예수금이 3,4개의 계약이 가능한 상황이었다면 위와 같은 오류가 나지 않았을 것이라는 것은 알고 있습니다. 2계약에 해당되는 예수금을 가지고 위와 같은 오류가 발생하지 않게 하려면 시스템식을 어떻게 수정해야 할까요?
아니면 시스템 매매 설정에서 보완할 수 있는 방법이 있을까요?
2024-01-12
1282
글번호 175662
회원 님에 의해서 삭제되었습니다.
2024-01-12
0
글번호 175659
답변완료
지표 질문입니다
20 캔들 천정에서 7번째 캔들 저가를 표시한다
20 캔들 바닥에서 7번째 캔들 고가를 표시한다
감사합니다
2024-01-11
997
글번호 175658