커뮤니티

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

프로필 이미지
윤호석
2025-05-22 07:20:47
230
글번호 191063
답변완료
Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), tp1Ratio(1.005), tp2Ratio(1.010), tp3Ratio(1.015), slRatio(0.99), 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), 손익비텍스트(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매수조건(false), 청산1(false), 청산2(false), 청산3(false); // ① RSI + MACD 계산 rsiVal = RSI(rsiLen); If CurrentBar = 1 Then Begin macdFastEMA = Close; macdSlowEMA = Close; 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; // ② 거래량 기준 거래량기준 = Average(Volume, 평균거래량기간); // ③ 진입 조건 + 박스 + 라벨 If sTime >= 시작시간 and sTime <= 종료시간 and 매수조건 = false Then Begin If rsiVal > rsiCut and macdHist > 0 and macdHist[1] < 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 진입가 = Close; TP1 = 진입가 * tp1Ratio; TP2 = 진입가 * tp2Ratio; TP3 = 진입가 * tp3Ratio; SL = 진입가 * slRatio; 박스상 = TP3; 박스하 = SL; // 자동 매수 진입 Buy("LongEntry") Next Bar at Market; // 박스 표시 (TL 선 4개) TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익비텍스트); TL1 = TL_New(Date, Time, 박스상, Date + 1, Time, 박스상); TL2 = TL_New(Date, Time, 박스하, Date + 1, Time, 박스하); TL3 = TL_New(Date, Time, 박스상, Date, Time, 박스하); TL4 = TL_New(Date + 1, Time, 박스상, Date + 1, Time, 박스하); For TL in [TL1, TL2, TL3, TL4] Do Begin TL_SetColor(TL, RGB(200,255,200)); TL_SetSize(TL, 1); End; // 손익비 라벨 손익비텍스트 = Text_New(Date, Time, (TP3 + SL)/2, "손익비 " + NumToStr(AbsValue(TP3 - 진입가) / AbsValue(진입가 - SL), 1) + ":1"); Text_SetColor(손익비텍스트, Green); Text_SetStyle(손익비텍스트, 1, 0); 텍스트ID = Text_New(Date, Time, Low, "*매수 진입조건 만족"); Text_SetColor(텍스트ID, Green); 매수조건 = true; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // ④ TP별 청산 시뮬레이션 If 매수조건 Then Begin If 청산1 = false and Close >= TP1 Then Begin Alert("&#128200; TP1 도달 &#8211; 30% 청산"); 청산1 = true; End; If 청산2 = false and Close >= TP2 Then Begin Alert("&#128200; TP2 도달 &#8211; 50% 청산"); 청산2 = true; End; If 청산3 = false and Close >= TP3 Then Begin Alert("&#9989; TP3 도달 &#8211; 나머지 20% 청산 완료"); 청산3 = true; 매수조건 = false; End; If Close <= SL Then Begin Alert("&#9940; 손절가 도달 &#8211; 전체 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매수조건 = false; End; End; // ⑤ 목표가 시각화 If 매수조건 Then Begin Plot1(TP1, "TP1", RGB(0, 150, 255)); Plot2(TP2, "TP2", RGB(0, 100, 200)); Plot3(TP3, "TP3", RGB(0, 50, 150)); End; 지표작성시 오류가 나서 수정부탁드립니다. 2. 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번째 수식의 매수 매도 통합버젼도 부탁드리겠습니다 오늘도 고생많으십니다 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-22 14:54:57

안녕하세요 예스스탁입니다. 1 Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), tp1Ratio(1.005), tp2Ratio(1.010), tp3Ratio(1.015), slRatio(0.99), 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), 손익비텍스트(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매수조건(false), 청산1(false), 청산2(false), 청산3(false); // ① RSI + MACD 계산 rsiVal = RSI(rsiLen); 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; // ② 거래량 기준 거래량기준 = ma(Volume, 평균거래량기간); // ③ 진입 조건 + 박스 + 라벨 If sTime >= 시작시간 and sTime <= 종료시간 and 매수조건 == false Then Begin If rsiVal > rsiCut and macdHist > 0 and macdHist[1] < 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 진입가 = Close; TP1 = 진입가 * tp1Ratio; TP2 = 진입가 * tp2Ratio; TP3 = 진입가 * tp3Ratio; SL = 진입가 * slRatio; 박스상 = TP3; 박스하 = SL; // 박스 표시 (TL 선 4개) TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익비텍스트); TL1 = TL_New(sDate, sTime, 박스상, NextBarSdate, NextBarStime, 박스상); TL2 = TL_New(sDate, sTime, 박스하, NextBarSdate, NextBarStime, 박스하); TL3 = TL_New(sDate, sTime, 박스상, sDate, sTime, 박스하); TL4 = TL_New(NextBarSdate, NextBarStime, 박스상, NextBarSdate, NextBarStime, 박스하); TL_SetColor(TL1,RGB(200,255,200)); TL_SetColor(TL2,RGB(200,255,200)); TL_SetColor(TL3,RGB(200,255,200)); TL_SetColor(TL4,RGB(200,255,200)); TL_SetSize(TL1,1); TL_SetSize(TL2,1); TL_SetSize(TL3,1); TL_SetSize(TL4,1); // 손익비 라벨 손익비텍스트 = Text_New(Date, Time, (TP3 + SL)/2, "손익비 " + NumToStr(AbsValue(TP3 - 진입가) / AbsValue(진입가 - SL), 1) + ":1"); Text_SetColor(손익비텍스트, Green); Text_SetStyle(손익비텍스트, 1, 0); 텍스트ID = Text_New(Date, Time, Low, "*매수 진입조건 만족"); Text_SetColor(텍스트ID, Green); 매수조건 = true; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // ④ TP별 청산 시뮬레이션 If 매수조건 Then Begin If 청산1 == false and Close >= TP1 Then Begin Alert("&#128200; TP1 도달 &#8211; 30% 청산"); 청산1 = true; End; If 청산2 == false and Close >= TP2 Then Begin Alert("&#128200; TP2 도달 &#8211; 50% 청산"); 청산2 = true; End; If 청산3 == false and Close >= TP3 Then Begin Alert("&#9989; TP3 도달 &#8211; 나머지 20% 청산 완료"); 청산3 = true; 매수조건 = false; End; If Close <= SL Then Begin Alert("&#9940; 손절가 도달 &#8211; 전체 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매수조건 = false; End; End; // ⑤ 목표가 시각화 If 매수조건 Then Begin TL_SetEnd(TL1,sDate,sTime,박스상); TL_SetEnd(TL2,sDate,sTime,박스하); TL_SetBegin(TL4,sDate,sTime,박스상); TL_SetEnd(TL4,sDate,sTime,박스하); Plot1(TP1, "TP1", RGB(0, 150, 255)); Plot2(TP2, "TP2", RGB(0, 100, 200)); Plot3(TP3, "TP3", RGB(0, 50, 150)); Plot4(SL, "손절", RGB(0, 50, 150)); End; 2 Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), btp1Ratio(1.005), btp2Ratio(1.010), btp3Ratio(1.015), bslRatio(0.99), stp1Ratio(0.995), stp2Ratio(0.990), stp3Ratio(0.985), sslRatio(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), 손익비텍스트(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매수조건(false),매도조건(False), 청산1(false), 청산2(false), 청산3(false); // ① RSI + MACD 계산 rsiVal = RSI(rsiLen); 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; // ② 거래량 기준 거래량기준 = ma(Volume, 평균거래량기간); // ③ 진입 조건 + 박스 + 라벨 If sTime >= 시작시간 and sTime <= 종료시간 and 매수조건 == false Then Begin If rsiVal > rsiCut and macdHist > 0 and macdHist[1] < 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 진입가 = Close; TP1 = 진입가 * btp1Ratio; TP2 = 진입가 * btp2Ratio; TP3 = 진입가 * btp3Ratio; SL = 진입가 * bslRatio; 박스상 = TP3; 박스하 = SL; // 박스 표시 (TL 선 4개) TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익비텍스트); TL1 = TL_New(sDate, sTime, 박스상, NextBarSdate, NextBarStime, 박스상); TL2 = TL_New(sDate, sTime, 박스하, NextBarSdate, NextBarStime, 박스하); TL3 = TL_New(sDate, sTime, 박스상, sDate, sTime, 박스하); TL4 = TL_New(NextBarSdate, NextBarStime, 박스상, NextBarSdate, NextBarStime, 박스하); TL_SetColor(TL1,RGB(200,255,200)); TL_SetColor(TL2,RGB(200,255,200)); TL_SetColor(TL3,RGB(200,255,200)); TL_SetColor(TL4,RGB(200,255,200)); TL_SetSize(TL1,1); TL_SetSize(TL2,1); TL_SetSize(TL3,1); TL_SetSize(TL4,1); // 손익비 라벨 손익비텍스트 = Text_New(Date, Time, (TP3 + SL)/2, "손익비 " + NumToStr(AbsValue(TP3 - 진입가) / AbsValue(진입가 - SL), 1) + ":1"); Text_SetColor(손익비텍스트, Green); Text_SetStyle(손익비텍스트, 1, 0); 텍스트ID = Text_New(Date, Time, Low, "*매수 진입조건 만족"); Text_SetColor(텍스트ID, Green); 매수조건 = true; 매도조건 = False; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // ④ TP별 청산 시뮬레이션 If 매수조건 Then Begin If 청산1 == false and Close >= TP1 Then Begin Alert("&#128200; TP1 도달 &#8211; 30% 청산"); 청산1 = true; End; If 청산2 == false and Close >= TP2 Then Begin Alert("&#128200; TP2 도달 &#8211; 50% 청산"); 청산2 = true; End; If 청산3 == false and Close >= TP3 Then Begin Alert("&#9989; TP3 도달 &#8211; 나머지 20% 청산 완료"); 청산3 = true; 매수조건 = false; End; If Close <= SL Then Begin Alert("&#9940; 손절가 도달 &#8211; 전체 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매수조건 = false; End; End; // ▶? 4. 진입 조건 + 시간 필터 If sTime >= 시작시간 and sTime <= 종료시간 and 매도조건 == false Then Begin If rsiVal < rsiCut and macdHist < 0 and macdHist[1] > 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 매도조건 = true; 매수조건 = False; 진입가 = Close; // 목표가 / 손절가 계산 TP1 = 진입가 * stp1Ratio; TP2 = 진입가 * stp2Ratio; TP3 = 진입가 * stp3Ratio; SL = 진입가 * sslRatio; 박스상 = SL; 박스하 = TP3; // 박스 표시 (TL 선 4개) TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익비텍스트); TL1 = TL_New(sDate, sTime, 박스상, NextBarSdate, NextBarStime, 박스상); TL2 = TL_New(sDate, sTime, 박스하, NextBarSdate, NextBarStime, 박스하); TL3 = TL_New(sDate, sTime, 박스상, sDate, sTime, 박스하); TL4 = TL_New(NextBarSdate, NextBarStime, 박스상, NextBarSdate, NextBarStime, 박스하); TL_SetColor(TL1,RGB(200,255,200)); TL_SetColor(TL2,RGB(200,255,200)); TL_SetColor(TL3,RGB(200,255,200)); TL_SetColor(TL4,RGB(200,255,200)); TL_SetSize(TL1,1); TL_SetSize(TL2,1); TL_SetSize(TL3,1); TL_SetSize(TL4,1); // ?? 텍스트 알림 텍스트ID = Text_New(Date, Time, High, "*진입조건만족"); Text_SetColor(텍스트ID, RGB(255, 0, 0)); End; End; If 매수조건 or 매도조건 then Begin TL_SetEnd(TL1,NextBarSdate,NextBarStime,박스상); TL_SetEnd(TL2,NextBarSdate,NextBarStime,박스하); TL_SetBegin(TL4,NextBarSdate,NextBarStime,박스상); TL_SetEnd(TL4,NextBarSdate,NextBarStime,박스하); Plot1(TP1, "TP1", RGB(0, 150, 255)); Plot2(TP2, "TP2", RGB(0, 100, 200)); Plot3(TP3, "TP3", RGB(0, 50, 150)); Plot4(SL, "손절", RGB(0, 50, 150)); End; 즐거운 하루되세요 > 윤호석 님이 쓴 글입니다. > 제목 : 부탁드립니다 항상 감사합니다 > Input: rsiLen(14), rsiCut(50), macdFastLen(12), macdSlowLen(26), macdSignalLen(9), tp1Ratio(1.005), tp2Ratio(1.010), tp3Ratio(1.015), slRatio(0.99), 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), 손익비텍스트(0), TL1(0), TL2(0), TL3(0), TL4(0), 박스상(0), 박스하(0), 매수조건(false), 청산1(false), 청산2(false), 청산3(false); // ① RSI + MACD 계산 rsiVal = RSI(rsiLen); If CurrentBar = 1 Then Begin macdFastEMA = Close; macdSlowEMA = Close; 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; // ② 거래량 기준 거래량기준 = Average(Volume, 평균거래량기간); // ③ 진입 조건 + 박스 + 라벨 If sTime >= 시작시간 and sTime <= 종료시간 and 매수조건 = false Then Begin If rsiVal > rsiCut and macdHist > 0 and macdHist[1] < 0 and Volume > 거래량기준 * volumeMultiplier Then Begin 진입가 = Close; TP1 = 진입가 * tp1Ratio; TP2 = 진입가 * tp2Ratio; TP3 = 진입가 * tp3Ratio; SL = 진입가 * slRatio; 박스상 = TP3; 박스하 = SL; // 자동 매수 진입 Buy("LongEntry") Next Bar at Market; // 박스 표시 (TL 선 4개) TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익비텍스트); TL1 = TL_New(Date, Time, 박스상, Date + 1, Time, 박스상); TL2 = TL_New(Date, Time, 박스하, Date + 1, Time, 박스하); TL3 = TL_New(Date, Time, 박스상, Date, Time, 박스하); TL4 = TL_New(Date + 1, Time, 박스상, Date + 1, Time, 박스하); For TL in [TL1, TL2, TL3, TL4] Do Begin TL_SetColor(TL, RGB(200,255,200)); TL_SetSize(TL, 1); End; // 손익비 라벨 손익비텍스트 = Text_New(Date, Time, (TP3 + SL)/2, "손익비 " + NumToStr(AbsValue(TP3 - 진입가) / AbsValue(진입가 - SL), 1) + ":1"); Text_SetColor(손익비텍스트, Green); Text_SetStyle(손익비텍스트, 1, 0); 텍스트ID = Text_New(Date, Time, Low, "*매수 진입조건 만족"); Text_SetColor(텍스트ID, Green); 매수조건 = true; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // ④ TP별 청산 시뮬레이션 If 매수조건 Then Begin If 청산1 = false and Close >= TP1 Then Begin Alert("&#128200; TP1 도달 &#8211; 30% 청산"); 청산1 = true; End; If 청산2 = false and Close >= TP2 Then Begin Alert("&#128200; TP2 도달 &#8211; 50% 청산"); 청산2 = true; End; If 청산3 = false and Close >= TP3 Then Begin Alert("&#9989; TP3 도달 &#8211; 나머지 20% 청산 완료"); 청산3 = true; 매수조건 = false; End; If Close <= SL Then Begin Alert("&#9940; 손절가 도달 &#8211; 전체 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매수조건 = false; End; End; // ⑤ 목표가 시각화 If 매수조건 Then Begin Plot1(TP1, "TP1", RGB(0, 150, 255)); Plot2(TP2, "TP2", RGB(0, 100, 200)); Plot3(TP3, "TP3", RGB(0, 50, 150)); End; 지표작성시 오류가 나서 수정부탁드립니다. 2. 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번째 수식의 매수 매도 통합버젼도 부탁드리겠습니다 오늘도 고생많으십니다 감사합니다