커뮤니티

예스랭귀지 Q&A

글쓰기
답변완료

수식요청

안녕하세요 검색식을 잘쓰고 있습니다. 그런데 아래와 같이 당일고가와 같은 고가가 나오는 종목을 찾으려고 하는데, 잘안되네요 // '▼' 텍스트 표시를 위한 변수 Var : tx(0); Var : conditionMet(false); // 최종 조건 만족 여부 플래그 Var : dayIndex(0); // 이전 날짜를 순회할 루프 인덱스 Var : matchCount(0); // DayHigh(0)와 일치하는 날짜 개수 카운터 // --- 조건 확인 로직: DayHigh(0)의 고가가 DayHigh(0)~DayHigh(99) 내에서 2번 이상 출현하는가? --- // (즉, 현재 날짜 고가가 과거 99 거래일 이내에서 한 번이라도 동일하게 출현하는가?) // 1. DayHigh(0) 고가가 전체 100 거래일(DayHigh(0) ~ DayHigh(99)) 내에서 몇 번 나타나는지 셉니다. // (주의: DayHigh(0) 자기 자신도 카운트되므로, 2번 이상 나타나야 과거 출현을 의미) matchCount = 0; // 카운트 초기화 For dayIndex = 0 to 99 Begin // 스캔 범위를 0부터 99까지 100 거래일로 설정 // 현재 스캔 중인 거래일의 고가가 DayHigh(0)의 고가와 정확히 같은지 확인 if (DayHigh(dayIndex) == DayHigh(0)) Then { matchCount = matchCount + 1; // 같으면 카운트 증가 } End; // --- 100 거래일 스캔 루프 끝 --- // 2. 'matchCount'가 2 이상인지 확인합니다. // (이는 DayHigh(0) 고가가 자기 자신 외에 과거 거래일에서 최소 한 번 더 나타났음을 의미) if (matchCount >= 2) Then { // 조건 만족: DayHigh(0) 고가가 과거 99 거래일 내에서 최소 한 번 이상 반복됨 conditionMet = true; } // --- 최종 판단 --- if (conditionMet) Then { // '▼' 텍스트를 차트에 표시합니다. 위치는 오픈가 기준 위쪽입니다. // (분봉 차트에서 사용 시, 해당 봉의 위치에 표시됩니다) tx = Text_New_Self(sDate,sTime,O+PriceScale*15,"▼"); // 스타일 및 색상 설정 Text_SetStyle(tx,2,0); Text_SetColor(tx,Black); } 상기와 같은 식을 만들었는데 식을 작동시키면 모든 봉에 표시가 됩니다.혹시 확인가능하신지요 감사합니다.
프로필 이미지
풍요
2025-05-18
219
글번호 190922
검색
답변완료

부탁드립니다 항상 감사합니다

10// &#9989; 예스트레이더 코인용 최종 안정화 Plot 버전 (Invalid argument(22) 완전 차단) Input: 익절비율(1.02), 손절비율(0.992), 기준거래량배수(2), atrMult(3.0), atrLen(10); Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false), 기준거래량(0); Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0); Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0); Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0); Var: Plot익절(0), Plot손절(0), Plot승률(0); // SuperTrend 계산 ATR = Average(TrueRange, atrLen); Up = (High + Low)/2 + atrMult * ATR; Dn = (High + Low)/2 - atrMult * ATR; If CurrentBar = 1 Then PrevST = 0; If Close > PrevST Then ST = Dn Else ST = Up; PrevST = ST; // 지표 계산 기준거래량 = Average(Volume, 20); RSI값 = RSI(Close, 14); BB상단 = BollBandUp(Close, 20, 2); BB하단 = BollBandDn(Close, 20, 2); BB중심 = Average(Close, 20); // === 롱 진입 === If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 * 기준거래량배수 and Close > BB상단 and RSI값 < 70 and Close > ST Then Begin 진입가 = Close; 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then 손익비 = (익절가 - 진입가) / (진입가 - 손절가); 진입중 = true; End; // === 숏 진입 === If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 * 기준거래량배수 and Close < BB하단 and RSI값 > 30 and Close < ST Then Begin 진입가 = Close; 익절가 = 진입가 * (2 - 익절비율); 손절가 = 진입가 * (2 - 손절비율); If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then 손익비 = (진입가 - 익절가) / (손절가 - 진입가); 숏진입중 = true; End; // === 롱 청산 === If 진입중 = true Then Begin If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then Begin If Close >= 익절가 Then 승거래 += 1; 진입중 = false; 총거래 += 1; End; End; // === 숏 청산 === If 숏진입중 = true Then Begin If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then Begin If Close <= 익절가 Then 승거래 += 1; 숏진입중 = false; 총거래 += 1; End; End; // === Plot 시각화 (안정성 강화 버전) === 진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0); Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0); Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0); Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0); Plot1(진입상태, "진입여부"); Plot2(Plot익절, "익절가"); Plot3(Plot손절, "손절가"); Plot4(Plot승률, "승률(%)"); 2.// &#9989; E-mini Nasdaq 100 전용 안정화 Plot 버전 (포인트 기반 청산) Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000), atrMult(3.0), atrLen(10); Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false); Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0); Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0); Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0); Var: Plot익절(0), Plot손절(0), Plot승률(0); // SuperTrend 계산 ATR = Average(TrueRange, atrLen); Up = (High + Low)/2 + atrMult * ATR; Dn = (High + Low)/2 - atrMult * ATR; If CurrentBar = 1 Then PrevST = 0; If Close > PrevST Then ST = Dn Else ST = Up; PrevST = ST; // 지표 계산 RSI값 = RSI(Close, 14); BB상단 = BollBandUp(Close, 20, 2); BB하단 = BollBandDn(Close, 20, 2); BB중심 = Average(Close, 20); // === 롱 진입 === If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and Close > BB상단 and RSI값 < 70 and Close > ST Then Begin 진입가 = Close; 익절가 = 진입가 + 익절포인트 * MinMove; 손절가 = 진입가 - 손절포인트 * MinMove; If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then 손익비 = (익절가 - 진입가) / (진입가 - 손절가); 진입중 = true; End; // === 숏 진입 === If 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and Close < BB하단 and RSI값 > 30 and Close < ST Then Begin 진입가 = Close; 익절가 = 진입가 - 익절포인트 * MinMove; 손절가 = 진입가 + 손절포인트 * MinMove; If (진입가 > 0 and 손절가 > 0 and 진입가 <> 손절가) Then 손익비 = (진입가 - 익절가) / (손절가 - 진입가); 숏진입중 = true; End; // === 롱 청산 === If 진입중 = true Then Begin If Close >= 익절가 or Close <= 손절가 or RSI값 >= 75 Then Begin If Close >= 익절가 Then 승거래 += 1; 진입중 = false; 총거래 += 1; End; End; // === 숏 청산 === If 숏진입중 = true Then Begin If Close <= 익절가 or Close >= 손절가 or RSI값 <= 25 Then Begin If Close <= 익절가 Then 승거래 += 1; 숏진입중 = false; 총거래 += 1; End; End; // === Plot 시각화 (안정성 강화 버전) === 진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0); Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0); Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0); Plot승률 = IFF(총거래 > 0, 100 * 승거래 / 총거래, 0); Plot1(진입상태, "진입여부"); Plot2(Plot익절, "익절가"); Plot3(Plot손절, "손절가"); Plot4(Plot승률, "승률(%)"); 3. // ? E-mini Nasdaq 100 전용: 수동 손익비 조절 박스 포함 안정화 버전 (문법 오류 수정 포함) Input: 익절포인트(30), 손절포인트(12), 기준거래량(10000), atrMult(3.0), atrLen(10), 수동진입가(0), 수동익절가(0), 수동손절가(0), 수동모드(false); Var: 진입가(0), 익절가(0), 손절가(0), 진입중(false), 숏진입중(false); Var: RSI값(0), BB상단(0), BB하단(0), BB중심(0), 손익비(0.0); Var: ATR(0), ST(0), Up(0), Dn(0), PrevST(0); Var: 총거래(0), 승거래(0), 손익률(0.0), 진입상태(0); Var: Plot익절(0), Plot손절(0), Plot승률(0); // 외부 함수 정의 필요 External: BollBandUp, BollBandDn; External: MinMove; // SuperTrend 계산 If CurrentBar = 1 Then PrevST = Close; ATR = Average(TrueRange, atrLen); Up = (High + Low)/2 + atrMult * ATR; Dn = (High + Low)/2 - atrMult * ATR; If Close > PrevST Then ST = Dn Else ST = Up; PrevST = ST; // 지표 계산 RSI값 = RSI(Close, 14); BB상단 = BollBandUp(Close, 20, 2); BB하단 = BollBandDn(Close, 20, 2); BB중심 = Average(Close, 20); // === 자동 진입 조건 === If 수동모드 = false and 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and Close > BB상단 and RSI값 < 70 and Close > ST Then Begin 진입가 = Close; 익절가 = 진입가 + 익절포인트 * MinMove; 손절가 = 진입가 - 손절포인트 * MinMove; If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then 손익비 = (익절가 - 진입가) / (진입가 - 손절가); 진입중 = true; End; If 수동모드 = false and 진입중 = false and 숏진입중 = false and Volume > 기준거래량 and Close < BB하단 and RSI값 > 30 and Close < ST Then Begin 진입가 = Close; 익절가 = 진입가 - 익절포인트 * MinMove; 손절가 = 진입가 + 손절포인트 * MinMove; If (진입가 > 0 and 손절가 > 0 and AbsValue(진입가 - 손절가) > 0.00001) Then 손익비 = (진입가 - 익절가) / (손절가 - 진입가); 숏진입중 = true; End; // === 수동 모드 진입 === If 수동모드 = true and 진입중 = false and 숏진입중 = false and 수동진입가 > 0 and 수동익절가 > 0 and 수동손절가 > 0 and AbsValue(수동진입가 - 수동손절가) > 0.00001 Then Begin 진입가 = 수동진입가; 익절가 = 수동익절가; 손절가 = 수동손절가; 손익비 = (익절가 - 진입가) / (진입가 - 손절가); 진입중 = true; End; // === 롱 청산 === If 진입중 = true Then Begin If 익절가 > 0 and 손절가 > 0 and (Close >= 익절가 or Close <= 손절가 or RSI값 >= 75) Then Begin If Close >= 익절가 Then 승거래 += 1; 진입중 = false; 총거래 += 1; End; End; // === 숏 청산 === If 숏진입중 = true Then Begin If 익절가 > 0 and 손절가 > 0 and (Close <= 익절가 or Close >= 손절가 or RSI값 <= 25) Then Begin If Close <= 익절가 Then 승거래 += 1; 숏진입중 = false; 총거래 += 1; End; End; // === Plot 시각화 === 진입상태 = IFF(진입중 = true or 숏진입중 = true, 1, 0); Plot익절 = IFF(익절가 > 0 and 손절가 > 0, 익절가, 0); Plot손절 = IFF(익절가 > 0 and 손절가 > 0, 손절가, 0); Plot승률 = IFF(총거래 > 0 and 승거래 >= 0, 100 * 승거래 / 총거래, 0); Plot1(진입상태, "진입여부"); Plot2(Plot익절, "익절가"); Plot3(Plot손절, "손절가"); Plot4(Plot승률, "승률(%)"); 둘다 각 차트에 구현되게 부탁드립니다
프로필 이미지
윤호석
2025-05-18
250
글번호 190921
지표
답변완료

지표 문의 드립니다.

안녕하세요~ 항상 수고가 많으십니다. 불러온 차트봉수 혹은 지정한 캔들의 갯수의 거래량을 배열에 저장하고 해당 배열에서 저장된 값을 큰순서대로 정렬하여 해당값의 고가와 저가를 차트에 박스로 표현하고 싶습니다. 박스로 표현할때 상위 10위까지의 내용을 표현하고 싶습니다.
프로필 이미지
oni
2025-05-18
221
글번호 190920
지표
답변완료

수식 수정 부탁드립니다.

안녕하세요. 수고 많으십니다. 특정날짜에 시가 진입해서 특정날짜 시가에 청산하는 전략을 만들고 있습니다. 일봉을 사용하다보니 시가(장시작직후)에만 진입하도록 되어 있는데 10시(장시작 1시간후)에도 분할 매수매도 할 수 있도록 수식 수정 부탁드립니다. (일봉에서 구현이 어렵다면 한시간봉으로 전략을 만들어 주셔도 됩니다.) 또한 진입 청산 날짜가 계속 추가되다 보면 과거 시뮬레이션을 하려면 라인수가 너무 많아지는 단점이 있습니다. 시뮬레이션 및 실전전략으로 사용하기 위해서 라인 수를 줄여서 컴팩트하게 만들어 주시면 감사하겠습니다. Input : EntryDate1(20250331), EntryDate2(20250430); Input : ExitDate1(20250429), ExitDate2(20250528); Input : EntryTime1(90000), EntryTime2(100000); Input : ExitTime1(140000), ExitTime2(150000); If Date == EntryDate1 Then { Buy("BUY1", AtStop, NextBarOpen, int(1000000/C)); } If Date == ExitDate1 Then { ExitLong("Sell1", Atstop, NextBarOpen, "BUY1"); } If Date == EntryDate2 Then { Buy("BUY2", AtStop, NextBarOpen, int(1000000/C)); } If Date == ExitDate2 Then { ExitLong("Sell2", Atstop, NextBarOpen, "BUY1"); }
프로필 이미지
착한이
2025-05-18
212
글번호 190919
시스템

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

프로필 이미지
우유
2025-05-19
16
글번호 190918
시스템
답변완료

문의드립니다.

아래처럼 3개 시간대에서 시작과 종료가 되는 시간대 수식 부탁드립니다. 10시 15분 시작 ~ 13시 00분 종료 14시 00분 시작 - 17시 30분 종료 18시 30분 시작 - 02시 00분 종료
프로필 이미지
카르마다
2025-05-18
165
글번호 190917
시스템
답변완료

부탁드립니다 항상 감사합니다

// ===== 손익비 박스 전략 (복사 전용) ===== Input: 손절비율(0.995), 선길이분(60); Var: 진입가(0), 손절가(0), 박스ID(0), 박스색(Red); Var: 진입중(false), 숏모드(false); // 예시 진입 조건 (사용자 조건에 맞게 수정) If 진입중 == false and Close > Open Then Begin 진입가 = Close; 손절가 = 진입가 * 손절비율; 진입중 = true; 숏모드 = false; Text_New(Date, Time, Close, "TEST 진입"); TL_SetSize(TL_New(Date, Time, 진입가, Date, MinutesToTime(TimeToMinutes(Time) + 선길이분), 진입가), 1); // 손익비 박스 시각화 박스ID = TL_New(Date, Time, 진입가, Date, Time, 손절가); TL_SetColor(박스ID, 박스색); TL_SetSize(박스ID, 2); TL_SetExtLeft(박스ID, false); TL_SetExtRight(박스ID, false); Text_New(Date, Time, (진입가 + 손절가)/2, "손익비: 무한 / 손절: -" + NumToStr(100 - 손절비율 * 100, 1) + "%"); End; 구현이 되질않습니다 도와주세요 ㅠ
프로필 이미지
윤호석
2025-05-17
229
글번호 190916
지표
답변완료

화면 중앙에 문자를 넣고 싶습니다.

안녕하세요. 화면주기와 상관없이 띄워지는 화면 중앙에 문자를 넣고 싶습니다. 기존 수식으로 해보니 특정시기 가격과 현재가 연관되서 위치를 잡는 방법밖에 생각되지 않습니다 혹시 가능하다면 화면 중앙에 들어가는 문구의 크기와 색상과 투명도(?) 까지 설정할수있는 변수부분이 있었으면 합니다. 미리 감사드립니다~!
프로필 이미지
에이텍
2025-05-17
216
글번호 190915
지표
답변완료

부탁드립니다 항상 감사합니다

Input: 비교봉(100), 플러스폭(20), 마이너스폭(20), 익절비율(1.05), 손절비율(0.95); Var: A(0), B(0), T(0), 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(false), 매도완료(false), 총수(0), 승수(0), 진입날짜(0); // 모멘텀 계산 A = O; B = Accum(iff(A > A[비교봉], 플러스폭, iff(A < A[비교봉], -마이너스폭, 0))); If B > B[1] Then T = 1; Else if B < B[1] Then T = -1; Else T = T[1]; // 기준 거래량 계산 (데이터 충분할 때만) If CurrentBar > 20 Then 기준거래량 = Average(volume, 20); // 진입 조건 If 진입중 == false and 매도완료 == false and T == 1 and CurrentBar > 20 Then Begin If volume > 기준거래량 and Close > BollBandUp(20, 2) and Close > Open and (Close - Open) > (High - Low) * 0.6 Then Begin 진입가 = Close; 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 진입중 = true; 총수 = 총수 + 1; 진입날짜 = Date; Text_New(Date, Time, Close, "BUY"); End; End; 차트가 검증은되는데 구현이 되질않습니다 수정부탁드리겠습니다
프로필 이미지
윤호석
2025-05-17
299
글번호 190914
지표
답변완료

문의 드립니다.

평소 도움 주심에 감사드립니다. 아래 신호 수식에 대한 종목 검색식 부탁 드립니다. M20 = ma(C, 20, 삼각); M60 = ma(C, 60, 삼각); HH = HighestSince(1, CrossUp(M20, M60), M20); A=if(M20 != HH && M20>M60, HH, 0); CROSSUP(C,A) AND A != 0 감사합니다.
프로필 이미지
ikksoo
2025-05-17
228
글번호 190913
검색