답변완료
종목검색식 문의
글번호 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
271
글번호 227685
종목검색
답변완료
익절 이후 익절가격 돌파할 경우만 거래 계속
익절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
174
글번호 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
194
글번호 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");
2025-11-05
184
글번호 227676
시스템
답변완료
문의드립니다.
답변해 주신 아래 수식에서 나스닥 10분봉 초기자본 1만달러로 시작하는 수식으로 변경 그리고 아래수식을 시스템에 적용을 하면 최초에 한번 만 매수가 일어나고 그 이후에는 매매가 안일어나는 것 같습니다.수정을 부탁드립니다.//////////////////////////////// 최초 자본 100만원 10분봉 매매에서 무포지션시 무조건 70% 매수하고요. 30% 현금이고요. 매수 투자분: 현금 비율이 70:30 되도록 투자비율 리밸런싱을 합니다. 투자매수에서 10% 수익이 나면 77:30 비율이 되면 비율이 70: 30 되도록 투지매수 이익분을 처분하고 반대로 투자매수에서 10% 손실이 나면 63:30 비율이 되면 비율이 70: 30 되도록 현금을 투자합니다. 수식을 부탁드립니다. 시스템답변 1예스스탁 예스스탁 답변2025-11-04 09:18:57 안녕하세요 예스스탁입니다. input : 자본(1000000); var : MM(0),vol(0),Cash(0),diff(0); MM = 자본+NetProfit; if MarketPosition == 0 and Index > 5 Then { vol = Floor((MM*0.7)/C); Buy("B",OnClose,Def,vol); Cash = MM-(Vol*C); } if MarketPosition == 1 Then { var1 = C*CurrentContracts; var2 = (var1+Cash)*0.7; if var1 >= var2 Then { diff = Floor(abs(var1-var2)/C); if diff > 0 Then { ExitLong("bx",OnClose,Def,"",diff,2); Cash = Cash + (diff*C); } } Else { diff = Floor(abs(var1-var2)/C); if diff > 0 Then { Buy("bb",OnClose,Def,diff); Cash = Cash - (diff*C); } } } 즐거운 하루되세요
2025-11-05
187
글번호 227664
시스템
답변완료
종목 검색식 부탁드립니다.
1. 아래의 예스트레이더 수식에, "0봉전 ~10봉전까지의 모든종목" 을 추가하여 수정 부탁드려요. -아래--- Input: ConvPeriod1(8), BasePeriod1(19), SpanPeriod1(33), ConvPeriod2(9), BasePeriod2(26), SpanPeriod2(52); Vars: Conv1(0), Base1(0), Span1_1(0), Span1_2(0), Cloud1_Upper(0), Cloud1_Lower(0), Conv2(0), Base2(0), Span2_1(0), Span2_2(0), Cloud2_Upper(0), Cloud2_Lower(0), BullishCross(false), BearishCross(false); // 반일목 계산 Conv1 = (Highest(H, ConvPeriod1) + Lowest(L, ConvPeriod1)) / 2; Base1 = (Highest(H, BasePeriod1) + Lowest(L, BasePeriod1)) / 2; Span1_1 = (Conv1 + Base1) / 2; Span1_2 = (Highest(H, SpanPeriod1) + Lowest(L, SpanPeriod1)) / 2; if Span1_1 < Span1_2 then { Cloud1_Upper = Span1_1; Cloud1_Lower = Span1_2; } else { Cloud1_Upper = Span1_2; Cloud1_Lower = Span1_1; } // 정일목 계산 Conv2 = (Highest(H, ConvPeriod2) + Lowest(L, ConvPeriod2)) / 2; Base2 = (Highest(H, BasePeriod2) + Lowest(L, BasePeriod2)) / 2; Span2_1 = (Conv2 + Base2) / 2; Span2_2 = (Highest(H, SpanPeriod2) + Lowest(L, SpanPeriod2)) / 2; if Span2_1 < Span2_2 then { Cloud2_Upper = Span2_1; Cloud2_Lower = Span2_2; } else { Cloud2_Upper = Span2_2; Cloud2_Lower = Span2_1; } // 돌파 조건 BullishCross = CrossUp(Cloud1_Upper, Cloud2_Upper); // 상향 돌파 BearishCross = CrossDown(Cloud1_Lower, Cloud2_Lower); // 하향 돌파 // 검색 조건 if BullishCross then { Find(1); // 상향 돌파 종목 검색 } /* 하향 돌파 종목도 검색하려면 아래 주석 해제 if BearishCross then { Find(1); }*/
2025-11-05
148
글번호 227659
종목검색