커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식문의

아래 수식, 잘 이용하고 있읍니다.(자동매매에) 쓰다보니 변별력을 높이기 위해 다음 사항을 추가하고 싶으나 직접 만들 자신없어 요청드립니다.1봉전 CrossUp(myZLMA ,myEMA) + 0봉전 RSI(14)>=60, -1~-5봉 RSI(14)<59.9 or 0봉전 CrossUp(myZLMA ,myEMA) + 0봉전 RSI(14)>=60, -1~-5봉 RSI(14)<59.9 ============================================================ input : 기간(15); var : myema(0),correction(0),myZLMA (0); myEMA = Ema(C, 기간); correction = C + (C - myEMA); myZLMA = Ema(correction, 기간) ; var1 = Ema(C,200);if CrossUp(myZLMA ,myEMA) and V>= V[1]*2 and C>C[1]*1.02 and countif(myZLMA > myZLMA[1] and myEMA > myEMA[1] and var1 > var1[1],2) == 2 Then Find(1);
프로필 이미지
ksks
2025-11-05
97
글번호 227689
종목검색
답변완료

수식요청

안녕하세요 수식 부탁드립니다 아래식에서 수식 수정 부탁드립니다 매수식 sw2선이 양선인 상태에서 10 이평선 밑에 있고 10이평선 이 sw2선위에 있는 상태에서 캔들이 양봉으로 이평 10선 상향 돌파시 매수.매도식 sw2선이 음선이고 10 이평 위에 위치하고 이평선이 sw2 선 아래에 있는 상태에서 10이평선을 하향 돌파시Inputs : Period(20), Sence(1.5), CC_DN(Yellow); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0),T(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); If STime == 180000 Then DBN = 0; DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H-L; JustChanged = FALSE; if CurrentBar <= Var2 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H-L) /2; end; if CurrentBar == Var1 then begin if Highs[Var2] >= Highs[Var3] then begin UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); #Plot1(VLineUp,"VLineUp"); end; if Highs[Var2] < Highs[Var3] then begin DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6,Var2)); #Plot2(VLineDn,"VLineDn"); end; end; if CurrentBar > Var1 then begin if DnWave[1] and Close > VLineDn then begin DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; end; if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; end; if JustChanged == FALSE then begin if Close > HHighest then HHighest = Close; else if Close < LLowest then LLowest = Close; end; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); VLineDn = LLowest + (Var5 * MA(Var6,Var2)); if UpWave[1] then T = 1; else if DnWave[1] then T = -1; end; Input : BBP(20), MultiD(2),P(30); var : BBmd(0),BBup(0),BBdn(0),mav(0); BBmd = ma(C,Period); BBup = BollBandUp(BBP,MultiD); BBdn = BollBandDown(BBP,MultiD); mav = ma(C,P); if CrossDown(C,BBup) and t == -1 and c > mav Then sell(); if crossup(C,BBdn) and t == 1 and c < mav Then buy(); 첨부 https://www.yesstock.com/community/file-download?name=193585_sw2.yin&post_key=192729(sw2선)
프로필 이미지
아트정
2025-11-05
75
글번호 227688
시스템
답변완료

사용하고있는 시스템에 강제청산 계속 되는것 보고싶습니다

안녕하세요 수고 많으십니다1, 해선는 나스닥 골드 크로드오일 에서 360분차트 하여 봉 두개 만들어지면 무조건 강제청산 부탁합니다 청산안되요?국선는 input : 시작시간(70000),종료시간(151000); // 시작시간 종료 시간도 사용하고 있습니다 국선는 140분차트해선는 input : 시작시간(20000),종료시간(10000); // 시작시간 종료 시간도 사용하고 있습니다조건 뭐든지 하였을때buy (); 신호 는 한봉마다 발생하고있다 실재거래조건 뭐든지 하였을때 sell (); 한봉 마다 신호 발생하고있다 실재거래 아래 식 에서 봉이 8개 만들었는데 청산 안되고있다 어떤건 4개 만들었는데 강제 청산 안되고있다## 무조건 2개 봉이 만들어지면 청산 안되네요 ???## 7시 시작하여 360분차트 사용하였을때 아래식은 2개마다 청산 안되고있습니다 해결할수있나요input : N(2); ==> 숫자 2 를 넣었는데 봉 2개마다 강재 청산 안된다??? if MarketPosition == 1 and BarsSinceEntry == N Then ExitLong();if MarketPosition == -1 and BarsSinceEntry == N Then ExitShort();2, 윗글 봉 2개마다 청산 안되므로 다른 아이디어 추가 하겠습니다 방법는 시간으로 청산 하겠습니다 예를들어 국선 140분차트 사용하는경 우 280분마다 청산 계속되게 해주세요 예를들어 해선 360분차트 사용하는경 우 720분마다 청산 계속되게 해주세요 시간으로 모든 포지션 청산정리 한후 새로운 신호 받겠습니다 대단히 감사합니다
프로필 이미지
놀이터
2025-11-05
59
글번호 227687
시스템
답변완료

지표 부탁드립니다

안녕하세요 늘 도움주셔서 감사합니다.아래 지표 변환 부탁드립니다.length =input(10,minval=1,title="bb period")dev = input(1,minval=0.0001,title="deviations")//MACDfastlength=input(12,minval=1)slowlength=input(26,minval=1)signallength=input(9,minval=1)fastMA = ema(close,fastlength)slowMA=ema(close,slowlength)macd = fastMA-slowMA//Bollinger Bandsstd=stdve(mad,length)upper=(std*dev+(sma(macd,length)))lowr=((sma(macd,length))-(std*dev))band1=plot(upper,color=gray,style=line,linewidth=2,title="upper band")band2=plot(lower,color=gray,style=line,linewidth=2,title="lower band")fill(band1,band2,color=blue, transp=75,title="fill")mc=macd>=upper?blue:red
MACD볼린져밴드
프로필 이미지
라몬
2025-11-05
65
글번호 227686
지표
답변완료

종목검색식 문의

글번호 227653 에서 " 위 그림과 같이 아이원플러스, 모니터랩은 그 이후에도 만족한 날짜가 있습니다. 즉 30일중 여러날 만족하면 가장최근 날짜가 결과값으로 표시됩니다." 라는 답변을 받았습니다. 그렇다면 30일치 검색을 하였을때, 종목이 각 다른 날에 중첩되어 검색이 되더라도 검색된 날 각 표시가 되게 할 수 는 없을까요? 예를 들어 오늘을 기준으로 30일치를 한번에 검색할때 11월 1일에 삼성전자가 검색이 되고11월 5일에도 삼성전자가 검색이 된다면, 글번호 227653에서 제가 작성한 식으로는 11월 5일 삼성전자만 표시가 됩니다. 제가 원하는 것은 11월 1일에도 삼성전자가 나오고, 11월 5일에도 삼성전자가 나오게 하는 것입니다. (중복일시 가장 최근에 검색된 것만 검색된 날짜만 표시되는 것이 아닌 ! ) 모든 날짜에 표시가 되게 할 수 있도록 아래 수식을 변경해주시면 감사하겠습니다. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/* 조건식 변환본 (최근 30일치 자동검색 버전) 원식: A and B and C and ((D and E and F and G and H) or (M and J and K)) and N and O and P and Q*/var : A(false), B(false), Cc(false), Dd(false), Ee(false), Ff(false);var : Gg(false), Hh(false), Mm(false), Jj(false), Kk(false);var : Nn(false), Oo(false), Pp(false), Qq(false);var : d(false);var : VALUE1(0);/* A: 1봉전 종가대비 0봉전 고가등락률 15% 이상 */A = (H - C[1]) / C[1] * 100 >= 15;/* B: 0봉전 시가 < 0봉전 종가 */B = O < C;/* C: [일]거래대금(일:백만) 20000이상 999999999이하 → 원단위로 변환: 20000000000 ~ 999999999000000*/Cc = m >= 20000000000 and m <= 999999999000000;/* D: [일]3봉전 5봉 평균거래량 100000이상 999999999이하 */Dd = ma(V,5)[3] >= 100000 and ma(V,5)[3] <= 999999999;/* E: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Ee = (C - C[1]) / C[1] * 100 <= 29.65;/* F: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Ff = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* G: 2봉전 시가 < 2봉전 종가 */Gg = O[2] < C[2];/* H: 3봉전 종가대비 2봉전 고가등락률 15% 이상 */Hh = (H[2] - C[3]) / C[3] * 100 >= 15;/* M: [일]4봉전 5봉 평균거래량 100000이상 999999999이하 */Mm = ma(V,5)[4] >= 100000 and ma(V,5)[4] <= 999999999;/* J: 3봉전 시가 < 3봉전 종가 */Jj = O[3] < C[3];/* K: 4봉전 종가대비 3봉전 고가등락률 15% 이상 */Kk = (H[3] - C[4]) / C[4] * 100 >= 15;/* N: 1봉전 종가대비 0봉전 종가등락률 29.65% 이하 */Nn = (C - C[1]) / C[1] * 100 <= 29.65;/* O: 2봉전 종가대비 1봉전 종가등락률 29.65% 이하 */Oo = (C[1] - C[2]) / C[2] * 100 <= 29.65;/* P: 3봉전 종가대비 2봉전 종가등락률 29.65% 이하 */Pp = (C[2] - C[3]) / C[3] * 100 <= 29.65;/* Q: 4봉전 종가대비 3봉전 종가등락률 29.65% 이하 */Qq = (C[3] - C[4]) / C[4] * 100 <= 29.65;/* 최종식 */d = A and B and Cc and ( (Dd and Ee and Ff and Gg and Hh) or (Mm and Jj and Kk) ) and Nn and Oo and Pp and Qq;/* 조건 충족일 기록 */if d then VALUE1 = sDate;/* 최근 30일 내 조건이 한 번이라도 발생한 종목만 출력 */if CountIf(d == true, 30) >= 1 then Find(VALUE1);
프로필 이미지
마을
2025-11-05
77
글번호 227685
종목검색
답변완료

종목검색되게 조건검색식 부탁드립니다

조건검색식 코드수식 부탁드립니다 1.일목구름수치값 : ShortPeriod 40 ,midPeriod 125, Longperiod 250 (첨부한 구름대는 26일 앞당긴 구름입니다(현재캔들위치와 구름색깔이 양운인지 바로알수있게 해놨슴) 2. 반드시 양운구름안으로 한번은 캔들이 들어갔다가 캔들이 양운위로 나오는 순간 or 돌파완료시 검색식에 나타나게 해주세요. (최근 5일 내 캔들이 구름 안에 들어간 적이 있고,오늘(또는 최근 1일) 종가가 구름 상단을 돌파할 때 종목이 포착되게 해주고,5일 평균대비 거래량도 150% 급증종목이면 좋겠습니다)
프로필 이미지
해피럭키
2025-11-05
90
글번호 227684
종목검색
답변완료

예스종목검색으로 변환요쳥합니다...

아래는 키움 신호검색 200일 신고가 신호수식입니다...이것을 신고가 첫봉(일봉기준) 예스 종목검색으로 요청합니다..highest(C(1), 200) < C
프로필 이미지
서민순
2025-11-05
68
글번호 227683
종목검색
답변완료

익절 이후 익절가격 돌파할 경우만 거래 계속

익절1이 발생하면 다음 거래는 익절1 가격을 돌파해야 거래를 계속하는 수식으로 수정바랍니다.익절2가 발생하면 마찬가지로 익절2가를 돌파해야 거래를 계속하는 수식으로 수정바랍니다.아래 수식은 익절 발생과 상관없이 조건을 만족하면 거래를 수행합니다.항상 고맙습니다.******************************************************************************************************************************input : 진입시간(084500),진입제한시간(150000);input : 거래횟수(5),누적패수(5),연속패수(3),누적패수조정(4);input : b1(1),진입눌림1(2),진입돌파1(3);input : b2(2),진입눌림2(3),진입돌파2(4);input : als(550),atr1(0),atr2(315);input : bls(480),btr1(0),btr2(730);input : b1lock(120000),익절1(330);input : b2lock(140000),익절2(590);var : T1(0),entry(0),LL(0),EH(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);var : Tcond(false);var : loss(0),consecLoss(0),패수(0);//영업일변경if bdate != bdate[1] Then{ //손실횟수 초기화 0 loss = 0; //연속손실횟수 초기화 0 consecLoss = 0; //패수는 누적패수 패수 = 누적패수;}//청산발생if TotalTrades > TotalTrades[1] Then{ //손실이면 if PositionProfit(1) < 0 Then { //loss 1씩 증가 loss = loss+1; //consecLoss 1씩 증가 consecLoss = consecLoss+1; //consecLoss이 3이면 패수를 누적패수에서 누적패수조정으로 변경 if consecLoss == 연속패수 Then { 패수 = 누적패수조정; } } Else //손실이 아니면 consecLoss으로 초기화 consecLoss = 0;} if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then Tcond = true; if (sdate != sdate[1] and stime >= 진입제한시간) or (sdate == sdate[1] and stime >= 진입제한시간 and stime[1] < 진입제한시간) Then Tcond = false; if (sdate != sdate[1] and stime >= 진입시간) or (sdate == sdate[1] and stime >= 진입시간 and stime[1] < 진입시간) Then{ T1 = TotalTrades; E1 = 0; LL = L; } if stime >= 진입시간 then{ if L < LL Then LL = L; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then{ if E1 == 0 and C >= LL+PriceScale*B1 Then{ E1 = 1; H1 = H; i1 = index; V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; #저가가 시작봉종가보다 클때만 눌림체크 if L >= V1 and L <= H1-PriceScale*진입눌림1 Then{ E1 = 2; i1 = index; S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and L < V1 Then{ E1 = 0; LL = L; } if loss < 패수 and E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파1 and Tcond == true Then{ buy("b1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; LL = L; } if L < LL Then LL = L; if MarketPosition == 0 and entry >= 1 and entry < 거래횟수 Then{ if E1 == 0 and C >= LL+PriceScale*B2 Then{ E1 = 1; H1 = H; i1 = index; V1 = LL; //시작점 종가 } if E1 == 1 and index > i1 then{ if H > H1 Then H1 = H; #저가가 시작봉종가보다 클때만 눌림체크 if L >= V1 and L <= H1-PriceScale*진입눌림2 Then{ E1 = 2; i1 = index; S1 = H1; } } //시작점 종가보다 낮은 가격이 발생하면 초기화 if E1 >= 1 and L < V1 Then{ E1 = 0; LL = L; } if loss < 패수 and loss < 누적패수 and E1 == 2 and index > i1 and C >= S1+PriceScale*진입돌파2 and Tcond == true Then{ buy("b2"); } } } if MarketPosition== 1 Then{ if IsEntryName("b1") == true Then { SetStopLoss(als,PointStop); SetStopTrailing(atr2,atr1,PointStop,1); } Else if IsEntryName("b2") == true Then { SetStopLoss(bls,PointStop); SetStopTrailing(btr2,btr1,PointStop,1); } Else { SetStopLoss(0); SetStopTrailing(0,0); }}if marketposition() == 1 and IsEntryName("b1") == true and stime<b1lock Then ExitLong("익절1",Atlimit,EntryPrice+익절1);if marketposition() == 1 and IsEntryName("b2") == true and stime<b2lock Then ExitLong("익절2",Atlimit,EntryPrice+익절2);SetStopEndofday(151500);
프로필 이미지
목마와숙녀
2025-11-05
52
글번호 227682
시스템
답변완료

장시작부터 15분간의 최고가를 넘어서는 종목검색식을 만들고 싶은데 알려주세요

장시작 부터 15분간의 최고가를 구하고 현재가가 최고가를 넘어서면 검색되는 종목검색식을 만들고 싶은데 ////////////////////////////////////////////////////////////////// 예스트레이더 예스랭귀지 조건검색식// 09:00:00~09:16:00 양봉 여부 모니터링용 출력 추가////////////////////////////////////////////////////////////////Input: StartTime(90000), // 09시 00분 00초 EndTime(91500); // 09시 15분 00초Vars: OpenVal(0), highVal(0), CloseVal(0); // 지정 시간 구간 내 시가, 종가 구함OpenVal = TimeOpen(StartTime, EndTime);CloseVal = TimeClose(StartTime, EndTime);highVal = TimeHigh(StartTime, EndTime);// 조건 충족 시 종목 검색 신호 발생if Close>highVal and CloseVal>OpenVal Then Find(CloseVal);뭐가 잘못되서 2000~2200 까지의 값만 나올까요?
프로필 이미지
성공한럭키홍홍
2025-11-05
55
글번호 227681
종목검색
답변완료

문의드립니다

**data2 이평선참고해서 data1증액매수식인데요.1.이평선골든크로스이후에Inputs: FastMovAvg(12), SlowMovAvg(26), MACDMovAvg(9);Variables: XMACD(0);If Crossup(MACD(FastMovAvg, SlowMovAvg), EMA(MACD(FastMovAvg, SlowMovAvg), MACDMovAvg)[1]) Then Buy ("MACD");위수식을 추가로입력하고싶습니다.--원래수식 --inputs : P1(5),P2(20),RSILength(10), OverSold(30),OverBought(70);input : 첫진입금액(1000000),A(10);var : m1(0,Data2),m2(0,Data2), R(0,Data1);var : TT(0,Data1),T1(0,Data1),entry(0,Data1),mm(0,data1),vol(0,Data1);m1 = Data2(ma(C,P1));m2 = Data2(ma(C,P2));R = data1(RSI(RSILength));If Data2(m1 > m2) and Crossup(R, OverSold) Then{ if TotalTrades == 0 Then mm = 첫진입금액; Else mm = mm*(1+A/100); Buy("B",OnClose,Def,Floor(Floor(mm/C)/10)*10);}if data2(crossup(ma(c,5),ma(c,20))) Then{ if TotalTrades == 0 Then mm = 첫진입금액; Else mm = mm*(1+A/100); Buy("B2",OnClose,Def,Floor(Floor(mm/C)/10)*10);}if Data2(CrossDown(m1,m2)) or Crossup(R, OverBought) Then Sell("S");
프로필 이미지
2685up
2025-11-05
59
글번호 227676
시스템