커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

회원 님에 의해서 삭제되었습니다.

프로필 이미지
회원
2015-10-29
1
글번호 91893
지표
답변완료

시스템문의합니다

해외선물 5일선 20일선 매수매도식입니다. 10틱이내 수렴중에 신호가 안나오게 하는 방법이 궁금합니다.ㅜㅜ 또는 var1 = ma(C,5); var2 = ma(C,20); if MarketPosition <= 0 and crossup(var1,var2) Then buy("매수",OnClose,def,2); if MarketPosition >= 0 and CrossDown(var1,var2) Then sell("매도",OnClose,def,2); if MarketPosition == 1 Then{ ExitLong("매수수익1",atlimit,EntryPrice+PriceScale*10,"",1,1); ExitLong("매수수익2",atlimit,EntryPrice+PriceScale*40,"",1,1); } if MarketPosition == -1 Then{ ExitShort("매도수익1",atlimit,EntryPrice-PriceScale*10,"",1,1); ExitShort("매도수익2",atlimit,EntryPrice-PriceScale*40,"",1,1); }
프로필 이미지
지오2014
2015-10-29
214
글번호 91890
시스템
답변완료

감사합니다.

우선 감사드립니다. 미국 나스닥지수가 전일대비하여 일정폭 이상 하락(30) 또는 상승(30)하는 경우 선물을 시초가에 매수 또는 매도하는 시스템수식은 어떻게 되는지요?
프로필 이미지
huhboo99
2015-10-29
225
글번호 91884
시스템
답변완료

옵션교차

늘 감사합니다. 1. data2의 종가가 data3의 저가에 도달할 때 매수 익절12틱, 손절6틱, 익절손절이 없는 경우 15시00청산. 2. data2의 종가가 data3의 고가에 도달할 때 매도 익절12틱, 손절6틱, 익절손절이 없는 경우 15시00청산. 감사합니다.
프로필 이미지
상암동
2015-10-29
288
글번호 91882
시스템
답변완료

문의드립니다.

날씨가 많이 쌀쌀해 졌습니다. 감기조심하기바랍니다. 1번) 지표식을 15분봉 기준 매시 13분 28분 43분 58분에 지표가 그려지도록 수정부탁드립니다. 과거봉의 지표는 그려지고 현재봉에만 해당됩니다. 2번)지표식을 당일 최초로 만족하는 첫봉에만 지표가 표시되도록 수정 부탁드립니다. 감사합니다. 1번) var : count(0),Price(0),idx(0); var4 = BollBandup(20,2); var5 = BollBandup(80,2); var6 = BollBandup(240,2); condition1 = c > highest(c,24)[1] ; ##125봉중-최고가 Condition2 = crossup(c,var5); Condition3 = crossup(c,var6); ##주가-240bbup돌파 ### 메인조건 if Condition1 == true and Condition3 == true and var4 > var6*0.8 and dayopen < dayclose(1)*1.15 and var4 > var4[1] and var4[1] <= var6[1] then{ Price = C; count = 0; idx = 0; } ### 지표조건 idx = idx+1; if idx == 2 and C >= Price Then{ count = count+1; plot1(H); } if idx > 2 and crossup(C,Price) Then{ count = count+1; if count == 1 Then plot1(H); } 2번) if date != date[1] Then{ var1 = min(c,o); } if DayClose(1) > DayClose(2)*1.10 and var1 <= dayclose(1) and c > o*1.015 and c > DayClose(1) then{ Plot1(c); }
프로필 이미지
부양가족
2015-10-29
230
글번호 91878
지표
답변완료

수식 수정 부탁드립니다

input : SellPrice1(),SellPrice2(),BuyPrice1(),BuyPrice2(); if CrossDown(c,SellPrice1) Then sell("s1"); if CrossDown(c,SellPrice2) Then sell("s2"); if CrossUp(c,BuyPrice1) Then buy("b1"); if CrossUp(c,BuyPrice2) Then buy("b2"); <개선 희망 사항> (1) SellPrice1()에서 매도 신호 발생후 BuyPrice1()에서 매수 신호 발생하고 상승시 SellPrice1() 에서 다시 매도 신호가 발생합니다 이 경우 SellPrice1()에서는 매도 신호가 발생하지 않고 그보다 높은 SellPrice2()에서만 매도 신호가 발생하게 수식 수정 부탁드립니다 즉 한번 발생한 매도 신호는 다음에 그 가격 터치할 경우 매도 신호를 발생시키지 않는 방식입니다 (2) BuyPrice1()에서 매수 신호 발생후 SellPrice1()에서 매도 신호 발생하고 하락시 BuyPrice1() 에서 다시 매수 신호가 발생합니다 이 경우 BuyPrice1()에서는 매수 신호가 발생하지 않고 그보다 낮은 BuyPrice2()에서만 매수 신호가 발생하게 수식 수정 부탁드립니다 즉 한번 발생한 매수 신호는 다음에 그 가격 터치할 경우 매수 신호를 발생시키지 않는 방식입니다 --------------- 그리고 앞에서 답변해주신 수식을 검색식에서 크루드오일 차트에 적용해보니 오늘자 차트에는 바닥 위로는 숫자와 선이 나타나는데 천정 아래로는 숫자와 선이 출력되지 않습니다 그리고 지나간 어제 차트에는 선이 나타나지 않고 숫자로 -40 만 출력됩니다 확인 부탁드립니다 감사합니다 ---------------- 안녕하세요 예스스탁입니다. 해당 내용 추세선과 텍스트 함수로 구현해야 합니다. 따로 plot명령어로 출력되는 부분이 없으므로 검색식으로 작성해 차트에 적용하시면 됩니다. input : N(40); var : HH(0),LL(0),T(0),HD(0),HT(0),LD(0),LT(0),HL(0),LH(0); var : Tx1(0),tx2(0),tx3(0),tx4(0),tx5(0),tx6(0),tx7(0),tx8(0),tx9(0); var : Tx11(0); var : TL1(0),tl2(0),tl3(0),tl4(0),tl5(0),tl6(0),tl7(0),tl8(0),tl9(0); if bdate != bdate[1] then{ HH = H; HD = sdate; HT = stime; HL = HH; LL = L; LD = sdate; LT = stime; T = 0; LH = H; } if H > HH Then{ T = 1; HH = H; HD = sdate; HT = stime; HL = HH; } if L < LL Then{ T = -1; LL = L; LD = sdate; LT = stime; LH = LL; } if T == 1 and T[1] == 1 Then{ if L < HL Then HL = L; TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL_Delete(TL6); TL_Delete(TL7); TL_Delete(TL8); TL_Delete(TL9); TL1 = TL_New(HT,HT,dayhigh-PriceScale*(N*1),sdate,stime,dayhigh-PriceScale*(N*1)); TL2 = TL_New(HT,HT,dayhigh-PriceScale*(N*2),sdate,stime,dayhigh-PriceScale*(N*2)); TL3 = TL_New(HT,HT,dayhigh-PriceScale*(N*3),sdate,stime,dayhigh-PriceScale*(N*3)); TL4 = TL_New(HT,HT,dayhigh-PriceScale*(N*4),sdate,stime,dayhigh-PriceScale*(N*4)); TL5 = TL_New(HT,HT,dayhigh-PriceScale*(N*5),sdate,stime,dayhigh-PriceScale*(N*5)); TL6 = TL_New(HT,HT,dayhigh-PriceScale*(N*6),sdate,stime,dayhigh-PriceScale*(N*6)); TL7 = TL_New(HT,HT,dayhigh-PriceScale*(N*7),sdate,stime,dayhigh-PriceScale*(N*7)); TL8 = TL_New(HT,HT,dayhigh-PriceScale*(N*8),sdate,stime,dayhigh-PriceScale*(N*8)); TL9 = TL_New(HT,HT,dayhigh-PriceScale*(N*9),sdate,stime,dayhigh-PriceScale*(N*9)); TL_SetColor(TL1,blue); TL_SetColor(TL2,blue); TL_SetColor(TL3,blue); TL_SetColor(TL4,blue); TL_SetColor(TL5,blue); TL_SetColor(TL6,blue); TL_SetColor(TL7,blue); TL_SetColor(TL8,blue); TL_SetColor(TL9,blue); Text_Delete(tx1); Text_Delete(tx2); Text_Delete(tx3); Text_Delete(tx4); Text_Delete(tx5); Text_Delete(tx6); Text_Delete(tx7); Text_Delete(tx8); Text_Delete(tx9); tx1 = Text_New(sdate,stime,dayhigh-PriceScale*(N*1),"-"+NumToStr(N*1,0)); tx2 = Text_New(sdate,stime,dayhigh-PriceScale*(N*2),"-"+NumToStr(N*2,0)); tx3 = Text_New(sdate,stime,dayhigh-PriceScale*(N*3),"-"+NumToStr(N*3,0)); tx4 = Text_New(sdate,stime,dayhigh-PriceScale*(N*4),"-"+NumToStr(N*4,0)); tx5 = Text_New(sdate,stime,dayhigh-PriceScale*(N*5),"-"+NumToStr(N*5,0)); tx6 = Text_New(sdate,stime,dayhigh-PriceScale*(N*6),"-"+NumToStr(N*6,0)); tx7 = Text_New(sdate,stime,dayhigh-PriceScale*(N*7),"-"+NumToStr(N*7,0)); tx8 = Text_New(sdate,stime,dayhigh-PriceScale*(N*8),"-"+NumToStr(N*8,0)); tx9 = Text_New(sdate,stime,dayhigh-PriceScale*(N*9),"-"+NumToStr(N*9,0)); if HL <= dayhigh-PriceScale*(N*1) and HL[1] > dayhigh-PriceScale*(N*1) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*1,0)); if HL <= dayhigh-PriceScale*(N*2) and HL[1] > dayhigh-PriceScale*(N*2) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*2,0)); if HL <= dayhigh-PriceScale*(N*3) and HL[1] > dayhigh-PriceScale*(N*3) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*3,0)); if HL <= dayhigh-PriceScale*(N*4) and HL[1] > dayhigh-PriceScale*(N*4) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*4,0)); if HL <= dayhigh-PriceScale*(N*5) and HL[1] > dayhigh-PriceScale*(N*5) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*5,0)); if HL <= dayhigh-PriceScale*(N*6) and HL[1] > dayhigh-PriceScale*(N*6) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*6,0)); if HL <= dayhigh-PriceScale*(N*7) and HL[1] > dayhigh-PriceScale*(N*7) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*7,0)); if HL <= dayhigh-PriceScale*(N*8) and HL[1] > dayhigh-PriceScale*(N*8) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*8,0)); if HL <= dayhigh-PriceScale*(N*9) and HL[1] > dayhigh-PriceScale*(N*9) Then Tx11 = Text_New(sdate,stime,L,"-"+NumToStr(N*9,0)); Text_SetStyle(tx11,2,2); } if T == -1 and T[1] == -1 Then{ if H > LH Then LH = H; TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); TL_Delete(TL6); TL_Delete(TL7); TL_Delete(TL8); TL_Delete(TL9); TL1 = TL_New(LD,LT,daylow+PriceScale*(N*1),sdate,stime,daylow+PriceScale*(N*1)); TL2 = TL_New(LD,LT,daylow+PriceScale*(N*2),sdate,stime,daylow+PriceScale*(N*2)); TL3 = TL_New(LD,LT,daylow+PriceScale*(N*3),sdate,stime,daylow+PriceScale*(N*3)); TL4 = TL_New(LD,LT,daylow+PriceScale*(N*4),sdate,stime,daylow+PriceScale*(N*4)); TL5 = TL_New(LD,LT,daylow+PriceScale*(N*5),sdate,stime,daylow+PriceScale*(N*5)); TL6 = TL_New(LD,LT,daylow+PriceScale*(N*6),sdate,stime,daylow+PriceScale*(N*6)); TL7 = TL_New(LD,LT,daylow+PriceScale*(N*7),sdate,stime,daylow+PriceScale*(N*7)); TL8 = TL_New(LD,LT,daylow+PriceScale*(N*8),sdate,stime,daylow+PriceScale*(N*8)); TL9 = TL_New(LD,LT,daylow+PriceScale*(N*9),sdate,stime,daylow+PriceScale*(N*9)); TL_SetColor(TL1,red); TL_SetColor(TL2,red); TL_SetColor(TL3,red); TL_SetColor(TL4,red); TL_SetColor(TL5,red); TL_SetColor(TL6,red); TL_SetColor(TL7,red); TL_SetColor(TL8,red); TL_SetColor(TL9,red); Text_Delete(tx1); Text_Delete(tx2); Text_Delete(tx3); Text_Delete(tx4); Text_Delete(tx5); Text_Delete(tx6); Text_Delete(tx7); Text_Delete(tx8); Text_Delete(tx9); tx1 = Text_New(sdate,stime,daylow+PriceScale*(N*1),"+"+NumToStr(N*1,0)); tx2 = Text_New(sdate,stime,daylow+PriceScale*(N*2),"+"+NumToStr(N*2,0)); tx3 = Text_New(sdate,stime,daylow+PriceScale*(N*3),"+"+NumToStr(N*3,0)); tx4 = Text_New(sdate,stime,daylow+PriceScale*(N*4),"+"+NumToStr(N*4,0)); tx5 = Text_New(sdate,stime,daylow+PriceScale*(N*5),"+"+NumToStr(N*5,0)); tx6 = Text_New(sdate,stime,daylow+PriceScale*(N*6),"+"+NumToStr(N*6,0)); tx7 = Text_New(sdate,stime,daylow+PriceScale*(N*7),"+"+NumToStr(N*7,0)); tx8 = Text_New(sdate,stime,daylow+PriceScale*(N*8),"+"+NumToStr(N*8,0)); tx9 = Text_New(sdate,stime,daylow+PriceScale*(N*9),"+"+NumToStr(N*9,0)); if LH >= daylow+PriceScale*(N*1) and LH[1] < daylow+PriceScale*(N*1) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*1,0)); if LH >= daylow+PriceScale*(N*2) and LH[1] < daylow+PriceScale*(N*2) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*2,0)); if LH >= daylow+PriceScale*(N*3) and LH[1] < daylow+PriceScale*(N*3) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*3,0)); if LH >= daylow+PriceScale*(N*4) and LH[1] < daylow+PriceScale*(N*4) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*4,0)); if LH >= daylow+PriceScale*(N*5) and LH[1] < daylow+PriceScale*(N*5) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*5,0)); if LH >= daylow+PriceScale*(N*6) and LH[1] < daylow+PriceScale*(N*6) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*6,0)); if LH >= daylow+PriceScale*(N*7) and LH[1] < daylow+PriceScale*(N*7) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*7,0)); if LH >= daylow+PriceScale*(N*8) and LH[1] < daylow+PriceScale*(N*8) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*8,0)); if LH >= daylow+PriceScale*(N*9) and LH[1] < daylow+PriceScale*(N*9) Then Tx11 = Text_New(sdate,stime,H,"+"+NumToStr(N*9,0)); Text_SetStyle(tx11,2,2); } 즐거운 하루되세요 > 타이쿤 님이 쓴 글입니다. > 제목 : 수식 부탁드립니다 > (1)당일 저가에서 상승시 40틱 단위로 적색선 그리기 ...선 우측에 +40,+80,+120,+160,+200,+240,+280,+320+360 글 쓰기 ...해당 캔들 위에 +40,+80,+120+160,+200,+240,+280,+320,+360 글 쓰기 (2)당일 고가에서 하락시 40틱 단위로 청색선 그리기 ...선 우측에 -40,-80,-120,-160,-200,-240,-280,-320-360 글 쓰기 ...해당 캔들 아래에 -40,-80,-120-160,-200,-240,-280,-320,360 글 쓰기 감사합니다
프로필 이미지
회원
2015-10-29
332
글번호 91876
시스템
답변완료

수평선 라인 보조선 설정 부탁합니다

현재 챠트에 매일 만드는 것이너무 어렵네여!!! 첨부 했습니다.
프로필 이미지
그리금강산
2015-10-29
325
글번호 91871
지표
답변완료

월,주 수식.. 부탁드릴께요..

안녕하세요. 도움부탁드립니다. 예를들어. 틱봉에서 적용이 가능한지 알고 싶습니다. 혹 적용이 안된다면, 분봉에서라도 가능한지요...?? var1 = 월5이평 최고가; var2 = 월5이평 최저가; var3 = 월봉의 5이평선; var4 = 당월봉의 최고가; var5 = 당월봉의 최저가; var6 = 당월봉의 중심가; var11 = 주봉의5이평 최고가; var12 = 주봉의 5이평 최저가; var13 = 주봉의 5이평선; var14 = 이번주봉의 최고가; var15 = 이번주봉의 최저가; var16 = 이번주봉의 중심가;
프로필 이미지
신나는파파
2015-10-29
219
글번호 91869
시스템
답변완료

문의드립니다

아래는 시스템의 일부입니다 아래 내용에서 설정한 시간 내로 설정한 수익률(5%)이 나면 설정한 시간 뒤에 매매가 되도록 부탁드립니다 ex 30분 내에 진입가보다 5%미만 상승시 >> 1%상승시 30%매도 2%상승시 40%매도 3%상승시 전량매도 1%하락시 30%매도 2%하락시 40%매도 3%하락시 전량매도 30분 내에 진입가보다 5%이상 상승시 >>>설정한 시간(30분)뒤에 진입가보다 6%상승시 30%매도 7%상승시 40%매도 8%상승시 전량매도 진입가보다 5%미만 상승시 1분 단위로 30% 40% 전량매도 첫번째경우는 +30분이고 두번째 경우는 +30에 +30 총 60분 뒤입니다 감사합니다 if MarketPosition == 1 Then{ if BarsSinceEntry == 1 then buy("b2",OnClose,def,floor(금액*0.0/C)); if BarsSinceEntry == 2 then buy("b3",OnClose,def,floor(금액*0.0/C)); if CurrentContracts > CurrentContracts[1] and MaxEntries == 1 Then TT = TimeToMinutes(stime); if CurrentContracts < CurrentContracts Then Xcnt = Xcnt+1; if MaxEntries == 1 and TimeToMinutes(stime) >= TT+0 then{ if countif(LatestExitName(0) == "BP1",BarsSinceEntry) < 1 then{ if Xcnt < 2 Then Xvol = floor(MaxContracts*0.3); Else Xvol = CurrentContracts; ExitLong("BP1",atlimit,LatestEntryPrice(0)*1.03,"",Xvol,1); } if countif(LatestExitName(0) == "BP2",BarsSinceEntry) < 1 then{ if Xcnt < 2 Then Xvol = floor(MaxContracts*0.4); Else Xvol = CurrentContracts; ExitLong("BP2",atlimit,LatestEntryPrice(0)*1.04,"",Xvol,1); } if countif(LatestExitName(0) == "BL1",BarsSinceEntry) < 1 then{ if Xcnt < 2 Then Xvol = floor(MaxContracts*0.3); Else Xvol = CurrentContracts; ExitLong("BL1",AtStop,LatestEntryPrice(0)*0.99,"",Xvol,1); } if countif(LatestExitName(0) == "BL2",BarsSinceEntry) < 1 then{ if Xcnt < 2 Then Xvol = floor(MaxContracts*0.4); Else Xvol = CurrentContracts; ExitLong("BL2",AtStop,LatestEntryPrice(0)*0.985,"",Xvol,1); } exitlong("bp3",atlimit,LatestEntryPrice(0)*1.05); exitlong("bl3",AtStop,LatestEntryPrice(0)*0.98); } } if MarketPosition != 1 Then Xcnt = 0;
프로필 이미지
가이츠
2015-10-29
208
글번호 91868
시스템