커뮤니티

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

프로필 이미지
윤호석
2025-05-20 11:24:58
211
글번호 190981
답변완료
// ? RSI + MACD 숏 + 다중 목표가 TP3 + 손익비 박스 + 거래량 급증 + 텍스트 + 시간 제한 Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), tp1Ratio(0.995), tp2Ratio(0.990), tp3Ratio(0.985), slRatio(1.01), volumeMultiplier(2.0), 평균거래량기간(20), 시작시간(93000), 종료시간(150000); Var: rsiVal(0), macdFastEMA(0), macdSlowEMA(0), macdMain(0), macdSignal(0), macdHist(0), 진입가(0), TP1(0), TP2(0), TP3(0), SL(0), 거래량기준(0), 텍스트ID(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매도조건(false); // ▶? 1. RSI 계산 rsiVal = RSI(rsiLen); // ▶? 2. MACD 수동 계산 (Index 기준 초기화 제거) If CurrentBar = 1 Then Begin macdFastEMA = Close; macdSlowEMA = Close; macdMain = 0; macdSignal = 0; macdHist = 0; End Else Begin macdFastEMA = (Close * (2 / (macdFastLen + 1))) + macdFastEMA[1] * (1 - (2 / (macdFastLen + 1))); macdSlowEMA = (Close * (2 / (macdSlowLen + 1))) + macdSlowEMA[1] * (1 - (2 / (macdSlowLen + 1))); macdMain = macdFastEMA - macdSlowEMA; macdSignal = (macdMain * (2 / (macdSignalLen + 1))) + macdSignal[1] * (1 - (2 / (macdSignalLen + 1))); macdHist = macdMain - macdSignal; End; // ▶? 3. 평균 거래량 계산 거래량기준 = Average(Volume, 평균거래량기간); // ▶? 4. 진입 조건 + 시간 필터 If Time >= 시작시간 and Time <= 종료시간 Then Begin If rsiVal < rsiCut and macdHist < 0 and macdHist[1] > 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 매도조건 = true; 진입가 = Close; // 목표가 / 손절가 계산 TP1 = 진입가 * tp1Ratio; TP2 = 진입가 * tp2Ratio; TP3 = 진입가 * tp3Ratio; SL = 진입가 * slRatio; 박스상 = SL; 박스하 = TP3; // ?? 손익비 박스 (TL 선 4개) TL1 = TL_New(Date, Time, 박스상, Date, Time, 박스하); TL2 = TL_New(Date[1], Time[1], 박스상, Date[1], Time[1], 박스하); TL3 = TL_New(Date[1], Time[1], 박스상, Date, Time, 박스상); TL4 = TL_New(Date[1], Time[1], 박스하, Date, Time, 박스하); TL_SetColor(TL1, RGB(255, 200, 200)); TL_SetSize(TL1, 1); TL_SetColor(TL2, RGB(255, 200, 200)); TL_SetSize(TL2, 1); TL_SetColor(TL3, RGB(255, 200, 200)); TL_SetSize(TL3, 1); TL_SetColor(TL4, RGB(255, 200, 200)); TL_SetSize(TL4, 1); // ?? 텍스트 알림 텍스트ID = Text_New(Date, Time, High, "*진입조건만족"); Text_SetColor(텍스트ID, RGB(255, 0, 0)); End; End; // ▶? 5. 목표가 / 손절가 Plot 시각화 If 매도조건 Then Begin Plot1(TP1, "TP1"); SetPlotColor(1, RGB(0, 150, 255)); Plot2(TP2, "TP2"); SetPlotColor(2, RGB(0, 100, 200)); Plot3(TP3, "TP3"); SetPlotColor(3, RGB(0, 50, 150)); Plot4(SL, "손절"); SetPlotColor(4, RGB(255, 0, 0)); End; 2. Input : per(100), mult(3.0), 익절비율(1.01), 손절비율(0.995); Var : upColor(Red), midColor(Green), downColor(Blue); Var : src(0), filt(0), T(0), tx(0); Var : wper(0), avrng(0), smrng(0); Var : upward(0), downward(0), hband(0), lband(0), filtColor(0); Var : 진입가(0), 박스ID(0), 텍스트ID(0), 거래량기준(0); // 원본 데이터 src = Close; // 필터 길이 및 스무딩 wper = per * 2 - 1; avrng = EMA(AbsValue(src - src[1]), per); smrng = EMA(avrng, wper) * mult; // 필터 계산 filt = IFF(IsNaN(filt[1]) == true, src, filt[1]); filt = IFF(src > filt, IFF(src - smrng < filt, filt, src - smrng), IFF(src + smrng > filt, filt, src + smrng)); // 방향 계산 upward = IFF(filt > filt[1], IFF(IsNaN(upward[1]) == true, 0, upward[1]) + 1, IFF(filt < filt[1], 0, IFF(IsNaN(upward[1]) == true, 0, upward[1]))); downward = IFF(filt < filt[1], IFF(IsNaN(downward[1]) == true, 0, downward[1]) + 1, IFF(filt > filt[1], 0, IFF(IsNaN(downward[1]) == true, 0, downward[1]))); // 상단/하단 밴드 hband = filt + smrng; lband = filt - smrng; // 색상 filtColor = IFF(upward > 0, upColor, IFF(downward > 0, downColor, midColor)); // 거래량 필터 거래량기준 = Average(Volume, 20); // 차트 출력 Plot1(filt, "Range Filter", filtColor); Plot2(hband, "High Band", upColor); Plot3(lband, "Low Band", downColor); // 시그널 조건 + 거래량 필터 If 거래량 > 거래량기준 Then Begin If (src > filt and upward > 0) Then T = 1; Else If (src < filt and downward > 0) Then T = -1; Else T = 0; End Else T = 0; // 시그널 발생 시 텍스트 및 박스 출력 If T == 1 and T[1] != 1 Then Begin tx = Text_New(Date, Time, Low, "▲"); Text_SetColor(tx, upColor); Text_SetStyle(tx, 2, 0); 진입가 = Close; 박스ID = Box_New(Date, Time, 진입가 * 익절비율, Date, Time + 10, 진입가 * 손절비율); Box_SetColor(박스ID, upColor); Box_SetBGColor(박스ID, RGB(255, 0, 0, 50)); // 투명도 50 End; If T == -1 and T[1] != -1 Then Begin tx = Text_New(Date, Time, High, "▼"); Text_SetColor(tx, downColor); Text_SetStyle(tx, 2, 0); 진입가 = Close; 박스ID = Box_New(Date, Time, 진입가 * 손절비율, Date, Time + 10, 진입가 * 익절비율); Box_SetColor(박스ID, downColor); Box_SetBGColor(박스ID, RGB(0, 0, 255, 50)); End; 3.// ============ 교차 함수 정의 ============ Function Cross(A, B) Begin Cross = (A > B and A[1] <= B[1]) or (A < B and A[1] >= B[1]); End; // ============ 변수 선언 ============ VAR: VALUE1(0), VALUE2(0), VALUE3(0), VALUE4(0), VALUE5(0), VALUE6(0), VALUE7(0), VAR13(0), VAR14(0), VAR15(0), VAR16(0); // ============ 체결강도 계산 ============ VALUE1 = 0; VALUE2 = 0; If C > C[1] Then VALUE1 = V; Else If C < C[1] Then VALUE2 = V; VALUE3 = ACCUM(VALUE1 - VALUE2); // 체결강도 누적 // 이동평균선 기준선 VAR13 = EMA(VALUE3, 10); VAR14 = EMA(VALUE3, 20); VAR15 = EMA(VALUE3, 64); VAR16 = EMA(VALUE3, 128); // 교차 발생 시 시가 저장 If Cross(VALUE3, VAR13) Then VALUE4 = C; If Cross(VALUE3, VAR14) Then VALUE5 = C; If Cross(VALUE3, VAR15) Then VALUE6 = C; If Cross(VALUE3, VAR16) Then VALUE7 = C; // ============ 시각화 ============ Plot12(VALUE4, "OI_10", Yellow); Plot13(VALUE5, "OI_20", Cyan); Plot14(VALUE6, "OI_64", Green); Plot15(VALUE7, "OI_128", Red); 4. // 체결강도 구분 초기화 VALUE1 = 0; VALUE2 = 0; If C > C[1] Then VALUE1 = V; // 매수 체결로 간주 Else If C < C[1] Then VALUE2 = V; // 매도 체결로 간주 VALUE3 = ACCUM(VALUE1 - VALUE2); // 체결강도 누적 (순매수량) // 기준선(평균선) VAR13 = EMA(VALUE3, 10); VAR14 = EMA(VALUE3, 20); VAR15 = EMA(VALUE3, 64); VAR16 = EMA(VALUE3, 128); // 교차 시가 출력 If Cross(VALUE3, VAR13) Then VALUE4 = C; If Cross(VALUE3, VAR14) Then VALUE5 = C; If Cross(VALUE3, VAR15) Then VALUE6 = C; If Cross(VALUE3, VAR16) Then VALUE7 = C; 오류가계속나서요 예스트레이더에 구현될수있게 수정부탁드립니다 항상 수고많으십니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-20 13:03:52

안녕하세요 예스스탁입니다. 1 Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), tp1Ratio(0.995), tp2Ratio(0.990), tp3Ratio(0.985), slRatio(1.01), volumeMultiplier(2.0), 평균거래량기간(20), 시작시간(93000), 종료시간(150000); Var: rsiVal(0), macdFastEMA(0), macdSlowEMA(0), macdMain(0), macdSignal(0), macdHist(0), 진입가(0), TP1(0), TP2(0), TP3(0), SL(0), 거래량기준(0), 텍스트ID(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매도조건(false); // ▶? 1. RSI 계산 rsiVal = RSI(rsiLen); // ▶? 2. MACD 수동 계산 (Index 기준 초기화 제거) If CurrentBar == 1 Then Begin macdFastEMA = Close; macdSlowEMA = Close; macdMain = 0; macdSignal = 0; macdHist = 0; End Else Begin macdFastEMA = (Close * (2 / (macdFastLen + 1))) + macdFastEMA[1] * (1 - (2 / (macdFastLen + 1))); macdSlowEMA = (Close * (2 / (macdSlowLen + 1))) + macdSlowEMA[1] * (1 - (2 / (macdSlowLen + 1))); macdMain = macdFastEMA - macdSlowEMA; macdSignal = (macdMain * (2 / (macdSignalLen + 1))) + macdSignal[1] * (1 - (2 / (macdSignalLen + 1))); macdHist = macdMain - macdSignal; End; // ▶? 3. 평균 거래량 계산 거래량기준 = ma(Volume, 평균거래량기간); // ▶? 4. 진입 조건 + 시간 필터 If sTime >= 시작시간 and sTime <= 종료시간 Then Begin If rsiVal < rsiCut and macdHist < 0 and macdHist[1] > 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 매도조건 = true; 진입가 = Close; // 목표가 / 손절가 계산 TP1 = 진입가 * tp1Ratio; TP2 = 진입가 * tp2Ratio; TP3 = 진입가 * tp3Ratio; SL = 진입가 * slRatio; 박스상 = SL; 박스하 = TP3; // ?? 손익비 박스 (TL 선 4개) TL1 = TL_New(sDate, sTime, 박스상, sDate, sTime, 박스하); TL2 = TL_New(sDate[1], sTime[1], 박스상, sDate[1], sTime[1], 박스하); TL3 = TL_New(sDate[1], sTime[1], 박스상, sDate, sTime, 박스상); TL4 = TL_New(sDate[1], sTime[1], 박스하, sDate, sTime, 박스하); TL_SetColor(TL1, RGB(255, 200, 200)); TL_SetSize(TL1, 1); TL_SetColor(TL2, RGB(255, 200, 200)); TL_SetSize(TL2, 1); TL_SetColor(TL3, RGB(255, 200, 200)); TL_SetSize(TL3, 1); TL_SetColor(TL4, RGB(255, 200, 200)); TL_SetSize(TL4, 1); // ?? 텍스트 알림 텍스트ID = Text_New(Date, Time, High, "*진입조건만족"); Text_SetColor(텍스트ID, RGB(255, 0, 0)); End; End; // ▶? 5. 목표가 / 손절가 Plot 시각화 If 매도조건 Then Begin Plot1(TP1, "TP1", RGB(0, 150, 255)); Plot2(TP2, "TP2", RGB(0, 100, 200)); Plot3(TP3, "TP3", RGB(0, 50, 150)); Plot4(SL, "손절", RGB(255, 0, 0)); End; 2 Input : per(100), mult(3.0), 익절비율(1.01), 손절비율(0.995); Var : upColor(Red), midColor(Green), downColor(Blue); Var : src(0), filt(0), T(0), tx(0); Var : wper(0), avrng(0), smrng(0); Var : upward(0), downward(0), hband(0), lband(0), filtColor(0); Var : 진입가(0), 박스ID(0), 텍스트ID(0), 거래량기준(0); // 원본 데이터 src = Close; // 필터 길이 및 스무딩 wper = per * 2 - 1; avrng = EMA(AbsValue(src - src[1]), per); smrng = EMA(avrng, wper) * mult; // 필터 계산 filt = IFF(IsNaN(filt[1]) == true, src, filt[1]); filt = IFF(src > filt, IFF(src - smrng < filt, filt, src - smrng), IFF(src + smrng > filt, filt, src + smrng)); // 방향 계산 upward = IFF(filt > filt[1], IFF(IsNaN(upward[1]) == true, 0, upward[1]) + 1, IFF(filt < filt[1], 0, IFF(IsNaN(upward[1]) == true, 0, upward[1]))); downward = IFF(filt < filt[1], IFF(IsNaN(downward[1]) == true, 0, downward[1]) + 1, IFF(filt > filt[1], 0, IFF(IsNaN(downward[1]) == true, 0, downward[1]))); // 상단/하단 밴드 hband = filt + smrng; lband = filt - smrng; // 색상 filtColor = IFF(upward > 0, upColor, IFF(downward > 0, downColor, midColor)); // 거래량 필터 거래량기준 = ma(Volume, 20); // 차트 출력 plot1(filt, "Range Filter", filtColor); plot2(hband, "High Band", upColor); plot3(lband, "Low Band", downColor); // 시그널 조건 + 거래량 필터 If v > 거래량기준 Then Begin If (src > filt and upward > 0) Then T = 1; Else If (src < filt and downward > 0) Then T = -1; Else T = 0; End Else T = 0; // 시그널 발생 시 텍스트 및 박스 출력 If T == 1 and T[1] != 1 Then Begin tx = Text_New(Date, Time, Low, "▲"); Text_SetColor(tx, upColor); Text_SetStyle(tx, 2, 0); 진입가 = Close; 박스ID = Box_New(Date, Time, 진입가 * 익절비율, Date, Time + 10, 진입가 * 손절비율); Box_SetColor(박스ID, upColor); Box_SetFill(박스ID, true); var1 = Index; End Else If T == -1 and T[1] != -1 Then Begin tx = Text_New(Date, Time, High, "▼"); Text_SetColor(tx, downColor); Text_SetStyle(tx, 2, 0); 진입가 = Close; 박스ID = Box_New(Date, Time, 진입가 * 손절비율, Date, Time + 10, 진입가 * 익절비율); Box_SetColor(박스ID, downColor); Box_SetFill(박스ID, true); var1 = Index; End Else Begin if T == 1 and Index < var1+10 Then Box_SetEnd(박스ID,sDate,sTime,진입가 * 손절비율); if T == -1 and Index < var1+10 Then Box_SetEnd(박스ID,sDate,sTime,진입가 * 익절비율); End; 3-1 사용자함수 함수명 : cross 반환값형 : 논리형 input : A(Numeric),B(Numeric); Cross = (A > B and A[1] <= B[1]) or (A < B and A[1] >= B[1]); 3-2 // ============ 변수 선언 ============ VAR: VALUE1(0), VALUE2(0), VALUE3(0), VALUE4(0), VALUE5(0), VALUE6(0), VALUE7(0), VAR13(0), VAR14(0), VAR15(0), VAR16(0); // ============ 체결강도 계산 ============ VALUE1 = 0; VALUE2 = 0; If C > C[1] Then VALUE1 = V; Else If C < C[1] Then VALUE2 = V; VALUE3 = ACCUM(VALUE1 - VALUE2); // 체결강도 누적 // 이동평균선 기준선 VAR13 = EMA(VALUE3, 10); VAR14 = EMA(VALUE3, 20); VAR15 = EMA(VALUE3, 64); VAR16 = EMA(VALUE3, 128); // 교차 발생 시 시가 저장 If Cross(VALUE3, VAR13) Then VALUE4 = C; If Cross(VALUE3, VAR14) Then VALUE5 = C; If Cross(VALUE3, VAR15) Then VALUE6 = C; If Cross(VALUE3, VAR16) Then VALUE7 = C; // ============ 시각화 ============ Plot12(VALUE4, "OI_10", Yellow); Plot13(VALUE5, "OI_20", Cyan); Plot14(VALUE6, "OI_64", Green); Plot15(VALUE7, "OI_128", Red); 4 VALUE1 = 0; VALUE2 = 0; If C > C[1] Then VALUE1 = V; // 매수 체결로 간주 Else If C < C[1] Then VALUE2 = V; // 매도 체결로 간주 VALUE3 = ACCUM(VALUE1 - VALUE2); // 체결강도 누적 (순매수량) // 기준선(평균선) VAR13 = EMA(VALUE3, 10); VAR14 = EMA(VALUE3, 20); VAR15 = EMA(VALUE3, 64); VAR16 = EMA(VALUE3, 128); // 교차 시가 출력 If Cross(VALUE3, VAR13) Then VALUE4 = C; If Cross(VALUE3, VAR14) Then VALUE5 = C; If Cross(VALUE3, VAR15) Then VALUE6 = C; If Cross(VALUE3, VAR16) Then VALUE7 = C; 즐거운 하루되세요 > 윤호석 님이 쓴 글입니다. > 제목 : 부탁드립니다 항상 감사합니다 > // ? RSI + MACD 숏 + 다중 목표가 TP3 + 손익비 박스 + 거래량 급증 + 텍스트 + 시간 제한 Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), tp1Ratio(0.995), tp2Ratio(0.990), tp3Ratio(0.985), slRatio(1.01), volumeMultiplier(2.0), 평균거래량기간(20), 시작시간(93000), 종료시간(150000); Var: rsiVal(0), macdFastEMA(0), macdSlowEMA(0), macdMain(0), macdSignal(0), macdHist(0), 진입가(0), TP1(0), TP2(0), TP3(0), SL(0), 거래량기준(0), 텍스트ID(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매도조건(false); // ▶? 1. RSI 계산 rsiVal = RSI(rsiLen); // ▶? 2. MACD 수동 계산 (Index 기준 초기화 제거) If CurrentBar = 1 Then Begin macdFastEMA = Close; macdSlowEMA = Close; macdMain = 0; macdSignal = 0; macdHist = 0; End Else Begin macdFastEMA = (Close * (2 / (macdFastLen + 1))) + macdFastEMA[1] * (1 - (2 / (macdFastLen + 1))); macdSlowEMA = (Close * (2 / (macdSlowLen + 1))) + macdSlowEMA[1] * (1 - (2 / (macdSlowLen + 1))); macdMain = macdFastEMA - macdSlowEMA; macdSignal = (macdMain * (2 / (macdSignalLen + 1))) + macdSignal[1] * (1 - (2 / (macdSignalLen + 1))); macdHist = macdMain - macdSignal; End; // ▶? 3. 평균 거래량 계산 거래량기준 = Average(Volume, 평균거래량기간); // ▶? 4. 진입 조건 + 시간 필터 If Time >= 시작시간 and Time <= 종료시간 Then Begin If rsiVal < rsiCut and macdHist < 0 and macdHist[1] > 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 매도조건 = true; 진입가 = Close; // 목표가 / 손절가 계산 TP1 = 진입가 * tp1Ratio; TP2 = 진입가 * tp2Ratio; TP3 = 진입가 * tp3Ratio; SL = 진입가 * slRatio; 박스상 = SL; 박스하 = TP3; // ?? 손익비 박스 (TL 선 4개) TL1 = TL_New(Date, Time, 박스상, Date, Time, 박스하); TL2 = TL_New(Date[1], Time[1], 박스상, Date[1], Time[1], 박스하); TL3 = TL_New(Date[1], Time[1], 박스상, Date, Time, 박스상); TL4 = TL_New(Date[1], Time[1], 박스하, Date, Time, 박스하); TL_SetColor(TL1, RGB(255, 200, 200)); TL_SetSize(TL1, 1); TL_SetColor(TL2, RGB(255, 200, 200)); TL_SetSize(TL2, 1); TL_SetColor(TL3, RGB(255, 200, 200)); TL_SetSize(TL3, 1); TL_SetColor(TL4, RGB(255, 200, 200)); TL_SetSize(TL4, 1); // ?? 텍스트 알림 텍스트ID = Text_New(Date, Time, High, "*진입조건만족"); Text_SetColor(텍스트ID, RGB(255, 0, 0)); End; End; // ▶? 5. 목표가 / 손절가 Plot 시각화 If 매도조건 Then Begin Plot1(TP1, "TP1"); SetPlotColor(1, RGB(0, 150, 255)); Plot2(TP2, "TP2"); SetPlotColor(2, RGB(0, 100, 200)); Plot3(TP3, "TP3"); SetPlotColor(3, RGB(0, 50, 150)); Plot4(SL, "손절"); SetPlotColor(4, RGB(255, 0, 0)); End; 2. Input : per(100), mult(3.0), 익절비율(1.01), 손절비율(0.995); Var : upColor(Red), midColor(Green), downColor(Blue); Var : src(0), filt(0), T(0), tx(0); Var : wper(0), avrng(0), smrng(0); Var : upward(0), downward(0), hband(0), lband(0), filtColor(0); Var : 진입가(0), 박스ID(0), 텍스트ID(0), 거래량기준(0); // 원본 데이터 src = Close; // 필터 길이 및 스무딩 wper = per * 2 - 1; avrng = EMA(AbsValue(src - src[1]), per); smrng = EMA(avrng, wper) * mult; // 필터 계산 filt = IFF(IsNaN(filt[1]) == true, src, filt[1]); filt = IFF(src > filt, IFF(src - smrng < filt, filt, src - smrng), IFF(src + smrng > filt, filt, src + smrng)); // 방향 계산 upward = IFF(filt > filt[1], IFF(IsNaN(upward[1]) == true, 0, upward[1]) + 1, IFF(filt < filt[1], 0, IFF(IsNaN(upward[1]) == true, 0, upward[1]))); downward = IFF(filt < filt[1], IFF(IsNaN(downward[1]) == true, 0, downward[1]) + 1, IFF(filt > filt[1], 0, IFF(IsNaN(downward[1]) == true, 0, downward[1]))); // 상단/하단 밴드 hband = filt + smrng; lband = filt - smrng; // 색상 filtColor = IFF(upward > 0, upColor, IFF(downward > 0, downColor, midColor)); // 거래량 필터 거래량기준 = Average(Volume, 20); // 차트 출력 Plot1(filt, "Range Filter", filtColor); Plot2(hband, "High Band", upColor); Plot3(lband, "Low Band", downColor); // 시그널 조건 + 거래량 필터 If 거래량 > 거래량기준 Then Begin If (src > filt and upward > 0) Then T = 1; Else If (src < filt and downward > 0) Then T = -1; Else T = 0; End Else T = 0; // 시그널 발생 시 텍스트 및 박스 출력 If T == 1 and T[1] != 1 Then Begin tx = Text_New(Date, Time, Low, "▲"); Text_SetColor(tx, upColor); Text_SetStyle(tx, 2, 0); 진입가 = Close; 박스ID = Box_New(Date, Time, 진입가 * 익절비율, Date, Time + 10, 진입가 * 손절비율); Box_SetColor(박스ID, upColor); Box_SetBGColor(박스ID, RGB(255, 0, 0, 50)); // 투명도 50 End; If T == -1 and T[1] != -1 Then Begin tx = Text_New(Date, Time, High, "▼"); Text_SetColor(tx, downColor); Text_SetStyle(tx, 2, 0); 진입가 = Close; 박스ID = Box_New(Date, Time, 진입가 * 손절비율, Date, Time + 10, 진입가 * 익절비율); Box_SetColor(박스ID, downColor); Box_SetBGColor(박스ID, RGB(0, 0, 255, 50)); End; 3.// ============ 교차 함수 정의 ============ Function Cross(A, B) Begin Cross = (A > B and A[1] <= B[1]) or (A < B and A[1] >= B[1]); End; // ============ 변수 선언 ============ VAR: VALUE1(0), VALUE2(0), VALUE3(0), VALUE4(0), VALUE5(0), VALUE6(0), VALUE7(0), VAR13(0), VAR14(0), VAR15(0), VAR16(0); // ============ 체결강도 계산 ============ VALUE1 = 0; VALUE2 = 0; If C > C[1] Then VALUE1 = V; Else If C < C[1] Then VALUE2 = V; VALUE3 = ACCUM(VALUE1 - VALUE2); // 체결강도 누적 // 이동평균선 기준선 VAR13 = EMA(VALUE3, 10); VAR14 = EMA(VALUE3, 20); VAR15 = EMA(VALUE3, 64); VAR16 = EMA(VALUE3, 128); // 교차 발생 시 시가 저장 If Cross(VALUE3, VAR13) Then VALUE4 = C; If Cross(VALUE3, VAR14) Then VALUE5 = C; If Cross(VALUE3, VAR15) Then VALUE6 = C; If Cross(VALUE3, VAR16) Then VALUE7 = C; // ============ 시각화 ============ Plot12(VALUE4, "OI_10", Yellow); Plot13(VALUE5, "OI_20", Cyan); Plot14(VALUE6, "OI_64", Green); Plot15(VALUE7, "OI_128", Red); 4. // 체결강도 구분 초기화 VALUE1 = 0; VALUE2 = 0; If C > C[1] Then VALUE1 = V; // 매수 체결로 간주 Else If C < C[1] Then VALUE2 = V; // 매도 체결로 간주 VALUE3 = ACCUM(VALUE1 - VALUE2); // 체결강도 누적 (순매수량) // 기준선(평균선) VAR13 = EMA(VALUE3, 10); VAR14 = EMA(VALUE3, 20); VAR15 = EMA(VALUE3, 64); VAR16 = EMA(VALUE3, 128); // 교차 시가 출력 If Cross(VALUE3, VAR13) Then VALUE4 = C; If Cross(VALUE3, VAR14) Then VALUE5 = C; If Cross(VALUE3, VAR15) Then VALUE6 = C; If Cross(VALUE3, VAR16) Then VALUE7 = C; 오류가계속나서요 예스트레이더에 구현될수있게 수정부탁드립니다 항상 수고많으십니다