커뮤니티
예스랭귀지 Q&A
답변완료
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1692
글번호 230811
답변완료
numtostr
안녕하세요!!
1번
NumToStr(Figure, N) : 아래 예시처럼 Figure의 자릿수를 원하는 format 으로 만들 수 있는지요?
예시: NumToStr(11.04, 2) >> "0011.04" , NumToStr(12.001, 0) >> "00012"
---------------------------
ss = NumToStr(C,0);
2번 print 문에서 format 적용 여부
if LastBarOnChart == 1 Then
Print("C:₩종가.txt", "%10.0f, %10.0s", c, ss); // string 표현 포맷적용 할 수 없나요?
2022-03-31
957
글번호 157631
답변완료
수식 부탁드립니다.
국내선물 90틱기준 전일 고점과 저점 라인 수식 부탁드립니다
2022-03-31
1006
글번호 157627
답변완료
Y축 스케일 적용이 안됩니다~
안녕하세요~
알려주신대로 기본 차트 봉을 클릭해서 화면으로 바꿔도 보조지표는 같이 설정이 바뀌지 않습니다.
또한 보조지표를 더블 클릭해서 화면으로 바꿔버리면 맞지를 않습니다..
파일 첨부합니다. 풋의 종가가 3.86인데.. 이녀석의 기준가가(연두색 선) 13.25입니다.
정상적이면 캔들이 연두색선이 아니라 하단 파란선 쪽에 있어야 하는데
보조지표 스케일을 화면에 맞춰버리니까 이렇게 틀어져 버린거 같습니다..
종목의 캔들 가격에 맞추되, Y축만 안눌리게 하고 싶습니다..
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 지표 적용시 Y축이 눌리는 현상에 대한 문의
> 안녕하세요
예스스탁입니다.
기본차트속성의 Y축 탭에서
최대/최소를 화면(기본차트)로 변경하시면 됩니다.
기본설정은 화면(기본차트+지표) 지표포함해서 Y축이 스케일됩니다.
기본차트속성은 차트에서
기본차트종목의 봉을 더블클릭하면 나타납니다.
즐거운 하루되세요
2022-03-31
1003
글번호 157624
답변완료
틀린곳 수정 부탁 드립니다.
<90틱 매도매수신호>
var : mav1(0),mav2(0),mav3(0),T1(0),T2(0),T3(0);
mav1 = ma(c,5);
mav2 = ma(c,20);
mav3 = ma(c,60);
if mav1 > mav1[1] Then
T1 = 1;
if mav1 > mav1[1] Then
T1 = -1;
if T1 == 1 and T1[1] != 1 Then
var1 = 0;
if T1 == 1 and C > O and (C+O)/2 >= mav1 and mav2 > mav2[1] and mav1 > mav2 Then{
var1 = var1+1;
if var1 == 1 Then
Buy("5매수");
}
if T1 == -1 and T1[1] != -1 Then
Var2 = 0;
if T1 == -1 and C < O and (C+O)/2 <= mav1 and mav2 < mav2[1] and mav1 < mav2 Then{
var2 = var2+1;
if var2 == 1 Then
Sell("5매도");
}
2022-03-31
803
글번호 157617
답변완료
문의
이동평균 5일선 10일선이
정배열이면서
둘다 상승추세인
종목 검색식 부탁드립니다.
2022-03-31
1059
글번호 157616
답변완료
지표문의 드립니다
안녕하세요, 도움받고 있어서 감사드립니다.
아래와 같이 data1의 일간 매수가 55억이 넘게되면,
상단에 하늘색타원을 자동으로 그려지게 하고 싶습니다. 함수 부탁드립니다.
2022-03-31
905
글번호 157615
broscoff 님에 의해서 삭제되었습니다.
2022-03-31
32
글번호 157611
답변완료
같은 봉에서 매도 신호와 매수신호가 동시에 나갈때 매도우선으로 수정요망 합니다.
제목 에서와 같이 아래의 수식을 사용하여 하락시 분할매수와 상승시 분할매수를 동시에 하여 수식 조건에 맞으면 상승시 매수분 따로 전량 매도하고, 하락시 매수분 전량매도 하도록 되어 있는데, 가끔씩 매도 분봉이나 일봉에서 매수와 매도 신호가 동시에 나가는 경우가 있어서 이것을 동시 신호일때 매도 우선으로 수정하고 싶습니다. 고견을 부탁 드립니다.
input : 금액(10000000);
var : Bcond(False),Scond(False);
var1 = Highest(c,15);
Var2 = Lowest(c,30);
var3 = Highest(c,20);
Var4 = Lowest(c,20);
var5 = Highest(c,20);
Var6 = Lowest(c,20);
var7 = Highest(c,20);
Var8 = Lowest(c,20);
var9 = Highest(c,20);
Var10 = Lowest(c,20);
Bcond = False;
if Bcond == False and CrossUp(c,var1[1]) and Condition1 == False Then
{
Bcond = true;
Buy("a1",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossUp(c,var3[1]) and Condition3 == False Then
{
Bcond = true;
Buy("a3",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossUp(c,var5[1]) and Condition5 == False Then
{
Bcond = true;
Buy("a5",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossUp(c,var7[1]) and Condition7 == False Then
{
Bcond = true;
Buy("a7",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossUp(c,var9[1]) and Condition9 == False Then
{
Bcond = true;
Buy("a9",OnClose,DEf,((금액*(10/100))/C));
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "a1" Then
Condition1 = true;
if LatestEntryName(0) == "a3" Then
Condition3 = true;
if LatestEntryName(0) == "a5" Then
Condition5 = true;
if LatestEntryName(0) == "a7" Then
Condition7 = true;
if LatestEntryName(0) == "a9" Then
Condition9 = true;
}
Scond = False;
if Scond == False and CrossDown(c,var2[1]) and Condition1 == true Then
{
Condition1 = False;
ExitLong("ax2",OnClose,DEf,"a1");
}
if Scond == False and CrossDown(c,var2[1]) and Condition3 == true Then
{
Condition3 = False;
ExitLong("ax4",OnClose,DEf,"a3");
}
if Scond == False and CrossDown(c,var2[1]) and Condition5 == true Then
{
Condition5 = False;
ExitLong("ax6",OnClose,DEf,"a5");
}
if Scond == False and CrossDown(c,var2[1]) and Condition7 == true Then
{
Condition7 = False;
ExitLong("ax8",OnClose,DEf,"a7");
}
if Scond == False and CrossDown(c,var2[1]) and Condition9 == true Then
{
Condition9 = False;
ExitLong("ax10",OnClose,DEf,"a9");
}
}
Else
{
Condition1 = False;
Condition3 = False;
Condition5 = False;
Condition7 = False;
Condition9 = False;
}
Var11 = Lowest(c,20);
var12 = Highest(c,200);
Var13 = Lowest(c,40);
var14 = Highest(c,40);
Var15 = Lowest(c,55);
var16 = Highest(c,55);
Var17 = Lowest(c,60);
var18 = Highest(c,60);
Var19 = Lowest(c,80);
var20 = Highest(c,80);
Bcond = False;
if Bcond == False and CrossDown(c,var11[1]) and Condition11 == False Then
{
Bcond = true;
Buy("b1",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossDown(c,var13[1]) and Condition13 == False Then
{
Bcond = true;
Buy("b3",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossDown(c,var15[1]) and Condition15 == False Then
{
Bcond = true;
Buy("b5",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossDown(c,var17[1]) and Condition17 == False Then
{
Bcond = true;
Buy("b7",OnClose,DEf,((금액*(10/100))/C));
}
if Bcond == False and CrossDown(c,var19[1]) and Condition19 == False Then
{
Bcond = true;
Buy("b9",OnClose,DEf,((금액*(10/100))/C));
}
if MarketPosition == 1 Then
{
if CurrentContracts > CurrentContracts[1] Then
{
if LatestEntryName(0) == "b1" Then
Condition11 = true;
if LatestEntryName(0) == "b3" Then
Condition13 = true;
if LatestEntryName(0) == "b5" Then
Condition15 = true;
if LatestEntryName(0) == "b7" Then
Condition17 = true;
if LatestEntryName(0) == "b9" Then
Condition19 = true;
}
Scond = False;
if Scond == False and CrossUp(c,var12[1]) and Condition11 == true Then
{
Condition11 = False;
ExitLong("bx2",OnClose,DEf,"b1");
}
if Scond == False and CrossUp(c,var12[1]) and Condition13 == true Then
{
Condition13 = False;
ExitLong("bx4",OnClose,DEf,"b3");
}
if Scond == False and CrossUp(c,var12[1]) and Condition15 == true Then
{
Condition15 = False;
ExitLong("bx6",OnClose,DEf,"b5");
}
if Scond == False and CrossUp(c,var12[1]) and Condition17 == true Then
{
Condition17 = False;
ExitLong("bx8",OnClose,DEf,"b7");
}
if Scond == False and CrossUp(c,var12[1]) and Condition19 == true Then
{
Condition19 = False;
ExitLong("bx10",OnClose,DEf,"b9");
}
}
Else
{
Condition11 = False;
Condition13 = False;
Condition15 = False;
Condition17 = False;
Condition19 = False;
}
2022-03-31
485
글번호 157610
카이니스 님에 의해서 삭제되었습니다.
2022-03-30
101
글번호 157606