커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식 부탁드립니다

var:HH(0),LL(0); Var1 = (Highest(high,1)+Lowest(low,1))/2; Var2 = (Highest(high,1)+Lowest(low,1))/2; if CrossUp (Var1,var2) Then {HH=H; LL=L;} IF VAR1>VAR2 Then { IF H>HH THEN HH=H; IF L<LL Then LL=L; } var3 = PriceScale * 1; Plot2(ll + var3); 위에 수식을 a 라고 하면 위에 수식이 현재가 (c) 를 돌파 검색 수식 부탁드립니다 분봉으로 검색 수식 부탁드립니다 그리고 이수식을 a 라고 했을때 현재가 (c) 를 돌파하면 매수신호 나오게 시스템 수식도 부탁드립니다 감사합니다
프로필 이미지
미스포터
2021-01-17
994
글번호 145516
시스템
답변완료

시스템 수식 좀 요청 드립니다.

* 많은 도움에 고맙 습니다. var1 = ma(c,5) ; var2 = ma(c,20) ; if MarketPosition == 0 and crossup(var1,var2) then buy("SS1",OnClose,DEF,1); if MarketPosition == 0 and crossdown(var1,var2) then sell("DD1",OnClose,DEF,1); if 추가매수1 ; if 추가매수2 ; if 추가매수3 ; 상기 로직으로 진입 하였을때 * <요청 사항> - 계약수가 4개 이상 이고 손실이 20포인트 이상 났다가 손실이 5포인트 까지 올라오면 청산 수식 좀 부탁 드립니다. 즉 매수로 1계약 진입 하여 2,3,4까지 추가매수 하여 총4계약 있는데 손실이 -20포인트 넘었다가 손실이 복구 되어 손실이 -5포인트 까지 줄어들면 매수 손실 청산 매도로 1계약 진입 하여 2,3,4까지 추가매수 하여 총4계약 있는데 손실이 20포인트 넘었다가 손실이 복구 되어 손실이 5포인트 까지 줄어들면 매도 손실 청산 * 고맙 습니다. 수고하십시요.
프로필 이미지
요타
2021-01-18
938
글번호 145515
시스템
답변완료

문의합니다

안녕하세요 일봉에서 피라미딩 누적 매수를 합니다 첨부된 사진처럼 매일 연속해서 매수되지 않고 한 주일에 한번씩만 매수가 누적되도록 진입 회수를 조절을 하고싶습니다 부탁드립니다
프로필 이미지
파티아
2021-01-17
1104
글번호 145514
시스템
답변완료

수식 문의드립니다.

if NextBarSdate == sdate then { if MarketPosition == 0 and DayHigh < dayopen+(DayHigh(1)-DayLow(1))*0.4 Then buy("b",AtStop,dayopen+(DayHigh(1)-DayLow(1))*0.4); } if MarketPosition == 1 and NextBarSdate != sdate Then ExitLong("bx",AtMarket); 변동성돌파 식 사용 중입니다 매수 매도 시간이 1분봉, 5분봉, 10틱 봉으로 바꿀때마다 달라지는것 같습니다. 예를들어 시가 매도면 1분봉일때는 9시1분, 5분봉일때는 9시5분으로 설정됩니다.. 신호가 나왔을때 즉시 매수 매도가 일어나게 할 수 있을까요?? 그리고 셋째줄의 DayHigh < dayopen+(DayHigh(1)-DayLow(1))*0.4 은 어떤의미로 들어간건지 궁금합니다. dayhigh는 하루중 가장 높은 가격인데 조건 가격이 그보다 더 높아진다는게 이해가 잘 안갑니다.
프로필 이미지
이데아
2021-01-17
1073
글번호 145513
시스템
답변완료

ntime

ntime 229680은 시간으로 몇시인지요?
프로필 이미지
코퍼
2021-01-17
1248
글번호 145512
사용자 함수

관리자에 의해 프로그램 사용법 QnA로 이동되었습니다

프로필 이미지
샐리짱
2021-01-17
8
글번호 145511
지표
답변완료

시스템 자동매매 문의드립니다.

전략실행차트를 분활하고 종목을 선정해서 시스템을 자동매매로 실행되도록 설정하였습니다. 근데 하루가 지나서 새로 로그인을 하면 적용한 시스템이 `시스템 시험적용`으로 바뀝니다. 다시 일일이 자동매매로 정정해줘야하는 불편이 있습니다. 1. 위 방법대로 하는게 맞는건가요? 2. 설정이 안바뀌게 하는방법 3. 좀더 편하게 설정하는 방법 있으면 가르쳐주세요. 감사드립니다.^^
프로필 이미지
퉁이
2021-01-17
1280
글번호 145510
시스템
답변완료

수치표시 Text를 왼쪽에서 오른쪽으로 좀 변경 부탁드립니다.

Input:length(10),ClsPxUseBit(0),inRange(10),waveLineSize(1),displPRC(1),선색(MAGENTA),선두께(1); Var:j(0),jj(0),jjj(0),HH(0),LL(0),lastHi(0),lastLo(0),lastVertex(""),procBit(""), TL1(0),TL2(0); Array:PK[50,4](0),VL[50,4](0), // 1:Price, 2:BarNumber, 3:Date, 4:Time basePK[5](0),baseVL[5](0); // 0:N/A, 1:Price, 2:BarNumber, 3:Date, 4:Time //========================================== HH = IFF(ClsPxUseBit == 1,C,H); LL = IFF(ClsPxUseBit == 1,C,L); If CurrentBar == 1 Then Begin PK[1,1] = HH; VL[1,1] = LL; End ; Condition1 = Highest(HH,length) == HH and lastHi <> HH; Condition2 = Lowest (LL,length) == LL and lastLo <> LL; procBit = ""; If Condition1 and Condition2 Then Begin If lastVertex == "Valley" Then procBit = "Peak" ; Else procBit = "Valley"; End Else If Condition1 Then procBit = "Peak" ; Else If Condition2 Then procBit = "Valley"; //========================================== If procBit == "Peak" Then Begin lastHi = HH; If lastVertex == "Valley" Then Begin For j = 50 DownTo 2 Begin For jj = 1 To 4 Begin PK[j,jj] = PK[j-1,jj]; End ; End ; PK[1,1] = HH; PK[1,2] = INDEX; PK[1,3] = Date; PK[1,4] = Time; TL1 = TL_New(VL[1,3],VL[1,4],VL[1,1],PK[1,3],PK[1,4],PK[1,1]); TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,WHITE); basePK[1] = 0; For j = 1 To inRange Begin If basePK[1] < PK[j,1] Then Begin For jjj = 1 To 4 Begin basePK[jjj] = PK[j,jjj]; End ; End ; End ; End Else If PK[1,1] < HH Then Begin PK[1,1] = HH; PK[1,2] = INDEX; PK[1,3] = Date; PK[1,4] = Time; TL_SetEnd(TL1,PK[1,3],PK[1,4],PK[1,1]); End ; lastVertex = "Peak"; End ; //========================================== If procBit == "Valley" Then Begin lastLo = LL; If lastVertex == "Peak" then Begin For j = 50 DownTo 2 Begin For jj = 1 To 4 Begin VL[j,jj] = VL[j-1,jj]; End ; End ; VL[1,1] = LL; VL[1,2] = INDEX; VL[1,3] = Date; VL[1,4] = Time; TL1 = TL_New(PK[1,3],PK[1,4],PK[1,1],VL[1,3],VL[1,4],VL[1,1]); TL_SetSize(TL1,waveLineSize); TL_SetColor(TL1,WHITE); baseVL[1] = 0; For j = 1 To inRange Begin If baseVL[1] > VL[j,1] or baseVL[1] == 0 Then Begin For jjj = 1 To 4 Begin baseVL[jjj] = VL[j,jjj]; End ; End ; End ; End Else If VL[1,1] > LL then Begin VL[1,1] = LL; VL[1,2] = INDEX; VL[1,3] = Date; VL[1,4] = Time; TL_SetEnd(TL1,VL[1,3],VL[1,4],VL[1,1]); End ; lastVertex = "Valley"; End ; //========================================== Array: fr[7,4](0); // 1:Rate, 2:Price, 3:Trendline ID, 4:Text ID If CurrentBar == 1 Then Begin fr[1,1] = 0; fr[2,1] = 0.236; fr[3,1] = 0.382; fr[4,1] = 0.50; fr[5,1] = 0.618; fr[6,1] = 0.764; fr[7,1] = 1; End ; If basePK[1] > 0 and baseVL[1] > 0 Then Begin If baseVL[2][1] <> baseVL[2] or basePK[2][1] <> basePK[2] Then Begin If TL2 > 0 Then TL_Delete(TL2); TL2 = TL_New(baseVL[3],baseVL[4],baseVL[1],basePK[3],basePK[4],basePK[1]); TL_SetSize(TL2,4); TL_SetColor(TL2,RGB(253,227,2)); If baseVL[2] < basePK[2] Then Begin for j = 1 to 7 Begin If fr[j,3] > 0 Then TL_Delete(fr[j,3]); fr[j,2] = basePK[1] - ((basePK[1] - baseVL[1]) * fr[j,1]); fr[j,3] = TL_New(baseVL[3],baseVL[4],fr[j,2],Date,Time,fr[j,2]); TL_SetColor(fr[j,3],선색); TL_SetSize(fr[j,3],선두께); If displPRC == 1 Then Begin If fr[j,4] > 0 Then Text_Delete(fr[j,4]); fr[j,4] = Text_New(baseVL[3],baseVL[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],black); End ; End ; End Else If basePK[2] < baseVL[2] Then Begin for j = 1 to 7 Begin If fr[j,3] > 0 Then TL_Delete(fr[j,3]); fr[j,2] = baseVL[1] + ((basePK[1] - baseVL[1]) * fr[j,1]); fr[j,3] = TL_New(basePK[3],basePK[4],fr[j,2],Date,Time,fr[j,2]); TL_SetColor(fr[j,3],선색); TL_SetSize(fr[j,3],선두께); If displPRC == 1 Then Begin If fr[j,4] > 0 Then Text_Delete(fr[j,4]); fr[j,4] = Text_New(basePK[3],basePK[4],fr[j,2],"(" + NumToStr(fr[j,1]*100,1) + "%) " + NumToStr(fr[j,2],2)); Text_SetStyle(fr[j,4], 1, 2); Text_SetColor(fr[j,4],black); End ; End ; End ; End Else Begin for j = 1 to 7 Begin TL_SetEnd(fr[j,3],Date,Time,fr[j,2]); End ; End ; End ;
프로필 이미지
매버릭
2021-01-17
1353
글번호 145509
지표
답변완료

Data1과 Data2사용시

data1과 data2 모두 10분봉 사용 data1에서 날짜가 바뀌면 data1과 data2를 이용, 새로이 지표를 1회만 계산하고자 함 문제) data1은 15시 20분 데이터(전일자 마지막 데이터)가 없고, 익일 시가 데이터가 있음 data2는 15시 20분 데이터(전일자 마지막 데이터)가 있고, 익일 시가 데이터가 있음 이 경우 data1은 data2에 비교해서 당일자 마지막 봉이 없어서 (비어있어서), 위의 경우에 날짜가 바뀌는 것을 1회가 아니라 2회로 인식해서, 지표 계산을 2회에 걸쳐 함. 이 경우 1회만 지표를 계산하게 하려고 합니다. 어찌해야 할까요.
프로필 이미지
데미안
2021-01-17
1266
글번호 145508
시스템