커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

문의드립니다

메타로 짜여진 수식을 예스로 변경을 할려고 하는데 어렵네요 좀 도와주세요 메타로 단순 매수 매도식으로 나오는것인데요 ========================================= #property copyright "Copyright ?2010, FX Turbo Marksman" #property link "http://www.fxturbomarksman.com" #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Red #property indicator_color2 Yellow #property indicator_width1 1 #property indicator_width2 1 extern int gi_76 = 4; extern int gi_80 = 500; extern bool SoundAlarm = FALSE; extern bool EmailAlarm = FALSE; double g_ibuf_92[]; double g_ibuf_96[]; int gi_100 = 0; int gi_104 = 0; int init() { IndicatorBuffers(2); SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 164); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 164); SetIndexBuffer(0, g_ibuf_92); SetIndexBuffer(1, g_ibuf_96); GlobalVariableSet("AlertTime" + Symbol() + Period(), TimeCurrent()); GlobalVariableSet("SignalType" + Symbol() + Period(), 5); return (0); } int deinit() { GlobalVariableDel("AlertTime" + Symbol() + Period()); GlobalVariableDel("SignalType" + Symbol() + Period()); return (0); } int start() { int li_12; double ld_52; double ld_60; double ld_68; double ld_76; double ld_84; double ld_92; double ld_100; double lda_108[1000]; double ld_120; if (gi_80 >= 1000) gi_80 = 950; SetIndexDrawBegin(0, Bars - gi_80 + 11 + 1); SetIndexDrawBegin(1, Bars - gi_80 + 11 + 1); int l_ind_counted_8 = IndicatorCounted(); double ld_112 = 0; int li_20 = gi_76 * 2 + 3; double ld_36 = gi_76 + 67; double ld_44 = 33 - gi_76; int l_period_24 = li_20; if (Bars <= 12) return (0); if (l_ind_counted_8 < 12) { for (int li_0 = 1; li_0 <= 0; li_0++) g_ibuf_92[gi_80 - li_0] = 0.0; for (li_0 = 1; li_0 <= 0; li_0++) g_ibuf_96[gi_80 - li_0] = 0.0; } for (int li_4 = gi_80 - 11 - 1; li_4 >= 0; li_4--) { li_12 = li_4; ld_76 = 0.0; ld_84 = 0.0; for (li_12 = li_4; li_12 <= li_4 + 9; li_12++) ld_84 += MathAbs(High[li_12] - Low[li_12]); ld_76 = ld_84 / 10.0; li_12 = li_4; ld_68 = 0; while (li_12 < li_4 + 9 && ld_68 < 1.0) { if (MathAbs(Open[li_12] - (Close[li_12 + 1])) >= 2.0 * ld_76) ld_68 += 1.0; li_12++; } if (ld_68 >= 1.0) ld_92 = li_12; else ld_92 = -1; li_12 = li_4; ld_68 = 0; while (li_12 < li_4 + 6 && ld_68 < 1.0) { if (MathAbs(Close[li_12 + 3] - Close[li_12]) >= 4.6 * ld_76) ld_68 += 1.0; li_12++; } if (ld_68 >= 1.0) ld_100 = li_12; else ld_100 = -1; if (ld_92 > -1.0) l_period_24 = 3; else l_period_24 = li_20; if (ld_100 > -1.0) l_period_24 = 4; else l_period_24 = li_20; ld_52 = 100 - MathAbs(iWPR(NULL, 0, l_period_24, li_4)); lda_108[li_4] = ld_52; g_ibuf_92[li_4] = 0; g_ibuf_96[li_4] = 0; ld_60 = 0; if (ld_52 < ld_44) { for (int li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { } if (lda_108[li_4 + li_16] > ld_36) { ld_60 = High[li_4] + ld_76 / 2.0; if (li_4 == 1 && gi_100 == FALSE) { gi_100 = TRUE; gi_104 = FALSE; } g_ibuf_92[li_4] = ld_60; } } if (ld_52 > ld_36) { for (li_16 = 1; lda_108[li_4 + li_16] >= ld_44 && lda_108[li_4 + li_16] <= ld_36; li_16++) { } if (lda_108[li_4 + li_16] < ld_44) { ld_60 = Low[li_4] - ld_76 / 2.0; if (li_4 == 1 && gi_104 == FALSE) { gi_104 = TRUE; gi_100 = FALSE; } g_ibuf_96[li_4] = ld_60; } } } if (gi_100 == TRUE && TimeCurrent() > GlobalVariableGet("AlertTime" + Symbol() + Period()) && GlobalVariableGet("SignalType" + Symbol() + Period()) != 0.0) { ld_120 = High[iHighest(Symbol(), 0, MODE_HIGH, 3, 0)] + 5.0 * Point; if (SoundAlarm) Alert("Sell signal @ ", Symbol(), " Period ", Period(), " Stop Loss @", ld_120); if (EmailAlarm) SendMail("Sell Signal FX Marksman", "Sell signal @ " + Symbol() + " Period " + Period() + " Stop Loss @ " + ld_120); ld_112 = TimeCurrent() + 60.0 * (Period() - MathMod(Minute(), Period())); GlobalVariableSet("AlertTime" + Symbol() + Period(), ld_112); GlobalVariableSet("SignalType" + Symbol() + Period(), 0); } if (gi_104 == TRUE && TimeCurrent() > GlobalVariableGet("AlertTime" + Symbol() + Period()) && GlobalVariableGet("SignalType" + Symbol() + Period()) != 1.0) { ld_120 = Low[iLowest(Symbol(), 0, MODE_LOW, 3, 0)] - 5.0 * Point; if (SoundAlarm) Alert("Buy signal @ ", Symbol(), " Period ", Period(), " Stop Loss @", ld_120); if (EmailAlarm) SendMail("BUY Signal FX Marksman", "Buy signal @ " + Symbol() + " Period " + Period() + " Stop Loss @ " + ld_120); ld_112 = TimeCurrent() + 60.0 * (Period() - MathMod(Minute(), Period())); GlobalVariableSet("AlertTime" + Symbol() + Period(), ld_112); GlobalVariableSet("SignalType" + Symbol() + Period(), 1); } return (0); } 부탁드립니다.
프로필 이미지
드림컴트루1
2013-11-15
843
글번호 69538
시스템

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

프로필 이미지
huhboo99
2013-11-15
0
글번호 69535
시스템
답변완료

감사합니다.

감사합니다. input : P(20),per(30); var1 = ma(c,P); if CrossDown(c,var1*(1-Per/100)) Then buy(); 위의 수식에 조건을 추가하여 아래와 같이 하면 지표상에서 조건이 충족되었은데도 신호가 발생하는 않은 사유는 무엇언지요? if CrossDown(c,var1*(1-Per/100)) and countif(c >=o,3) == 3 Then buy(); 감사합니다.
프로필 이미지
huhboo99
2013-11-15
157
글번호 69534
시스템
답변완료

청산 ?

안녕하세요 매수포지션. 에서 1.5p. 손해나면. 추가 매수1개약 매도 포지션. 에서. . 1.5p. 손해나면. 추가 매도. 1개약 감사^^
프로필 이미지
회원
2013-11-15
152
글번호 69531
시스템
답변완료

질문입니다.

사용자함수 min에서 안에 들어가는 a,b,c,d,e..의 변수 개수가 정해져 있나요? 예를들어 3개까지만 가능?... MIN(a,b,c,d,e,f,g,h...)
프로필 이미지
회원
2013-11-15
128
글번호 69522
지표

누리맨 님에 의해서 삭제되었습니다.

프로필 이미지
누리맨
2013-11-15
6
글번호 69520
지표
답변완료

수식문의

아래 수식은 고저점들의 생성 위치가 당일이던 전일이던 상관없이 이어져서 표시가 되는데, 이를 당일 기준에 만족하는 것만 표시하고 싶습니다. 예를 들어 고점기준으로 설명드리면, 오늘 장이 시작될 당시에는 HH, PreHH1, PreHH2 모두가 존재하지 않겠지요. 이럴 경우 각 고점이 형성되기 전에는 각 지표를 당일의 고점으로 표시하고 싶습니다. 즉, 장 시작 후 첫번째 HH가 형성되기 전까지는 HH=PreHH1=PreHH2=HighD(0)가 되겠지요. 그리고 HH가 생성되면 HH를 제외한 나머지 두 값은 여전히 당일 최고값(HighD(0))을 가지게 되고, HHPre1이 생성되면 HHPre2값만 여전히 HighD(0) 값이 되겠고요. 마지막으로 PreHH2가 생성되면 그 때부터 3값은 모두 다른 값을 가지게 하고 싶습니다. 수식 부탁드립니다. 감사합니다. input : Left(3),Right(3); var : HH(0),preHH1(0),preHH2(0),LL(0),PreLL1(0),PreLL2(0); if SwingHigh(1,H,Left,Right,Left+right+1) != -1 Then{ HH = H[right]; PreHH1 = HH[1]; PreHH2 = PreHH1[1]; } if SwingLow(1,L,Left,Right,Left+right+1) != -1 Then{ LL = L[right]; PreLL1 = LL[1]; PreLL2 = PreLL1[1]; } plot1(HH,"최근고점"); plot2(PreHH1,"직전고점"); plot3(PreHH2,"직직전고점"); plot4(LL,"최근저점"); plot5(PreLL1,"직전저점"); plot6(PreLL2,"직직전저점");
프로필 이미지
쉬어가자
2013-11-15
168
글번호 69519
지표
답변완료

문의드립니다

[기존수식] input : BBP(20),dv(2); var : BBup(0),BBdn(0); BBup = BollBandUp(BBP,dv); BBdn = BollBandDown(BBp,Dv); if C > O and C <= BBdn Then var1 = 1; if MarketPosition == 0 or C <= BBdn Then{ var1 = 2; Buy("매수"); } if C < O and BBUp>= C Then var1 = -1; if MarketPosition == 0 or C >= BBup Then{ var1 = -2; sell("매도"); } if MarketPosition == 1 and countif(C<O,3) == 3 Then ExitLong(); if MarketPosition == -1 and countif(C>O,3) == 3 Then ExitShort(); 위 수식에서 1. 매도/매수 진입시 양봉과 음봉이 연달아 3번나오는 조건을 만족하더라고 수익이 나는 경우에는 청산이 안되고, 목표수익이 난후에 조건만족시 청산하도록 수정바랍니다. 반대로, 손실이 날경우 처음 조건만족시 기존대로 청산되면 됩니다 2. 당일 장마감 시점(오후3시 기준)때 보유 포지션 손실이 -0.5p 이상인경우 청산, -0.5이하이거나 이익(+수익)일경우 포지션 유지 설정바랍니다. (꼭, 장마감 기준(오후3시 기준)입니다. 장시간 동안의 손실은 무시합니다.) <아래의 경우의 수를 보면 이해하시기 편하실겁니다> a. 당일(1일째) 수익 - 2일째 수익 - 3일째 1번 조건만족(수익중이므로 유지) - 4일째 목표수익(청산) b. 당일(1일째) 수익 - 2일째 장중 손실 / 장마감시 수익(유지)- 3일째 장마감시 손실(청산) c. 당일(1일째) 장마감시 손실(청산) d. 당일(1일째) 수익 - 2일째 장마감시 손실(청산) 등등, 여러가지 경우의 수가 나올수가 있습니다. 결론은, 수정 요청한 1번과 2번 수식이 적용되면 됩니다.
프로필 이미지
칼봉산
2013-11-15
146
글번호 69518
검색
답변완료

감사합니다.

감사합니다. 진입신호가 bs가 아닌 것도 트레일링스탑이 되는 사유는 무엇인지요? if MarketPosition == 1 and Isentryname("bs")==true Then SetStopTrailing(30,15,PercentStop,0); 감사합니다.
프로필 이미지
huhboo99
2013-11-15
147
글번호 69517
시스템