커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

청산가 이하 매수

if crossup(ma(c,5),ma(c,20) then buy(); SetStopTrailing(1,2,PointStop); 트레일링 스탑으로 청산된 가격에서 1 point 하락시 매수코자 합니다.
프로필 이미지
회원
2015-04-16
161
글번호 85101
시스템
답변완료

골든크로스, 데드크로스 발생 봉 시간 출력관련

아래 소스와 같이 골든크로스 시간을 표시하려고 별의 별 시도를 다해봤습니다만 MessageLog에 시간값은 Null이 찍힙니다. 제가 뭘 잘못했는지 체크해주시면 감사하겠습니다. ㅜㅜ;;; // 골든크로스 및 데드크로스 시간을 표시한다. Text_Delete(t4); If (CrossUp(이동평균1, 이동평균2)) Then { Var2 = Text_GetTime(t4); Var3 = Text_New(sDate, STime, Var2, "골든크로스 발생:" + NumToStr(Var2, 2)); MessageLog("봉시간 %f", Var1); MessageLog("변수시간 %f", Var2); MessageLog("시간 %f", Var3); } Else If (CrossDown(이동평균1, 이동평균2)) Then { t4 = Text_New(sDate, STime, Text_GetTime(t4), "데드크로스 발생:" + NumToStr(Text_GetTime(t4), 2)); }
프로필 이미지
가락국수
2015-04-16
185
글번호 85099
지표
답변완료

문의드립니다.

선물차트 기준으로 문의드립니다. 120틱차트에서 현재봉의 틱수가 110틱이 되었을때를 봉 상단에 검색하고 싶습니다. 이때 이전까지의 봉은 신호가 없게 하고 현재봉만 신호가 나타나게 하고 싶습니다. 수식을 어떻게 작성해야 하는지요? 부탁드립니다. 수고하세요. 감사합니다.!!!
프로필 이미지
해암
2015-04-16
157
글번호 85095
검색
답변완료

수식문의 드립니다

수고하십니다 질문 1 9시 10분부터 또는 당일 10번째 봉부터 진입하고 싶은데 첫봉에서 진입이 되네요 점검 부탁드립니다 If sTime > 091000 and MarketPosition == 0 AND K == 1 AND L < Var2 AND C > L Then Buy("Su", AtMarket); 질문 2 청산후 5봉 경과 후 6봉째부터 감시후 조건만족하면 진입하도록 가능하나요 감사합니다
프로필 이미지
surigold
2015-04-16
161
글번호 85091
시스템
답변완료

신호변경 수식요청

안녕하세요? 아래 수식에서 발생되는 신호를 반대로 하고 싶습니다. 즉, 매수신호[매도신호]에 매도[매수], 매수청산[매도청산]에 매도청산[매수청산]을 나오게 하고 싶습니다. --------------------------------------------------------------------------------------- var : entry(0); if bdate != bdate[1] Then entry = 0; if MarketPosition != 0 and MarketPosition != MarketPosition[1] Then entry = entry+1; var : ho(0),OL(0),HL(0); var : maho(0),maOL(0),maHL(0); var : cnt(0),sumho(0),sumOL(0),sumHL(0); var : EntryCnt(0); ho = Dayhigh-Dayopen; OL = DayOpen-DayLow; HL = DayHigh-DayLow; sumho = 0; sumOL = 0; sumHL = 0; for cnt = 1 to 10{ sumho = sumho + (dayhigh(cnt)-dayopen(cnt)); sumOL = sumOL + (DayOpen(cnt)-DayLow(cnt)); sumHL = sumHL + (DayHigh(cnt)-DayLow(cnt)); } maho = sumho/10; maOL = sumOL/10; maHL = sumHL/10; var1 = ~; var2 = ~; var3 = ~; var4 = ~; var5 = ~; var6 = ~; var9 = ~; var10 = ~; var7 = ~; var8 = ~; if MarketPosition == 0 and entry == 0 Then{ if var7 > var8 Then sell("s",AtStop,var7); if var7 < var8 Then buy("b",AtStop,var7); } if MarketPosition == -1 Then{ ExitShort("sp",atlimit,var9); ExitShort("sl",AtStop,var6); } if MarketPosition == 1 Then{ exitlong("bp",atlimit,var6); ExitLong("bl",AtStop,var9); }
프로필 이미지
통큰베팅
2015-04-16
154
글번호 85084
사용자 함수
답변완료

진입 봉 종가 청산 부탁합니다.

1. input : 시가대비틱수(5),손절틱수(10),익절틱수(20),최고수익대비하락틱수(10); input : X(5),Y(10),A(5),B(5); if MarketPosition <= 0 Then buy("b",AtStop,NextBarOpen+PriceScale*시가대비틱수); if MarketPosition >= 0 then sell("s",AtStop,NextBarOpen-PriceScale*시가대비틱수); if MarketPosition == 1 Then{ exitlong("btr1",AtStop,Highest(H,BarsSinceEntry)-PriceScale*최고수익대비하락틱수); if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*x and highest(H,BarsSinceEntry) < EntryPrice+PriceScale*y Then exitlong("btr2",AtStop,highest(H,BarsSinceEntry)-PriceScale*a); if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*y Then exitlong("btr3",AtStop,highest(H,BarsSinceEntry)-PriceScale*b); } if MarketPosition == -1 Then{ ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*최고수익대비하락틱수); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*x and Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*y Then ExitShort("str2",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*a); if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*y Then ExitShort("str3",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*b); } SetStopProfittarget(PriceScale*손절틱수,PointStop); SetStopLoss(PriceScale*익절틱수,PointStop); 2번 input : 시가대비틱수(5),손절틱수(10),익절틱수(20),최고수익대비하락틱수(10); input : X(5),Y(10),A(5),B(5); if MarketPosition <= 0 and NextBarOpen >= C Then buy("b",AtStop,NextBarOpen+PriceScale*시가대비틱수); if MarketPosition >= 0 and NextBarOpen < C then sell("s",AtStop,NextBarOpen-PriceScale*시가대비틱수); if MarketPosition == 1 Then{ exitlong("btr1",AtStop,Highest(H,BarsSinceEntry)-PriceScale*최고수익대비하락틱수); if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*x and highest(H,BarsSinceEntry) < EntryPrice+PriceScale*y Then exitlong("btr2",AtStop,highest(H,BarsSinceEntry)-PriceScale*a); if highest(h,BarsSinceEntry) >= EntryPrice+PriceScale*y Then exitlong("btr3",AtStop,highest(H,BarsSinceEntry)-PriceScale*b); } if MarketPosition == -1 Then{ ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*최고수익대비하락틱수); if lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*x and Lowest(L,BarsSinceEntry) > EntryPrice-PriceScale*y Then ExitShort("str2",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*a); if Lowest(L,BarsSinceEntry) <= EntryPrice-PriceScale*y Then ExitShort("str3",AtStop,Lowest(L,BarsSinceEntry)+PriceScale*b); } SetStopProfittarget(PriceScale*손절틱수,PointStop); SetStopLoss(PriceScale*익절틱수,PointStop); 위 두 로직에 진입 봉 종가 청산 함수가 없는것 같습니다. " 진입 봉 종가 청산 " 함수를 두 로직에 넣어 주십시요. 감사 합니다.
프로필 이미지
재정적자유
2015-04-15
149
글번호 85083
시스템
답변완료

수식문의드립니다

안녕하세요 간단한 시스템문의드립니다. 현재부터 만기까지(만기가 20일이상 남았을때) 가격이 1.5까지 하락하면 6계약을 매수하고 1.9가되면 청산(청산되면 문자로 통보) 첫번째 매수 6계약이 청산되지 못하고 가격이 하락하여 1.3이되면 추가로 6계약 매수 12계약을 1.7에 모두 청산(청산시 문자로 통보) 이런 로직을 만들고 싶은데 수식좀 부탁해요~
프로필 이미지
크레이티브77
2015-04-15
145
글번호 85082
시스템
답변완료

청산후 동일방향 재진입금지 시스템

항상감사드립니다. 아래시스템에서 청산후 같은방향으로 재진입금지하는 시스템을 구현하고 싶습니다. ################################## ##### RSI 시스템_Period(20) ##### ################################## input : Period1(20); var81 =(AccumN(iff(C-C[1]>0,C-C[1],0),Period1)/AccumN(iff(C-C[1]>0,C-C[1],C[1]-C),Period1)*100); if var81 <= 30 Then # rsi_30 # var82 = O; if var81 >= 70 Then # rsi_70 # var83 = H; if var82[1] < var82 Then var40=1; # rsi_30 상승방향# if var82[1] > var82 Then var40=-1; # rsi_30 하락방향# if var83[1] > var83 Then var80=1; # rsi_70 하락방향# if var83[1] < var83 Then var80=-1; # rsi_70 상승방향# if MarketPosition == 1 and var80 == 1 and #하락# H <= var81 And (var83[1]-var83) >0.00300 Then exitlong("eBb_Rsi70"); if MarketPosition ==-1 and var80 == 1 and #하락# H <= var81 And (var83[1]-var83) >0.0030 Then ExitShort("eSs_Rsi70"); if MarketPosition ==-1 and var40 == 1 and #상승# L >= var81 And (var82-var82[1]) >0.0030 Then ExitShort("eSs_Rsi30"); if MarketPosition == 1 and var40 == 1 and #상승# L >= var81 And (var82-var82[1]) >0.0030 Then exitlong("eBb_Rsi30"); ################################## ##### RSI 시스템_Period(15) ##### ################################## input : Period(15); var71 =(AccumN(iff(C-C[1]>0,C-C[1],0),Period)/AccumN(iff(C-C[1]>0,C-C[1],C[1]-C),Period)*100); if var71 <= 30 Then # rsi_30 # var72 = O; if var71 >= 70 Then # rsi_70 # var73 = H; if var72[1] < var72 Then var30=1; # rsi_30 상승방향# if var72[1] > var72 Then var30=-1; # rsi_30 하락방향# if var73[1] > var73 Then var70=1; # rsi_70 하락방향# if var73[1] < var73 Then var70=-1; # rsi_70 상승방향# if MarketPosition == 1 and var70 == 1 and #하락# H <= var71 And (var73[1]-var73) >0.0030 Then exitlong("eB_Rsi70"); if MarketPosition == -1 and var70 == 1 and #하락# H <= var71 And (var73[1]-var73) >0.0030 Then ExitShort("eS_Rsi70"); if MarketPosition == -1 and var30 == 1 and #상승# L >= var71 And (var72-var72[1]) >0.0030 Then ExitShort("eS_Rsi30"); if MarketPosition == 1 and var30 == 1 and #상승# L >= var71 And (var72-var72[1]) >0.0030 Then exitlong("eB_Rsi30"); ###################### ##### 매매식 1 ##### ###################### if MarketPosition <= 0 and countif(var72==var72[1],5) == 5 And var12==1 and var58==1 and c>var72 Then buy("B_R30"); if marketPosition > 0 and countif(var72==var72[1],5) == 5 And var12==-1 and var58==-1 and c<var72 Then sell("S_R30"); if MarketPosition <= 0 and countif(var73==var73[1],5) == 5 And var12==1 and var58==1 and c>var73 Then buy("B_R70"); if MarketPosition >0 and countif(var73==var73[1],5) == 5 And var12==-1 and var58==-1 and c<var73 Then sell("S_R70"); ### 손절1 ### SetStopLoss(PriceScale*50,PointStop); ###################### ##### 매매식 2 ##### ###################### ########## 1차 저항선_var21 ########## if crossup(C,var21) Then{ var51 = 1; idx = index; } if CrossDown(C,var21) Then{ var51 = -1; idx = index; } if MarketPosition <= 0 and var51 == 1 and index > idx and index <= idx+30 and var21 >= L and c > var21 and dp2>dm2 then buy("b_21"); if MarketPosition > 0 and var51 == -1 and index > idx and index <= idx+30 and var21 <= H and c < var21 and dp2<dm2 Then sell("s_21"); ########## 1차 지지선_var22 ########## if crossup(C,var22) Then{ var52 = 1; idx1 = index; } if CrossDown(C,var22) Then{ var52 = -1; idx1 = index; } if MarketPosition <= 0 and var52 == 1 and index > idx1 and index <= idx1+30 and var22 >= L and c > var22 and dp2>dm2 then buy("b_22"); if MarketPosition > 0 and var52 == -1 and index > idx1 and index <= idx1+30 and var22 <= H and c < var22 and dp2<dm2 Then sell("s_22"); ########## 중심선_var23 ########## if crossup(C,var23) Then{ var53 = 1; idx2 = index; } if CrossDown(C,var23) Then{ var53 = -1; idx2 = index; } if MarketPosition <= 0 and var53 == 1 and index > idx2 and index <= idx2+30 and var23 >= L and c > var23 and dp2>dm2 then buy("b_23"); if MarketPosition > 0 and var53 == -1 and index > idx2 and index <= idx2+30 and var23 <= H and c < var23 and dp2<dm2 Then sell("s_23");
프로필 이미지
조민철
2015-04-15
189
글번호 85081
시스템
답변완료

수식 좀 부탁드립니다.

당일 종가 0봉 기준... 21봉전부터 31봉전 사이에 최대 거래량이 발생한날의 거래량을 A라고 하고 20봉전 거래량이 A날의 거래량 대비 50%이하이고, 20봉전 종가가 -5% ~ +5% 사이인 종목을 검색하고 싶습니다.
프로필 이미지
회원
2015-04-15
168
글번호 85076
종목검색