커뮤니티

예스랭귀지 Q&A

글쓰기

[공지] 예스랭귀지 AI 어시스턴트, '예스나 AI' 출시 및 무료 체험 안내

안녕하세요, 예스스탁 입니다.복잡한 수식 공부 없이 여러분의 아이디어를 말하면 시스템 트레이딩 언어 예스랭귀지로 작성해주는 서비스예스나 AI(YesNa AI)가 출시되었습니다.지금 예스나 AI를 직접 경험해 보실 수 있도록 20크레딧(질문권 20회)를 무료로 증정해 드리고 있습니다.바로 여러분의 아이디어를 코드로 변환해보세요.--------------------------------------------------🚀 YesNa AI 핵심 기능- 지표식/전략식/종목검색식 생성: 자연어로 요청하면 예스랭귀지 문법에 맞는 코드를 작성합니다.- 종목검색식 변환 지원: K증권의 종목 검색식을 예스랭귀지로 변환 지원합니다.- 컴파일 검증: 작성된 코드가 실행 가능한지 컴파일러를 통해 문법 검증을 거쳐 결과물을 제공합니다.상세한 서비스 개요 및 활용 방법은 [서비스 소개 페이지]에서 확인하실 수 있습니다.▶ 서비스 소개 페이지: 바로가기서비스 사용 유의사항 및 결제 환불정책은 [이용약관]을 참고 부탁드립니다.▶ 서비스 이용약관: 바로가기💬 이용 문의사용 중 문의사항은 [프로그램 사용법 Q&A] 게시판에서 [예스나 AI] 카테고리를 설정 후 문의해 주시면 상세히 안내해 드리겠습니다.--------------------------------------------------앞으로도 AI를 활용한 다양한 트레이딩 기능들을 지속적으로 선보일 예정입니다.많은 관심과 기대 부탁드립니다.
프로필 이미지
예스스탁
2026-02-27
1316
글번호 230811
지표

사공하늘 님에 의해서 삭제되었습니다.

프로필 이미지
사공하늘
2025-05-22
82
글번호 191083
검색
답변완료

문의드립니다,

수고많으십니다. 아래수식중 증액을할때 진입할때마다라고 했는데 시스템에서 정한기준안에서 예를들면 시스템진입식에 10번진입 실제진입5번일때 실제진입한것만 증액으로 진입식부탁드립니다. 1. inputs : P1(5),P2(20),RSILength(10), OverSold(30),OverBought(70); input : 첫진입금액(1000000),A(10); var : m1(0,Data2),m2(0,Data2), R(0,Data1); var : TT(0,Data1),T1(0,Data1),entry(0,Data1),mm(0,data1),vol(0,Data1); m1 = Data2(ma(C,P1)); m2 = Data2(ma(C,P2)); R = data1(RSI(RSILength)); If Data2(m1 > m2) and Crossup(R, OverSold) Then { if TotalTrades == 0 Then mm = 첫진입금액; Else mm = mm*(1+A/100); Buy("B",OnClose,Def,Floor(Floor(mm/C)/10)*10); } if Data2(CrossDown(m1,m2)) or Crossup(R, OverBought) Then Sell("S"); 2 inputs : P1(5),P2(20),RSILength(10), OverSold(30),OverBought(70); input : 첫진입금액(1000000),A(10),B(20); var : m1(0,Data2),m2(0,Data2), R(0,Data1),LP(0,Data1); var : TT(0,Data1),T1(0,Data1),entry(0,Data1),mm(0,data1),vol(0,Data1); m1 = Data2(ma(C,P1)); m2 = Data2(ma(C,P2)); R = data1(RSI(RSILength)); if MarketPosition == 1 Then LP = LatestEntryPrice(0); Else LP = LatestEntryPrice(1); If Data2(m1 > m2) and Crossup(R, OverSold) Then { if TotalTrades == 0 Then mm = 첫진입금액; Else { if LP > C Then mm = mm*(1+B/100); Else mm = mm*(1+A/100); } Buy("B",OnClose,Def,Floor(Floor(mm/C)/10)*10); } if Data2(CrossDown(m1,m2)) or Crossup(R, OverBought) Then Sell("S");
프로필 이미지
2685up
2025-05-22
222
글번호 191081
시스템
답변완료

문의 드립니다.

아래 식에서 기준가 2.50을 첫 돌파 후 5번째에 매수 진입하도록 가능할까요? 그리고 익절은 직접 입력할 수 있도록 추가해 주시면 감사하겠습니다. 부탁드립니다. input : Price(2.50); if crossup(C,price) Then buy(); if CrossDown(C,price) Then ExitLong();
프로필 이미지
선물대장
2025-05-22
268
글번호 191077
시스템
답변완료

문의 드립니다.

안녕하세요 항상 감사드립니다. 아래의 서식에서 추가적인 서식을 부탁드립니다. *추가사항 1.연결선물 기준 5분봉에서 이평선 50일선 아래 위치시 매도만 진입, 50일선 위에 위치시 매수 만 진입 (50일선은 최적화를 할 수 있게 input으로 넣어주시기 바랍니다.) # KOSPI 선물 5분봉 input: tt(150000),당일진입횟수(3); var: chkP(10), reChkP(20), stopChk(25); var: HH(0), LL(0), BS(0), SS(0); var: dayChk(0); var : TotalCount(0),PreDay(0),DayEntry(0); TotalCount = TotalTrades; if Bdate != Bdate[1] Then PreDay = TotalCount[1]; DayEntry = (TotalCount-PreDay)+IFF(MarketPosition != 0,1,0); if BarIndex == 0 then ClearDebug(); if dayindex == chkP then { HH = Highest(Max(C,O), chkP+1); LL = Lowest(Min(C,O), chkP+1); #if date == 20240612 then messageLog("--HH %.2f, LL: %.2f", HH, LL); } #if High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then messageLog("HH %.2f, High: %.2f", HH, High); if DayIndex >= chkP # and Time < 95000 and sDate == NextBarSdate and EntryDate(0) < Date and EntryDate(1) < Date and DayEntry < 당일진입횟수 Then { Buy("B1", AtStop, HH); Sell("S1", AtStop, LL); } //if dayChk == 0 and High >= HH and MarketPosition == 0 and ExitDate(1) < Date and time > 93000 then { // messageLog("HH %.2f, High: %.2f", HH, High); // dayChk = 1; //} if ExitDate(1) == Date and Time < 150000 // and LatestEntryName(1) != "B2" // and LatestEntryName(1) != "S2" // and LatestEntryName(0) != "B2" // and LatestEntryName(0) != "S2" Then { if DayIndex < reChkP Then { HH = Highest(Max(C,O), DayIndex+1); LL = Lowest(Min(C,O), DayIndex+1); } Else { HH = Highest(Max(C,O), reChkP); LL = Lowest(Min(C,O), reChkP); } if DayEntry < 당일진입횟수 Then { Buy("B2", AtStop, HH); Sell("S2", AtStop, LL); } } if (MarketPosition == 1) Then { if DayIndex < stopChk Then { BS = Lowest(Min(C,O), DayIndex+1); } Else { BS = Lowest(Min(C,O), stopChk); } ExitLong("EL", AtStop, BS); } if (MarketPosition == -1) Then { if DayIndex < stopChk Then { SS = Highest(Max(C,O), DayIndex+1); } Else { SS = Highest(Max(C,O), stopChk); } #messageLog(" SS %.2f", SS); ExitShort("ES", AtStop, SS); } var : month(0),nday(0),week(0),X(False); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; Week = DayOfWeek(date); #만기일 if (month%3 == 0 and nday >= 8 and nday <= 14 and week == 4) then { X = true; SetStopEndofday(151500); } Else#만기일아닐때 { X = False; SetStopEndofday(152000); }
프로필 이미지
가자아이
2025-05-22
294
글번호 191074
지표
답변완료

문의드립니다.

시스템을 복리계산하기 위해서 ㅇ 초기자본을 100,000$ 설정하고 수익금이 30,000$이 싸일때마다 1계약씩 늘어나게 하는 수식이 가능할까요? 최대 계약수는 10계약으로... 가능하면 위 3개를 변수로 지정해서 부탁드리겠습니다
프로필 이미지
소드노
2025-05-22
212
글번호 191072
시스템
답변완료

부탁드립니다 항상 감사합니다

Input: length(100), mult(1), TP_Ratio(1.01), SL_Ratio(0.99), 진입수량(1); Var: src(0), a(0), b(0), size(0), var1(0), var2(0), Condition1(false), Condition2(false), t1(0), t2(0), value1(0), value2(0), 진입가(0), TP(0), SL(0), posFlag(0), tx(0); // 1. 원본 가격 src = Close; // 2. size 계산 size = iff((a[1]-a[2]) > 0 or (b[1]-b[2]) < 0 , atr(length) , TrueRange); // 3. 상승/하락 조건 기간 카운트 if a[1] > a[2] Then Begin Condition1 = true; var1 = 0; end Else if Condition1 then var1 = var1 + 1; if b[1] < b[2] Then Begin Condition2 = true; var2 = 0; end Else if Condition2 then var2 = var2 + 1; // 4. 추세선 계산 a = max(src,a[1]) - size/pow(length,2)*(var1*mult); b = min(src,b[1]) + size/pow(length,2)*(var2*mult); // 5. 꺾임 방향 t1 = iff(a > a[1], 1, iff(a < a[1], -1, t1[1])); t2 = iff(b > b[1], 1, iff(b < b[1], -1, t2[1])); // 6. 꺾임 발생 시 진입 If t1 == -1 and t1 != t1[1] and posFlag = 0 Then Begin SellShort("Short") next bar at market; 진입가 = Close; TP = 진입가 * SL_Ratio; // 숏 전략이므로 SL<진입가 SL = 진입가 * TP_Ratio; posFlag = -1; tx = Text_New(Date, Time, High, "&#11015; 매도진입"); Text_SetColor(tx, Red); End; If t2 == -1 and t2 != t2[1] and posFlag = 0 Then Begin Buy("Long") next bar at market; 진입가 = Close; TP = 진입가 * TP_Ratio; SL = 진입가 * SL_Ratio; posFlag = 1; tx = Text_New(Date, Time, Low, "&#11014; 매수진입"); Text_SetColor(tx, Blue); End; // 7. TP/SL 도달 시 청산 If posFlag = -1 Then Begin If Close <= TP or Close >= SL Then Begin BuyToCover("청산") next bar at market; posFlag = 0; End; End; If posFlag = 1 Then Begin If Close >= TP or Close <= SL Then Begin Sell("청산") next bar at market; posFlag = 0; End; End; // 8. 시각화 Plot1(a, "상단추세"); Plot2(b, "하단추세"); Plot3(value1, "상단꺾임"); Plot4(value2, "하단꺾임"); 오류수정부탁드립니다
프로필 이미지
윤호석
2025-05-22
292
글번호 191067
지표
답변완료

기존수식에 양봉조건만 넣어주세요

var : 목(0),표(0),가(0),조건(False),cs(-1); if dayclose()> dayclose(1)*1.29 Then { 목 = dayclose; 표 = dayopen; 가 = floor((목+표)/2); cs = 0; } 조건 = crossdown(c, 가); if cs >= 0 and 조건 Then cs = cs+1; if cs == 1 and cs[1] == 0 Then Find(1); 선생님께서 만들어주신 수식입니다. 여기에서 양봉만나오게하는조건을 넣었는데 오류가 나서 번거롭더라도 직접넣어주시면 감사하겠습니다
프로필 이미지
장대박
2025-05-22
231
글번호 191066
종목검색

사공하늘 님에 의해서 삭제되었습니다.

프로필 이미지
사공하늘
2025-05-22
63
글번호 191065
검색
답변완료

수식 부탁드립니다

다음신호의 수식변환을 부탁드립니다.' 감사합니다. A=shift(c,-12+1); B=shift(c,-26+1); BB=BBandsUp(70,3); M=Macd(5,52); 조건1=CrossUp(A,BB(0)) && !(M>0); S2=Valuewhen(1,조건1&&!조건1(1),L); T=Ttsf(C, 50); CrossUp(T, S2)
프로필 이미지
쭈니이리
2025-05-22
228
글번호 191064
종목검색