커뮤니티
예스랭귀지 Q&A
[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내
안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
2026-02-27
1456
글번호 230811
답변완료
문의 드립니다.
input : StartTime(70000),EndTime(50000);
input : 익절틱수(50),손절틱수(0);
var : Tcond(False),entry(0);
Variables: Mom(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] or (sDate != Date) Then
SetStopEndofday(Endtime);
}
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
{
Tcond = False;
}
if Tcond == true Then
{
if L ==lowest(L,1) and highest(H,2) >= lowest(L,2)+PriceScale*1 Then
{
Buy("b",AtStop,(highest(H,2)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
ExitShort();
}
if H == highest(H,1) and lowest(L,2) <= highest(H,2)+PriceScale*1 Then
{
Sell("s",AtStop,(lowest(L,2)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 2 Then
ExitLong();
if L ==lowest(L,1) and highest(H,2) >= lowest(L,2)+PriceScale*10 Then
{
Buy("b1",AtStop,(highest(H,2)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
ExitShort();
if H == highest(H,1) and lowest(L,2) <= highest(H,2)+PriceScale*10 Then
{
Sell("s1",AtStop,(lowest(L,2)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 2 Then
ExitLong();
if L ==lowest(L,1) and highest(H,2) >= lowest(L,2)+PriceScale*10 Then
{
Buy("b2",AtStop,(highest(H,2)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
ExitShort();
if H == highest(H,1) and lowest(L,2) <= highest(H,2)+PriceScale*10 Then
{
Sell("s2",AtStop,(lowest(L,2)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 2 Then
ExitLong();
if L ==lowest(L,1) and highest(H,2) >= lowest(L,2)+PriceScale*1 Then
{
Buy("b3",AtStop,(highest(H,2)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
ExitShort();
if H == highest(H,1) and lowest(L,2) <= highest(H,2)+PriceScale*1 Then
{
Sell("s3",AtStop,(lowest(L,2)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 2 Then
ExitLong();
if L ==lowest(L,1) and highest(H,2) >= lowest(L,2)+PriceScale*10 Then
{
Buy("b4",AtStop,(highest(H,2)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
ExitShort();
if H == highest(H,1) and lowest(L,2) <= highest(H,2)+PriceScale*10 Then
{
Sell("s4",AtStop,(lowest(L,2)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 2 Then
ExitLong();
if L ==lowest(L,1) and highest(H,2) >= lowest(L,2)+PriceScale*10 Then
{
Buy("b5",AtStop,(highest(H,2)+lowest(L,1))/2);
}
if MarketPosition == 1 and BarsSinceEntry == 2 Then
ExitShort();
if H == highest(H,1) and lowest(L,2) <= highest(H,2)+PriceScale*10 Then
{
Sell("s5",AtStop,(lowest(L,2)+highest(H,1))/2);
}
if MarketPosition == -1 and BarsSinceEntry == 2 Then
ExitLong();
SetStopProfittarget(PriceScale*익절틱수,PointStop);
SetStopLoss(PriceScale*손절틱수,PointStop);
-------
위 수식어에 아래 3가지가 포함된 각각 별도의 수식어를 부탁드립니다.
1. 익,손절후 당일 매매정지
2. 익절후 5시간 진입금지
3. 익절후 3번째 캔들까지 진입신호금지
2024-03-19
638
글번호 177612
회원 님에 의해서 삭제되었습니다.
2024-03-19
55
글번호 177611
답변완료
검색 문의
영웅문 검색수식인데요
예스트레이더 수식으로 바꿔주세요 감사합니다.
A1=Avg(C, 20);
A2=Avg(C, 60);
A3=(A1-A2)/A2*100;
A4=(C-A1)/A1*100;
A=MACD(12,26);
B=MACD(12,26)-eavg(MACD(12,26),9);
C > O and
(C-O)*0.5 <= (H-C) and (C-O)*2 >= (H-C) and
(C-O)*0.2 >= (O-L) and
Avg(V(1),5) >= 50000 and
C(1)*1.065 <= C and
((A1(2) < A1(1) and A1(1) < A1) or
(A2(2) < A2(1) and A2(1) < A2)) and
H > Highest(H(1), 4) and
V > Highest(V(1),4) and
A(2) < A(1) and A(1) < A and
Stochasticsslow(40,20) <= 69 and
B(2) < B(1) and B(1) < B and
A3 >= -12 and A3 <= 12 and
A4 >= -18 and A4 <= 18
2024-03-19
527
글번호 177610
답변완료
종목검색식 요청드립니다.
30봉 이내 아래 키움신호가 발생한 종목검색식을 만들고 싶습니다. 기간값은 조정할 수 있게 만들어주시면 감사하겠습니다.^^
A=(highest(high,shortPeriod)+lowest(low,shortPeriod))/2;
B=shift((highest(high,midPeriod)+lowest(low,midPeriod))/2,-midPeriod+1);
if(Crossup(B, A),1,0)
2024-03-19
715
글번호 177609
회원 님에 의해서 삭제되었습니다.
2024-03-19
25
글번호 177608
답변완료
질문드립니다!
매 N분마다 차트에 막대로 나타낼수 있도록 수식 부탁드립니다.
(가능하시면 시작시간은 따로 없고 , 현재 데이터 건수 만큼 N분 정확히 나눌 수 있도록 부탁드립니다)
2024-03-19
708
글번호 177607
회원 님에 의해서 삭제되었습니다.
2024-03-19
17
글번호 177606
회원 님에 의해서 삭제되었습니다.
2024-03-18
109
글번호 177605
답변완료
지표식을 시스템식으로
아래는 어느 분이 만든 지표식인데요, 지표(빨간점)가 발생하는 지점에서 MP==0 이면 매수(BUY)하는 시스템식으로 변환 부탁드립니다. 미리 감사
//전환쌍바닥지표식
Input : 전환(0.2),쌍바닥상(1),쌍바닥하(2);
Var:j(0),jj(0),HH(0),LL(0),hiBar(0),loBar(0),최종꼭지점(""),처리구분("");
Array:고[10,4](0),저[10,4](0);
var : TX12(0),cond12(False);
//Plot1(0);
HH = H;
LL = 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
{
hiBar = hiBar + 1;
loBar = loBar + 1;
}
If HH[hiBar] < HH Then hiBar = 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;
loBar = -1;
}
Else If 고[1,1] < HH[hiBar] Then
{
고[1,1] = HH[hiBar];
고[1,2] = Index - hiBar;
고[1,3] = sDate[hiBar];
고[1,4] = sTime[hiBar];
hiBar = -1;
loBar = -1;
}
최종꼭지점 = "고점";
}
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;
cond12 = False;
if 저[1,1] <= 저[2,1]+PriceScale*쌍바닥상 and 저[1,1] >= 저[2,1]-PriceScale*쌍바닥하 and 저[2,1] > 0 Then
{
cond12 = true;
tx12 = Text_New(저[1,3],저[1,4],저[1,1],"●");
Text_SetStyle(tx12,2,0);
Text_SetColor(tx12,red);
Text_SetSize(tx12,15);
}
}
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;
if cond12 == False Then
{
if 저[1,1] <= 저[2,1]+PriceScale*쌍바닥상 and 저[1,1] >= 저[2,1]-PriceScale*쌍바닥하 and 저[2,1] > 0 Then
{
cond12 = true;
tx12 = Text_New(저[1,3],저[1,4],저[1,1],"●");
Text_SetStyle(tx12,2,0);
Text_SetColor(tx12,red);
Text_SetSize(tx12,15);
}
}
Else
{
if 저[1,1] <= 저[2,1]+PriceScale*쌍바닥상 and 저[1,1] >= 저[2,1]-PriceScale*쌍바닥하 and 저[2,1] > 0 Then
{
Text_SetLocation(tx12,저[1,3],저[1,4],저[1,1]);
}
Else
{
Text_Delete(tx12);
cond12 = False;
}
}
}
최종꼭지점 = "저점";
}
2024-03-18
677
글번호 177604