커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

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

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

수식수정좀 부탁드립니다

Input : Period(5), LPercent(40), SPercent(60); Var : value(0); value = RSI(Period); value1 = (highest(c,7)+lowest(c,7))/2; #전환선 value2 = (highest(c,24)+lowest(c,24))/2; #기준선 # 매수/매도청산 If value1 < value2 && CrossUP(value, SPercent) Then { Buy(); } # 매도/매수청산 If CrossDown(value, LPercent) Then { Sell(); } 봉 갯수 기준이 있어야 하나요? 봉갯수에 따라 RSI기준값이 틀려진다면 250봉으로 해주시면 됩니다 수식수정할 내용은 일목균형표의 전환선 기준선 값이 RSI 과열 침체를 나타내는 베이스라인값 즉 40선 이하에 있을때 매수 하라는 내용 입니다 매수 진입을 골든크로스에서 하는데 일목균형표의 전환선 기준선이 RSI 침체선인 40선 이하에 있을때를 말합니다 내부변수값을 가져오는와서 그 값보다 아래일때 조건을 지정하면 될거 같은데요 하나 더 요청입니다 검색식에서 일목균형표의 기준선 전환선이 모두 RSI 침체선인 40 이하에 있는 종목 검색하는식도 부탁드려요 RSI는 5일을 기준으로 하시면 됩니다
프로필 이미지
실상사
2014-04-06
160
글번호 74168
시스템
답변완료

수식문의 드립니다

선물 5분봉으로 현재 봉이 이전 1시간동안(봉갯수12. 봉 완성 종가기준) 고점돌파면 매수... 같은 기준으로 저점을 하향시 매도하고자 합니다 감사합니다...^^
프로필 이미지
푸른산하
2014-04-06
153
글번호 74167
시스템
답변완료

매수건수와 매도건수의 차이

아래 수식은 봉한개에 매수수량과 매도수량의 차이를 나태낸 수식입니다 그런데 매도건수와 매수건수의 차이를 나타낼 수는 없는지요? 감사합니다 --- 아 래--- Inputs:length1(50),length2(100),length3(150),Range1(0.5),Range2(1),Range3(1.5); var1=Upticks-Downticks; If Var1>0 Then Var2=Var1; Else var2=0; if Var1<0 Then var3=downticks-Upticks; Else var3=0; /* if var2>0 and var2<length1 Then var2=Range1; if var2>=length1 and var2<length3 Then var2=Range2; if var2>=length3 Then var2=Range3; if var3>0 and var3<length1 Then Var3=Range1; if var3>=length1 and var3<length3 Then var3=Range2; if var3>=length3 Then var3=Range3; */ plot1(Var2,"상승형"); plot2(Var3,"하락형");
프로필 이미지
회원
2014-04-06
178
글번호 74166
지표
답변완료

atstop , atlimit 에 대해서 질문합니다.

if 조건 then buy(); if MarketPosition == 1 Then Exitlong("bx",Atstop,entryprice*0.995); 즉 진입가의 0.5% 이탈시 즉시 손절인데요 문제는 진입봉 바로 다음봉이 긴 장대음봉을 내면서 2%넘게 밀렸는데도 손절이 나가지 않고 그(장대음봉)다음봉의 시가에 청산이 됩니다. 반대의 경우인 atlimit도 똑같은 문제가 발생하네요. 즉 살펴본 결과 진입봉의 바로 다음봉에 청산이 필요할때 atstop과 atlimit가 작동하지 않는것 같은데요. 어떻게 해야 합니까? 뭔가 식을 더해줘야 하나요? 이렇게 되면 손절의 의미가 없어지는데요! 어떻게 해결해야 합니까? 도움을 부탁합니다.
프로필 이미지
알고리즘
2014-04-06
176
글번호 74165
시스템
답변완료

[STAD_05] Currency4Day 질문입니다

Input: RSILen(50), Pcnt(0.2); If DayOfWeek(Date) == 5 then begin #Long Entry & Exits If RSI(RSILen) > 50 then Buy("",atstop,nextbaropen + Pcnt*atr(10)); ------------------------------------------------- If nextbaropen > High then ExitLong("",atstop,High); ---------------------------------------------- 다음봉의시가(b)가 현재봉의고가(a) 보다 크면 현재봉의고가(a)에서 청산 인거 같은데요 이미 (b)가 (a)보다 큰 상태에서 가격이 (a)까지 내려오면 청산한다는 뜻인가요? 부탁드립니다 // ExitLong("",atstop,Low); #Short Entry & Exits If RSI(RSILen) < 50 then Sell("",atstop,nextbaropen - Pcnt*atr(10)); If nextbaropen < Low then ExitShort("",atstop,Low); // ExitShort("",atstop,High); end; #Exits /*If MarketPosition <> 0 then Begin ExitLong("",AtMarket) ; ExitShort("",AtMarket) ; end;*/
프로필 이미지
cinamon
2014-04-05
192
글번호 74164
시스템
답변완료

[STAD_05] Stochastics OverBS 재질문입니다

Inputs: Length(12), OBought(70), OSold(30), SetUpLen(6), EntryPoint(0.1), ExitPoint(1.0); Vars: KVal(0), DVal(0), BuySetup(0), SellSetup(0), BuyPeriod(99), SellPeriod(99), BuyStop(0), SellStop(0); var : Factor(0.5); //Stochastic Line Calculations if CurrentBar > 1 then { Kval = Kval[1] + (Factor*(FastK(Length)-Kval[1])); //기본stochasticsk와 다른 방식의 stochasticsk Dval = ((Dval[1]*2) + Kval)/3; //다른 방식의 StochasticsD } //Entry Setups IF KVal < OSold AND CrossUp( KVal , DVal) Then Begin BuySetup = Highest(High, 2); BuyStop = Low; BuyPeriod = 0; End; IF KVal > OBought AND CrossDown( KVal , DVal) Then Begin SellSetup = Lowest(Low, 2); SellStop = High; SellPeriod = 0; End; //Counters IF MarketPosition == 1 Then BuyPeriod = SetUpLen + 1; Else BuyPeriod = BuyPeriod + 1; IF MarketPosition == -1 Then SellPeriod = SetUpLen + 1; Else SellPeriod = SellPeriod + 1; //Entry Signals if EntriesToday(date) < 1 then { IF BuyPeriod <= SetUpLen Then Buy("",atstop,BuySetup + EntryPoint); IF SellPeriod <= SetUpLen Then Sell("",atstop,SellSetup - EntryPoint); } //System Exits IF CrossDown( KVal , DVal ) AND KVal > OSold Then Begin ----------------------------------------------------------------- BuyPeriod = SetUpLen; --------------------------------------------------------- 이 부분이 왜들어갔는지 이유를 알고싶습니다 안들어가도 무방한거 아닌가요? 부탁드립니다 ExitLong(); End; IF CRossUp( Kval , DVal) AND KVal < OBought Then Begin SellPeriod = SetUpLen; ExitShort(); End; //Stops ExitLong("",atstop, BuyStop-ExitPoint); ExitShort("",atstop, SellStop+ExitPoint); 태그저장 취소
프로필 이미지
cinamon
2014-04-05
203
글번호 74163
시스템
답변완료

부탁드립니다

안녕하세요 tradestion 에서 예스로 변환 부탁드립니다. //+------------------------------------------------------------------+ //| StepMA_v7.1.mq4 | //| Copyright ?2006, TrendLaboratory | //| http://finance.groups.yahoo.com/group/TrendLaboratory | //| E-mail: igorad2003@yahoo.co.uk | //+------------------------------------------------------------------+ #property copyright "Copyright ?2006, TrendLaboratory" #property link "http://finance.groups.yahoo.com/group/TrendLaboratory" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 Aqua #property indicator_color2 Blue #property indicator_color3 Red //---- input parameters extern int Length = 10; // Volty Length extern double Kv = 1.0; // Sensivity Factor extern int StepSize = 0; // Constant Step Size (if need) extern int MA_Mode = 0; // Volty MA Mode : 0-SMA, 1-LWMA extern int Advance = 0; // Offset extern double Percentage = 0; // Percentage of Up/Down Moving extern bool HighLow = false; // High/Low Mode Switch (more sensitive) extern int ColorMode = 0; // Color Mode Switch extern int BarsNumber = 0; //---- indicator buffers double LineBuffer[]; double UpBuffer[]; double DnBuffer[]; double smin[]; double smax[]; double trend[]; double StepMA=0, ATR0=0,ATRmax=-100000,ATRmin=1000000; int limit; //---- StepSize Calculation double StepSizeCalc ( int Len, double Km, int Size, int k) { double result; if( Size==0 ) { double AvgRange=0; double Weight = 0; for (int i=Len-1;i>=0;i--) { if(MA_Mode==0) double alfa= 1.0; else alfa= 1.0*(Len-i)/Len; AvgRange+= alfa*(High[k+i]-Low[k+i]); Weight += alfa; } ATR0 = AvgRange/Weight; if (ATR0>ATRmax) ATRmax=ATR0; if (ATR0<ATRmin) ATRmin=ATR0; result=MathRound(0.5*Km*(ATRmax+ATRmin)/Point); } else result=Km*StepSize; return(result); } //---- StepMA Calculation double StepMACalc (bool HL, double Size, int k) { int counted_bars=IndicatorCounted(); double result; if (HL) { smax[k]=Low[k]+2.0*Size*Point; smin[k]=High[k]-2.0*Size*Point; } else { smax[k]=Close[k]+2.0*Size*Point; smin[k]=Close[k]-2.0*Size*Point; } if (counted_bars==0){smax[limit+1]=smax[limit];smin[limit+1]=smin[limit];trend[limit+1]=0;} trend[k]=trend[k+1]; if (Close[k]>smax[k+1]) trend[k]=1; if (Close[k]<smin[k+1]) trend[k]=-1; if(trend[k]>0) { if(smin[k]<smin[k+1]) smin[k]=smin[k+1]; result=smin[k]+Size*Point; } else { if(smax[k]>smax[k+1]) smax[k]=smax[k+1]; result=smax[k]-Size*Point; } //Print (" k=",k," trend=",trend[k], " res=",result," Smax=", smax[k], " Smin=", smin[k]); return(result); } //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { string short_name; //---- indicator line IndicatorBuffers(6); SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_LINE); SetIndexArrow(1,159); SetIndexArrow(2,159); SetIndexBuffer(0,LineBuffer); SetIndexBuffer(1,UpBuffer); SetIndexBuffer(2,DnBuffer); SetIndexShift(0,Advance); SetIndexShift(1,Advance); SetIndexShift(2,Advance); SetIndexBuffer(3,smin); SetIndexBuffer(4,smax); SetIndexBuffer(5,trend); //---- name for DataWindow and indicator subwindow label short_name="StepMA("+Length+","+Kv+","+StepSize+")"; IndicatorShortName(short_name); SetIndexLabel(0,short_name); SetIndexLabel(1,"UpTrend"); SetIndexLabel(2,"DownTrend"); //---- SetIndexDrawBegin(0,Length); SetIndexDrawBegin(1,Length); SetIndexDrawBegin(2,Length); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| StepMA_v7.1 | //+------------------------------------------------------------------+ int start() { int shift, counted_bars=IndicatorCounted(); if ( BarsNumber > 0 ) int Nbars=BarsNumber; else Nbars=Bars; if ( counted_bars > 0 ) limit=Bars-counted_bars; if ( counted_bars < 0 ) return(0); if ( counted_bars ==0 ) limit=Nbars-Length-1; for(shift=limit;shift>=0;shift--) { int Step = StepSizeCalc( Length, Kv, StepSize, shift); Comment (" StepSize= ", Step); StepMA = StepMACalc ( HighLow, Step, shift)+Percentage/100.0*Step*Point; if ( ColorMode == 0) LineBuffer[shift]=StepMA; if ( ColorMode == 1) { if ( trend[shift]>0 ) {UpBuffer[shift]=StepMA-Step*Point;DnBuffer[shift]=EMPTY_VALUE;} else if ( trend[shift]<0 ) {DnBuffer[shift]=StepMA+Step*Point;UpBuffer[shift]=EMPTY_VALUE;} } else if ( ColorMode == 2) { if (trend[shift]>0) { UpBuffer[shift]=StepMA; if ( trend[shift+1] < 0 ) UpBuffer[shift+1] = DnBuffer[shift+1]; DnBuffer[shift]=EMPTY_VALUE; } if (trend[shift]<0) { DnBuffer[shift]=StepMA; if ( trend[shift+1] > 0 ) DnBuffer[shift+1] = UpBuffer[shift+1]; UpBuffer[shift]=EMPTY_VALUE; } } else { UpBuffer[shift]=EMPTY_VALUE; DnBuffer[shift]=EMPTY_VALUE; } } return(0); }Share Share this post on Digg Del.icio.us Technorati Twitter duhhhh is offline
프로필 이미지
괌
2014-04-05
820
글번호 74162
지표
답변완료

문의 드립니다.

1.예스차트에 수식을 넣을 수 있나요? 중심가 등을 수식으로 넣고 사용하려 합니다. 2. 보조지표 삽입하여 매수매도 신호 나오게 할 수 있나요? 3. 두개 이상의 보조지표를 복합해서 신호를 나오게 할 수 있나요?(예. 스토케스틱+MACD= 복합신호) 답변 부탁드립니다.
프로필 이미지
텔렉스
2014-04-05
133
글번호 74161
시스템
답변완료

부탁해요

#이평크로스식 Input : shortPeriod(1), longPeriod(76) ; Var : value(0); value = OSCP(shortPeriod, longPeriod); # 매수/매도청산 If CrossUP(value, 0) Then { Buy(); Exitshort(); } # 매도/매수청산 If CrossDown(value,0)Then { Sell(); Exitlong(); } #볼린저밴드식 var1 = BollBandUp(20,2); var2 = BollBandDown(20,2); Then{ if C > var1 +0.7then ExitShort(); Else buy(); } Then{ if C < var2 -0.7 Then ExitLong(); Else sell(); } if MarketPosition == 1 Then ExitLong("bx",atlimit,var1 +0.7); if MarketPosition == -1 Then ExitShort("sx",atlimit,var2 -0.7); 위 이평크로스식이 제되로 작동안되네요 이평크로스와 볼린저밴드 두식이 동시 적용되게 부탁합니다 즉 20일선크로스매매 와 보린저상한선과 하한선 일정밖에서 매수금지와 이익실현입니다.
프로필 이미지
큰바위얼굴
2014-04-05
165
글번호 74160
시스템