커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

시스템 작동 관련

input : 시작일(20251113),시작시간(090000); Input : Period(14); Var : value(0); value = WILLR(Period); if Bdate >= 시작일 and sTime >= 시작시간 Then Condition1 = true; Condition2 = true; # 매수/매도청산 If CrossUP(value, -80) Then { Buy(); } # 매도/매수청산 If CrossDown(value, -20) Then { Sell(); } 이 수식으로 시스템을 하면은 시작일과 시간을 트레이딩 시작 하기전 신호가 나오지 않아야 되는데.. 이전 신호도 나옵니다..해외선물 거래입니다..nh 선물에서 하고요..
프로필 이미지
블루3
2025-11-13
45
글번호 227990
시스템
답변완료

문의

sell 수식에서 익절 발생 후 그 이후 진입은 익절가보다 낮은 가격에서 진입하도록 수식을 수정했는데...익절가 발생 후 부터는 아예 진입을 하지 않는 수식이 되었습니다.살펴주십시요.첨부파일 1은 기존 수식 결과첨부파일 2는 수정 수식 결과***************************************************************************************************************************input : 최대(999999),최소(550);input : 진입시간(084700),진입제한시간(142400); input : 거래횟수(20),누적패수(5),연속패수(2),누적패수조정(2),bigdown(15.00),조정거래횟수(7),조정진입제한시간(113000); input : b1(50),진입눌림1(5),진입돌파1(0),X1(999999),청산눌림1(0),청산돌파1(0);input : 경과봉(0),b2(150),진입눌림2(5),진입돌파2(0),X2(999999),청산눌림2(0),청산돌파2(0);input : als(40),atr1(0),atr2(135);input : bls(130),btr1(0),btr2(182);input : s1lock(120000),익절가1(8);input : s2lock(115000),익절가2(4.9);input : 만기청산시간1(144500),만기외청산시간1(150000);input : 만기청산시간2(150000),만기외청산시간2(142400);var : T1(0),entry(0),HH(0),LL(0),EH(0),EL(0),E1(0),H1(0),i1(0),S1(0),L1(0),V1(0);Var : 당일거래횟수(0),진입끝시간(0),bigdownCond(False);var : Tcond(false);var : loss(0),consecLoss(0),패수(0),익절가(0);//영업일변경if bdate != bdate[1] Then{ //손실횟수 초기화 0 loss = 0; //연속손실횟수 초기화 0 consecLoss = 0; //패수는 누적패수 패수 = 누적패수; //익절1이나 익절2가 발생하면 청산가격 저장할 변수 익절가 = 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; //청산으로 익절1이나 익절2이면 익절가에 청산가격 저장 if IsExitName("익절1",1) == true or IsExitName("익절2",1) == true Then 익절가 = ExitPrice(1); Else // 아니면 익절가 = 0; //익절가는 0}//영업일 변경if bdate != bdate[1] Then{ //손실횟수 초기화 0 loss = 0; //연속손실횟수 초기화 0 consecLoss = 0; //패수는 누적패수 패수 = 누적패수; //당일거래횟수는 거래횟수 당일거래횟수 = 거래횟수; //진입끝시간은 진입제한시간 진입끝시간 = 진입제한시간; //bigdownCond는 False bigdownCond = False;}//bigdownCond가 False인 상태에서//진입시간이후 조정진입제한시간 전에 시초가대비 BigDown이하 하락한 종가가 발생하면if bigdownCond == False and stime >= 진입시간 and sTime < 조정진입제한시간 and L <= DayOpen-BigDown Then //전일종가대비이면 DayOpen-> DayClose(1){ //BigDown는 true bigdownCond = true; //당일거래횟수는 조정거래횟수로 변경 당일거래횟수 = 조정거래횟수; //진입끝시간은 조정진입제한시간로 변경 진입끝시간 = 조정진입제한시간; //진입제한시간이후에 발생했다면 Tcond가 False이므로 //Tcond는 true로 변경 if sTime >= 진입제한시간 and Tcond == False Then Tcond = true;}if TotalTrades > TotalTrades[1] and PositionProfit(1) < 0 Then loss = loss+1;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; HH = H; }if stime >= 진입시간 then{ if H > HH Then HH = H; if MarketPosition == 0 Then entry = TotalTrades-T1; Else entry = (TotalTrades-T1)+1; if MarketPosition == 0 and entry == 0 Then { if E1 == 0 and C <= HH-PriceScale*B1 Then { E1 = 1; L1 = L; i1 = index; V1 = HH; //시작점 종가 } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; #고가가 시작봉종가보다 작을 때만 눌림체크 if H <= V1 and H >= L1+PriceScale*진입눌림1 Then{ E1 = 2; i1 = index; S1 = L1; } } //시작점 종가보다 높은 가격이 발생하면 초기화 if E1 >= 1 and H > V1 Then{ E1 = 0; HH = H; } if loss < 패수 and E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파1 and Tcond == true and 최대 > C and C >= 최소 Then{ sell("s1"); } } if TotalTrades > TotalTrades[1] Then{ E1 = 0; HH = H; } if H > HH Then HH = H; if MarketPosition == 0 and entry >= 1 and entry < 당일거래횟수 Then{ if E1 == 0 and C <= HH-PriceScale*B2 Then{ E1 = 1; L1 = L; i1 = index; } if E1 == 1 and index > i1 then{ if L < L1 Then L1 = L; if H >= L1+PriceScale*진입눌림2 Then{ E1 = 2; i1 = index; S1 = L1; } } if loss < 패수 and E1 == 2 and index > i1 and C <= S1-PriceScale*진입돌파2 and Tcond == true and 최대 > C and C >= 최소 and (익절가 == 0 or (익절가 > 0 and C < 익절가)) Then //익절가가 0이거나 익절가가 0보다 크면 종가가 익절가보다 작다 Then{ sell("s2"); E1 = 0; } } if MarketPosition == -1 and IsEntryName("s1") == true Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X1 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림1 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파1 Then{ ExitShort("sx1"); E1 = 0; } } } if MarketPosition == -1 and IsEntryName("s2") == true Then{ if entry >= 1 then{ if CurrentContracts > CurrentContracts[1] Then{ EL = L; E1 = 0; } if L < EL Then{ EL = L; E1 = 0; } if E1 == 0 and C >= EL+PriceScale*X2 Then{ E1 = 1; H1 = H; i1 = index; } if E1 == 1 and index > i1 Then{ if H > H1 Then H1 = H; if L <= H1-PriceScale*청산눌림2 Then{ E1 = 2; I1 = index; S1 = H1; } } if E1 == 2 and index > i1 and C >= S1+PriceScale*청산돌파2 Then{ ExitShort("sx2"); E1 = 0; } } } if marketposition() == -1 and IsEntryName("s1") == true and stime<s1lock Then ExitShort("익절가1",Atlimit,EntryPrice-익절가1);if marketposition() == -1 and IsEntryName("s2") == true and stime<s2lock Then ExitShort("익절가2",Atlimit,EntryPrice-익절가2);if MarketPosition== -1 Then{ if IsEntryName("s1") == true Then { SetStopLoss(PriceScale*als,PointStop); SetStopTrailing(PriceScale*atr2,PriceScale*atr1,PointStop,1); } Else if IsEntryName("s2") == true Then { SetStopLoss(PriceScale*bls,PointStop); SetStopTrailing(PriceScale*btr2,PriceScale*btr1,PointStop,1); } Else { SetStopLoss(0); SetStopTrailing(0,0); }}var : Month(0),nday(0),week(0); month = int(date/100)-int(date/10000)*100; nday = date - int(date/100)*100; Week = DayOfWeek(date); if (nday >= 8 and nday <= 14 and week == 4) or (sdate == 20141008) then { if sdate < 20160801 Then SetStopEndofday(만기청산시간1); Else SetStopEndofday(만기청산시간2); } Else { if sdate < 20160801 Then SetStopEndofday(만기외청산시간1); Else SetStopEndofday(만기외청산시간2); }
프로필 이미지
목마와숙녀
2025-11-13
60
글번호 227989
시스템
답변완료

수식 부탁 드림니다

안녕하십니까?수식 부탁 드립니다1.기준선1(Highest(H, 기간1) + Lowest(L, 기간1))/22. 기준선2(Highest(H, 기간2) + Lowest(L, 기간2))/23.기준선3(Highest(H, 기간3) + Lowest(L, 기간3))/24.고점M1 = (Highest(H, 기간1) + Lowest(L, 기간1))/2;M2 = (Highest(H, 기간2) + Lowest(L, 기간2))/2;HighestSince(1, crossUp(M1, M2), M1)5.저점M1 = (Highest(H, 기간1) + Lowest(L, 기간1))/2;M2 = (Highest(H, 기간2) + Lowest(L, 기간2))/2;LowestSince(1, crossDown(M1, M2), M1)----------------------------------------------------기간1 = 5기간2 = 10기간3 = 20================================1. 5 이평ma(C, period1)고점, 저점2. 10이평ma(C, period2)고점, 저점3. 20 이평ma(C, period3)고점, 저점========================항상 감사 합니다
프로필 이미지
s1017051
2025-11-13
78
글번호 227988
지표
답변완료

부탁드립니다.

해선 5분봉 차트에서 전일 특정시간(예: 전일 13시10분)의 종가를 표시하는 수식을 부탁드립니다.
프로필 이미지
예시
2025-11-13
37
글번호 227987
지표
답변완료

검색식 문의 드립니다.

안녕하세요. 조건 검색시 부탁 드립니다.
프로필 이미지
victor
2025-11-13
61
글번호 227986
종목검색
답변완료

검색식 확인 부탁합니다.

input: starttime(90000), endtime(152000),starttimeB(90000), endtimeB(152000), billion(15), rising_rate(1.05), diff_limit(1.02);var: condA(false), condB(false), ma10(0), ma20(0), ma60(0),ma120(0), maxval(0), minval(0),maxval2(0), minval2(0);/* 이동평균 계산 */ma10 = ma(C, 10);ma20 = ma(C, 20);ma60 = ma(C, 60);ma120 = ma(C, 120);/* 최대/최소 계산 */maxval = maxlist(ma10, ma20, C);minval = minlist(ma10, ma20, C);maxval2 = maxlist(ma60, ma20, C);minval2 = minlist(ma60, ma20, C);condB = (stime >= starttimeB and stime <= endtimeB) and (((ma120 > ma120[1]) and (maxval2 / minval2 < diff_limit)) or ((ma60 > ma60[1]) and (maxval / minval < diff_limit))) ; if CountIf(condB == true, 390) >= 1 Then find(1);검색식 중에 일부분을 가져왔는데요. condB를 제외하면 검색이 되는데 condB를 포함하면 검색이 되지 않습니다.diff_limit를 크게 가져가도 검색이 되지 않아 무슨 문제인가 싶어서 질문드립니다.감사합니다.
프로필 이미지
마녀58
2025-11-13
56
글번호 227984
검색
답변완료

조건검색문의드립니다

2가지 검색식 문의드립니다 [1]A =H > C(1) * 1.15 &&C > O && C < C(1) * 1.07 &&H > C * 1.1 &&(거래대금 > 5000 or Highest(거래대금(1), 10) < 거래대금);기준가 = Valuewhen(1, A, C);기준봉상승률 = Valuewhen(1, A, C/C(1) * 100 - 100);현재봉상승률 = C/C(1) * 100 - 100;매수타점 =C > 기준가 * 1.02 &&C > C(1) * 1.02 && C < C(1) * 1.08 &&기준봉상승률 + 현재봉상승률 <= 10 &&BarsSince(A) < 5 &&(ma(C, 10) < C or ma(C, 20) > C);매수타점 && !매수타점(1)위 수식을 조건검색식으로 변환 부탁드립니다(BarSince함수가 예스트레이더에서 지원되는진 모르겠으나, 다른 비슷한 조건함수가 있다면 그것도 적용해서 수식완성좀 부탁드리겠습니다)[2]수식오류 정정 요청드립니다(첨부이미지 오류뜨서 문의드립니다) input : P2(20),N(60);var : LT(0),HT(0),newH(0),Box1(False),bs(NaN);var : TOP(0),BTM(0);LT=LOWEST(L,P2);HT=HIGHEST(H,P2);if H > HT[1] Then{ NewH = H; bs = 0;}Else bs = bs+1;BOX1=HIGHEST(H,P2-2)= O*1.05 and //%이상 양봉 V >= V[1]*2 and //전봉대비 거래량 2배 CountIf(TOP>= H and H >= BTM,N)[1] == N Then //최근 N일 고저가는 상단과 하단사이 Find(1);
프로필 이미지
해피럭키
2025-11-12
90
글번호 227983
종목검색
답변완료

문의 드립니다

스탑주문이 설정되어 예를 들어 10종목이 설정되어 잇는데수익이 좋은 2종목이 잇어 스탑주문을 2종목만 해제하고 나머지 8종목은 그대로 설정 유지하는방법 문의 드립니다.스탑주문을 10종목 일괄 해제하고 개별적으로 종목마다 스탑주문을 걸어야 하나요
프로필 이미지
미래테크
2025-11-12
40
글번호 227982
시스템
답변완료

검색식 부탁드립니다.

아래의 키움 수식을 예스트레이더 검색식으로 변환 부탁드립니다. 감사합니다.M=macd(12,26);Ms=eavg(M,9);조건1=Crossup(M,Ms);T12=Trix(12);T26=Trix(26);변동12=T12-T12(1);변동26=T26-T26(1);조건2=Crossup(변동12,변동26);시그마=(C-avg(c,20)) /Stdev(c,20);조건3=Crossup(시그마,0);Wr=WilliamsR(28);조건4=Crossup(Wr,-25);조건1 && 조건2 && 조건3 && 조건4
프로필 이미지
작은소망1
2025-11-12
71
글번호 227981
종목검색
답변완료

부탁드립니다

1. 종가가 양봉이면서 가장 최근 음봉의 종가보다 높으면 파란색으로, 종가가 음봉이면서 가장 최근 양봉의 종가보다 낮으면 빨강색으로 구현해 주세요 2. 종가가 양봉이면서 가장 최근 2개이상 연속된 음봉의 최고가보다 높으면 파란색으로, 종가가 음봉이면서 가장 최근 2개 이상 연속된 양봉의 최저가보다 낮으면 빨강색으로 구현해 주세요3. 종가가 양봉이면서 가장 최근 2개이상 연속된 양봉의 최고가보다 높으면 파란색으로, 종가가 음봉이면서 가장 최근 2개 이상 연속된 음봉의 최저가보다 낮으면 빨강색으로 구현해 주세요 고맙습니다.
프로필 이미지
서태공
2025-11-12
39
글번호 227980
강조