커뮤니티

예스랭귀지 Q&A

글쓰기

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

프로필 이미지
ksks
2025-11-11
1
글번호 227868
종목검색
답변완료

OVB 식의 시가 표시

늘 감사합니다.OVB 식의 당일 시가, 고가, 저가, 종가를 표시하는 지표식 전일의 시가, 고가, 저가, 종가를 표시하는 지표식 부탁합니다.감사합니다.
프로필 이미지
상암동
2025-11-10
27
글번호 227867
지표
답변완료

질문 있습니다.

질문 요점: 청산 후 NetProfit 체크 방식으로도 진입 차단 문제 발생안녕하세요.이전 질문에 대한 답변 감사합니다. (글번호 227784)"매 틱마다 체크하지 말고 청산 후에만 체크하라"는 조언을 참고하여 코드를 수정했는데, 여전히 같은 문제가 발생합니다.ㅜㅜ ===========================================구현하려는 기능===========================================주간 손실 제한 시스템:- 지난주 수익: 금요일 종가 까지 +200틱 벌었고- 이번주 월요일 시작하면서 최대 손실 허용: -200틱 입력 합니다.- 이번주 월~금 중에 누적 손실이 -200 도달 시: 강제 청산 + 이번 주 매매 종료예시:월요일 NetProfit: 200 → 210 → 160 → 90수요일 NetProfit: 90 → 0→ WeeklyProfit = 0 - 200 = -200→ 강제 청산 + 이번 주 매매 종료=========================================== 문제 상황===========================================UseWeeklyStop=0: 정상 작동 되지만...UseWeeklyStop=1: 차트 신호 전부 사라집니다. ㅠㅠ 차트에 아무것도 없습니다.===========================================핵심 코드===========================================// === Input ===Input : UseWeeklyStop(0); // 0=OFF, 1=ONInput : WeekStartProfit(0); // 이번 주 시작 수익 (틱)Input : MaxWeekLoss(-200); // 최대 허용 손실 (틱, 음수)// === 변수 ===Var : WeeklyProfit(0); // 이번 주 누적 수익Var : WeekStopTriggered(0); // 주간 손실 도달 플래그// === 진입 조건 (기존 조건 + WeekStopTriggered 체크) ===if MarketPosition == 0 and InWaitPeriod == 0 and (기타 진입 조건들...) and WeekStopTriggered == 0 Then { Buy("L", OnClose, Def, 1); // 진입 후 초기화...}// === 청산 후 주간 손실 체크 (손절 예시) ===if MarketPosition == 1 Then { // 손절 조건 if C <= StopPrice Then { ExitLong("U-"); LastExitDate = sDate; LastExitTime = CurrentTime; WaitMinutes = 1200; InWaitPeriod = 1; // 청산 직후 주간 손실 체크 if UseWeeklyStop == 1 and WeekStopTriggered == 0 Then { WeeklyProfit = NetProfit - WeekStartProfit; if WeeklyProfit <= MaxWeekLoss Then { WeekStopTriggered = 1; InWaitPeriod = 1; WaitMinutes = 99999; // 긴 대기시간으로 차단 } } } // 익절 조건 if H >= UpperBand Then { ExitLong("U+"); LastExitDate = sDate; LastExitTime = CurrentTime; WaitMinutes = 300; InWaitPeriod = 1; // 청산 직후 주간 손실 체크 if UseWeeklyStop == 1 and WeekStopTriggered == 0 Then { WeeklyProfit = NetProfit - WeekStartProfit; if WeeklyProfit <= MaxWeekLoss Then { WeekStopTriggered = 1; InWaitPeriod = 1; WaitMinutes = 99999; } } }}// 매도 포지션도 동일한 방식으로 구현=========================================== 디버깅 시도===========================================1. UseWeeklyStop=0으로 설정 했는데 정상 작동이 됩니다. 2. UseWeeklyStop=1, WeekStartProfit=0, MaxWeekLoss=-200 로 했더니 백테스트 시작부터 차트에 진입 신호 없고 아무것도 없습니다. 3. 백테스트 초기 상태는 아래와 같습니다. - NetProfit = 0 - WeekStartProfit = 0 - MaxWeekLoss = -200 - WeekStopTriggered = 0 - WeeklyProfit = 0 - 0 = 0 - 0 <= -200? → False (정상) 이론상 문제없어 보이는데 실제로는 진입 안됨4. WeekStopTriggered 관련 코드 전부 주석 처리 하니 정상 작동 됨 → WeekStopTriggered 변수 자체에 문제일가요?===========================================질문===========================================1. 청산 후에만 NetProfit를 체크하는데도 백테스트 초기에 진입이 차단되는 이유가 뭘까요?2. WeekStopTriggered 초기값이 0인데 진입 조건에서 WeekStopTriggered == 0 체크만으로 진입이 안 되는 이유가 있을까요?3. 변수 초기화 시점이나 스코프 문제일까요? - Var : WeekStopTriggered(0); 선언만으로 충분한가요? - 추가 초기화가 필요한가요?4. 이런 방식 대신 다른 방법을 사용해야 하나요? - NetProfit 대신 다른 함수? - 플래그 변수 대신 다른 방식?===========================================도움 요청===========================================주간 손실 제한 기능을 올바르게 구현하는 방법을 알려주시면 감사하겠습니다!- 청산 후 NetProfit 체크 방식이 맞나요?- 변수 초기화나 사용 방법에 문제가 있을까요?- 다른 접근 방법이 필요할까요?ㅜㅜ감사합니다!
프로필 이미지
스오어스
2025-11-10
41
글번호 227863
시스템
답변완료

지표식 좀 부탁드립니다.

당일 18시 3분에 콜,풋 종목 양매수 했을 경우 다음날 15시45분까지의 손익값중 최저값을 구하고 싶습니다.// 당일 18시3분에 양매수 했을 경우의 손익값input : 콜매수갯수(10),풋매수갯수(10),starttime(180300),endtime(154500);var : Tcond(false);var: LL(0);if stime == 180300 Then { // 당일 18시3분에 양매수 했을 경우의 손익값var1= c;Var2=Data2(c);}Var3= (c-var1)*콜매수갯수*250000;Var4=(Data2(c)-Var2)*풋매수갯수*250000;Var5= Var3+Var4;여기서 부터 안됩니다.18시 부터 다음날 15시45분까지의 양매수 손익값(var5)의 최저값을 구하고 싶습니다.if (sdate != sdate[1] and stime >= endtime) or (sdate == sdate[1] and stime >= endtime and stime[1] < endtime) then{ Tcond = false;}if (sdate != sdate[1] and stime >= starttime) or (sdate == sdate[1] and stime >= starttime and stime[1] < starttime) then{ Tcond = true; LL = Var5;}if Tcond == true then{ if Var5 < LL Then LL = Var5; Plot2(LL,"최저값");}plot1(Var5);
양합 양합손익
프로필 이미지
미운오리
2025-11-10
34
글번호 227862
지표
답변완료

종목검색식 부탁드립니다

ema(c,100) 이 ema (c,200)을 돌파 ema(c,100)이 20일 선행된 ema(c,200)을 돌파ema(c,100) 이 ema(c,300)을 돌파300봉 사이에서 위의 3봉이 같이 존재할때 사용하는 검색식 부탁드립니다
프로필 이미지
골더
2025-11-10
54
글번호 227859
종목검색
답변완료

종목검색식 부탁드립니다

1. 거래일 기준, 60일 동안 최대거래량 종목검색식 부탁드립니다. (60일 은 변수처리 해주세요) 2. 아래의 예스트레이더 수식에, "0봉전 ~10봉전까지의 모든종목" 을 추가하여 수정 부탁드려요. --아래-- input : P1(60),비율(1.95); var : cnt(0),count(0); var : sum1(0); var : mav1(0); Array : CC[300](0); if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then{ for cnt = 1 to 223{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1-1] > 0 Then{ sum1 = 0; for count = 0 to P1-1{ sum1 = sum1+CC[count]; } mav1 = sum1/P1; } IF mav1*비율>=L && C>O && C>=mav1 && mav1>mav1[1] TheN Find(1);3. 아래의 예스트레이더 수식에, "0봉전 ~10봉전까지의 모든종목" 을 추가하여 수정 부탁드려요. --아래-- input : 전환선기간(6); var : cnt(0); var : wH1(0), wL1(0); var : w전환선(0); Array : wH[100](0), wL[100](0); if DayOfWeek(Bdate) > DayOfWeek(Bdate[1]) Then { wH[0] = H; wL[0] = L; for cnt = 1 to 99 { wH[cnt] = wH[cnt-1][1]; wL[cnt] = wL[cnt-1][1]; } } if H > wH[0] Then wH[0] = H; if L < wL[0] Then wL[0] = L; if wH[전환선기간-1] < 0 and wL[전환선기간-1] > 0 then { wH1 = wH[0]; wL1 = wL[0]; for cnt = 0 to 전환선기간-1 { if wH[cnt] > wH1 Then wH1 = wH[cnt]; if wL[cnt] < wL1 Then wL1 = wL[cnt]; } w전환선 = (wH1 + wL1)/2; } input : P1(100); var : count(0),BB(0),BB1(0); var : sum1(0); var : mav1(0); Array : CC[300](0); if DayOfWeek(sdate) < DayOfWeek(sdate[1]) Then{ for cnt = 1 to 299{ CC[cnt] = CC[cnt-1][1]; } } CC[0] = C; if CC[P1-1] > 0 Then{ sum1 = 0; for count = 0 to P1-1{ sum1 = sum1+CC[count]; } mav1 = sum1/P1; } BB=MAX(w전환선,mav1); BB1=MIN(w전환선,mav1); IF BB1*1.01>=BB && C>O && CROSSUP(C,BB) TheN Find(1);
프로필 이미지
일지매7
2025-11-10
52
글번호 227858
종목검색
답변완료

검색식 부탁드립니다

S=sum(1);최고거래량=highestsince(1,S==1,V);D=valuewhen(1,최고거래량==v,c)A=Lowest(L, 기간);기간 120지표값D를 A가 N봉전에 돌파후 지속 중인 검색식 부탁 드립니다 N봉전은 3일로 해주세요
프로필 이미지
님이랑
2025-11-10
40
글번호 227857
종목검색
답변완료

조건검색문의드립니다

[1]지표명 : 앞당김단기선행 양운구름이 앞당김 장기음운상태일때 선행구름을 단기양운이 돌파 1)앞당김 단기선행구름 수식1 :앞당김 단기선행스팬1 선행1=(highest(high,shortPeriod)+lowest(low,shortPeriod)+highest (high,midPeriod)+lowest(low,midPeriod))/4 수식2 :앞당김 단기선행스팬2 선행2=(highest(high,longPeriod)+lowest(low,longPeriod))/2 지표조건설정 shortPeriod 5 midPeriod 10 longPeriod 25 2)앞당김 장기선행구름 수식1: 앞당김 장기선행스팬1 선행1=(highest(high,shortPeriod)+lowest(low,shortPeriod)+highest (high,midPeriod)+lowest(low,midPeriod))/4 수식2:앞당김 장기선행스팬2 선행2=(highest(high,longPeriod)+lowest(low,longPeriod))/2 지표조건설정 shortPeriod 40 midPeriod 125 longPeriod 250 (요청사항)앞당김 단기 양운구름대가 반드시 앞달김 장기 음운구름대를돌파후, 장기구름대가 양운으로 바뀌는 시점에 종목이 검색되게 예스트레이더 YesLanguage 문법에 맞게 변환해서 조건검색식을 만들어주세요. [2)지표명 : 위 수식에서 단기양운구름이 장기구름을(양운,음운 상관없이 관통되도 됨) 돌파시 검색되는 종목 조건검색식 부탁드립니다.
프로필 이미지
해피럭키
2025-11-10
50
글번호 227856
종목검색
답변완료

수식 검토 부탁드립니다.

항상 많은 도움 감사드립니다. 시스템식 중에서 포지션 정리 부분에서 stoploss가 생각하고는 다르게 작동하는 경우가 있어서 잘못된 부분에 대해서 검토 부탁드립니다.if MarketPosition == 1 Then { if IsEntryName("A매수") == true Then SetStopLoss(8,PointStop); if IsEntryName("B매수") == true Then SetStopLoss(10,PointStop); if IsEntryName("C매수") == true Then SetStopLoss(15,PointStop); } Else SetStopLoss(0);if MarketPosition == 1 Then{ if IsEntryName("A매수") == true Then{if CrossDown(A,B)thenExitlong("매수정리1",atmarket,def,"A매수");} if IsEntryName("B매수") == true Then{if CrossDown(C,D)thenExitlong("매수정리2",atmarket,def,"B매수");} if IsEntryName("C매수") == true Then{if CrossDown(E,F)thenExitlong("매수정리3",atmarket,def,"C매수");} }if MarketPosition == -1 Then { if IsEntryName("AI매도") == true Then SetStopLoss(8,PointStop); if IsEntryName("B매도") == true Then SetStopLoss(10,PointStop); if IsEntryName("C매도") == true Then SetStopLoss(15,PointStop); } Else SetStopLoss(0);if MarketPosition ==- 1 Then{ if IsEntryName("A매도") == true Then{if CrossUp(A,B)thenExitshort("매도정리1",atmarket,def,"A매도");} if IsEntryName("B매도") == true Then{if CrossUp(C,D)thenExitshort("매도정리2",atmarket,def,"B매도");} if IsEntryName("C매도") == true Then{if CrossUp(E,F)thenExitshort("매도정리3",atmarket,def,"C매도");} }이런식으로 작성하면 매수쪽에 stoploss 값은 맞게 포지션 정리가 되는데 매도쪽 stoploss가 정해놓은것과 다른 값에 정리가 되는 경우가 있어서요..검토 및 수식 수정 부탁드리겠습니다. 핵심은 매수와 매도 포지션 정리할때 각각 종류의 매수,매도 포지션에 다른 stoploss값을 주려는 것입니다.
프로필 이미지
비정성시
2025-11-10
38
글번호 227854
시스템
답변완료

종목검색식 요청드립니다.

아래 키움신호가 당일 분봉에서 볼린져밴드(20,2) 하단선 이하에서 신호가 발생했던 모든 종목을 검색하는 검색식을 만들고 싶습니다. 도움 부탁드립니다. 지표조건(볼린져밴드수치, 신호수식 지표수치)은 수정가능하도록 부탁드립니다. 감사합니다.!!^^* 키움신호수식 (지표조건 : period 20, ratio 2, Vmul 0.5) AA=C(1)<lowest(C(2), period)*ratio;BB=if(C(1)>O(1), (H(1)+L(1)+C(1)+H(1))/2-L(1), (if(C(1)<O(1), (H(1)+L(1)+C(1)+L(1))/2-L(1), (H(1)+L(1)+C(1)+C(1))/2-L(1)) ) );CC=if(C(1)>O(1), (H(1)+L(1)+C(1)+H(1))/4, (if(C(1)<O(1), (H(1)+L(1)+C(1)+L(1))/4, (H(1)+L(1)+C(1)+C(1))/4) ) );DD=(O>=BB) or crossup(C, BB);EE=(O>=CC) or crossup(C, CC);FF=V>=V(1)*Vmul;GG=C>O;HH=C(1)<=O;AA and (DD or EE) and FF and GG and HH
프로필 이미지
onlypsn
2025-11-10
43
글번호 227853
종목검색