커뮤니티

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

프로필 이미지
윤호석
2025-05-21 08:41:43
230
글번호 191026
답변완료
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), 매도조건(false), 청산1(false), 청산2(false), 청산3(false); // 1. 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; // 2. 거래량 조건 거래량기준 = Average(Volume, 평균거래량기간); // 3. 조건 진입 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; // 자동 매도 포지션 진입 SellShort("ShortEntry") Next Bar at Market; // 손익비 박스 TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익라벨); TL1 = TL_New(Date, Time, SL, Date + 1, Time, SL); TL2 = TL_New(Date, Time, TP3, Date + 1, Time, TP3); TL3 = TL_New(Date, Time, SL, Date, Time, TP3); TL4 = TL_New(Date + 1, Time, SL, Date + 1, Time, TP3); TL_SetColor(TL1, RGB(255,200,200)); TL_SetColor(TL2, RGB(255,200,200)); TL_SetColor(TL3, RGB(255,200,200)); TL_SetColor(TL4, RGB(255,200,200)); TL_SetSize(TL1, 1); TL_SetSize(TL2, 1); TL_SetSize(TL3, 1); TL_SetSize(TL4, 1); // 손익비 계산 및 라벨 표시 손익라벨 = Text_New(Date, Time, (SL + TP3)/2, "손익비 " + NumToStr((진입가 - TP3) / (SL - 진입가), 1) + ":1"); Text_SetStyle(손익라벨, 1, 0); Text_SetColor(손익라벨, RGB(200, 0, 0)); 매도조건 = true; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // 4. 청산 조건 (비율 분할 청산 시뮬레이션) If 매도조건 Then Begin // TP1 도달 시 If 청산1 = false and Close <= TP1 Then Begin Alert("TP1 도달: 30% 청산"); 청산1 = true; End; // TP2 도달 시 If 청산2 = false and Close <= TP2 Then Begin Alert("TP2 도달: 50% 청산"); 청산2 = true; End; // TP3 도달 시 If 청산3 = false and Close <= TP3 Then Begin Alert("TP3 도달: 나머지 전량 청산"); 청산3 = true; 매도조건 = false; End; // SL 도달 시 전체 손절 If Close >= SL Then Begin Alert("손절가 도달: 전량 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매도조건 = false; End; End; 검증시 오류가나서 구현할수있게 부탁드립니다 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-05-21 14:19:27

안녕하세요 예스스탁입니다. 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), 매도조건(false), 청산1(false), 청산2(false), 청산3(false); // 1. RSI + MACD 계산 rsiVal = RSI(rsiLen); If CurrentBar == 1 Then Begin macdFastEMA = Close; macdSlowEMA = Close; macdMain = macdFastEMA - macdSlowEMA; macdSignal = macdMain; macdHist = macdMain - macdSignal; 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; // 2. 거래량 조건 거래량기준 = ma(Volume, 평균거래량기간); // 3. 조건 진입 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; // 자동 매도 포지션 진입 Sell("ShortEntry",AtMarket); // 손익비 박스 TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익라벨); TL1 = TL_New(sDate, sTime, SL, NextBarSdate,NextBarStime, SL); TL2 = TL_New(sDate, sTime, TP3, NextBarSdate, NextBarStime, TP3); TL3 = TL_New(sDate, sTime, SL, sDate, sTime, TP3); TL4 = TL_New(NextBarSdate,NextBarStime, SL, NextBarSdate, NextBarStime, TP3); TL_SetColor(TL1, RGB(255,200,200)); TL_SetColor(TL2, RGB(255,200,200)); TL_SetColor(TL3, RGB(255,200,200)); TL_SetColor(TL4, RGB(255,200,200)); TL_SetSize(TL1, 1); TL_SetSize(TL2, 1); TL_SetSize(TL3, 1); TL_SetSize(TL4, 1); // 손익비 계산 및 라벨 표시 손익라벨 = Text_New(Date, Time, (SL + TP3)/2, "손익비 " + NumToStr((진입가 - TP3) / (SL - 진입가), 1) + ":1"); Text_SetStyle(손익라벨, 1, 0); Text_SetColor(손익라벨, RGB(200, 0, 0)); 매도조건 = true; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // 4. 청산 조건 (비율 분할 청산 시뮬레이션) If 매도조건 Then Begin TL_SetEnd(TL1,NextBarSdate,NextBarStime,SL); TL_SetEnd(TL2,NextBarSdate,NextBarStime,TP3); TL_SetBegin(TL4,NextBarSdate,NextBarStime,SL); TL_SetEnd(TL4,NextBarSdate,NextBarStime,TP3); // TP1 도달 시 If 청산1 == false and Close <= TP1 Then Begin Alert("TP1 도달: 30% 청산"); 청산1 = true; End; // TP2 도달 시 If 청산2 == false and Close <= TP2 Then Begin Alert("TP2 도달: 50% 청산"); 청산2 = true; End; // TP3 도달 시 If 청산3 == false and Close <= TP3 Then Begin Alert("TP3 도달: 나머지 전량 청산"); 청산3 = true; 매도조건 = false; End; // SL 도달 시 전체 손절 If Close >= SL Then Begin Alert("손절가 도달: 전량 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매도조건 = false; End; End; 즐거운 하루되세요 > 윤호석 님이 쓴 글입니다. > 제목 : 부탁드립니다 항상 감사합니다 > 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), 매도조건(false), 청산1(false), 청산2(false), 청산3(false); // 1. 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; // 2. 거래량 조건 거래량기준 = Average(Volume, 평균거래량기간); // 3. 조건 진입 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; // 자동 매도 포지션 진입 SellShort("ShortEntry") Next Bar at Market; // 손익비 박스 TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); Text_Delete(손익라벨); TL1 = TL_New(Date, Time, SL, Date + 1, Time, SL); TL2 = TL_New(Date, Time, TP3, Date + 1, Time, TP3); TL3 = TL_New(Date, Time, SL, Date, Time, TP3); TL4 = TL_New(Date + 1, Time, SL, Date + 1, Time, TP3); TL_SetColor(TL1, RGB(255,200,200)); TL_SetColor(TL2, RGB(255,200,200)); TL_SetColor(TL3, RGB(255,200,200)); TL_SetColor(TL4, RGB(255,200,200)); TL_SetSize(TL1, 1); TL_SetSize(TL2, 1); TL_SetSize(TL3, 1); TL_SetSize(TL4, 1); // 손익비 계산 및 라벨 표시 손익라벨 = Text_New(Date, Time, (SL + TP3)/2, "손익비 " + NumToStr((진입가 - TP3) / (SL - 진입가), 1) + ":1"); Text_SetStyle(손익라벨, 1, 0); Text_SetColor(손익라벨, RGB(200, 0, 0)); 매도조건 = true; 청산1 = false; 청산2 = false; 청산3 = false; End; End; // 4. 청산 조건 (비율 분할 청산 시뮬레이션) If 매도조건 Then Begin // TP1 도달 시 If 청산1 = false and Close <= TP1 Then Begin Alert("TP1 도달: 30% 청산"); 청산1 = true; End; // TP2 도달 시 If 청산2 = false and Close <= TP2 Then Begin Alert("TP2 도달: 50% 청산"); 청산2 = true; End; // TP3 도달 시 If 청산3 = false and Close <= TP3 Then Begin Alert("TP3 도달: 나머지 전량 청산"); 청산3 = true; 매도조건 = false; End; // SL 도달 시 전체 손절 If Close >= SL Then Begin Alert("손절가 도달: 전량 청산"); 청산1 = true; 청산2 = true; 청산3 = true; 매도조건 = false; End; End; 검증시 오류가나서 구현할수있게 부탁드립니다 감사합니다