커뮤니티

식을 예스랭귀지로 변환 부탁드립니다.

프로필 이미지
feelyen
2025-03-15 16:18:12
429
글번호 189211
답변완료
아래식을 예스랭귀지로 변환 부탁드립니다. // 입력값 설정 input Period = 18; // 이동평균 주기 input MultiD = 0.5; // 초기 표준편차 배수 input RSILength = 14; // RSI 주기 input MACDFast = 12; // MACD 빠른 선 input MACDSlow = 26; // MACD 느린 선 input MACDSignal = 9; // MACD 신호선 // 변수 선언 var MAv = 0; // 이동평균선 var BBup = 0; var BBdn = 0; // 볼밴 0.5σ var BBup1 = 0; var BBdn1 = 0; // 볼밴 1σ var BBup1_5 = 0; var BBdn1_5 = 0; // 볼밴 1.5σ var BBup2 = 0; var BBdn2 = 0; // 볼밴 2σ var BBup2_5 = 0; var BBdn2_5 = 0; // 볼밴 2.5σ var BBup3 = 0; var BBdn3 = 0; // 볼밴 3σ var BBWidth = 0; // 볼밴 폭 (스퀴즈 감지용) var MACDLine = 0; var SignalLine = 0; var MACDHist = 0; // MACD 변수 var RSIVal = 0; // RSI 값 var OBVVal = 0; // OBV 값 var VolumeSpike = 0; // 거래량 급증 여부 // 계산 MAv = sma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (stdev(close, Period) * MultiD); BBdn = MAv - (stdev(close, Period) * MultiD); BBup1 = MAv + (stdev(close, Period) * 1); BBdn1 = MAv - (stdev(close, Period) * 1); BBup1_5 = MAv + (stdev(close, Period) * 1.5); BBdn1_5 = MAv - (stdev(close, Period) * 1.5); BBup2 = MAv + (stdev(close, Period) * 2); BBdn2 = MAv - (stdev(close, Period) * 2); BBup2_5 = MAv + (stdev(close, Period) * 2.5); BBdn2_5 = MAv - (stdev(close, Period) * 2.5); BBup3 = MAv + (stdev(close, Period) * 3); BBdn3 = MAv - (stdev(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(close, RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (sma(volume, 5) * 2); // 매매 신호 조건 var LongEntry = 0; // 롱 진입 신호 var PartialExit = 0; // 일부 청산 신호 var FullExit = 0; // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and MACDLine crosses above SignalLine); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot(MAv, "이평", color.blue); plot(BBup, "0.5", color.gray); plot(BBdn, "0.5", color.gray); plot(BBup1, "1", color.gray); plot(BBdn1, "1", color.gray); plot(BBup1_5, "1.5", color.orange); plot(BBdn1_5, "1.5", color.orange); plot(BBup2, "2", color.red); plot(BBdn2, "2", color.red); plot(BBup2_5, "2.5", color.purple); plot(BBdn2_5, "2.5", color.purple); plot(BBup3, "3", color.black); plot(BBdn3, "3", color.black); // 매매 신호 시각화 plotshape(LongEntry, "롱 진입", shape.triangleup, location.belowbar, color.green, size.small); plotshape(PartialExit, "일부 청산", shape.triangledown, location.abovebar, color.yellow, size.small); plotshape(FullExit, "전량 매도", shape.triangledown, location.abovebar, color.red, size.small); // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal);
지표
답변 3
프로필 이미지

예스스탁 예스스탁 답변

2025-03-17 15:10:46

안녕하세요 예스스탁입니다. // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal); 위 내용은 봉차트와 괴리가 있는 지표들입니다. 해당 지표도 Y축 범위가 다릅니다. 2번식으로 별도로 작성해 드립니다. 1. // 입력값 설정 input : Period(18); // 이동평균 주기 input : MultiD(0.5); // 초기 표준편차 배수 input : RSILength(14); // RSI 주기 input : MACDFast(12); // MACD 빠른 선 input : MACDSlow(26); // MACD 느린 선 input : MACDSignal(9); // MACD 신호선 // 변수 선언 var : MAv(0); // 이동평균선 var : BBup(0); var : BBdn(0); // 볼밴 0.5σ var : BBup1(0); var : BBdn1(0); // 볼밴 1σ var : BBup1_5(0); var : BBdn1_5(0); // 볼밴 1.5σ var : BBup2(0); var : BBdn2(0); // 볼밴 2σ var : BBup2_5(0); var : BBdn2_5(0); // 볼밴 2.5σ var : BBup3(0); var : BBdn3(0); // 볼밴 3σ var : BBWidth(0); // 볼밴 폭 (스퀴즈 감지용) var : MACDLine(0); var : SignalLine(0); var : MACDHist(0); // MACD 변수 var : RSIVal(0); // RSI 값 var : OBVVal(0); // OBV 값 var : VolumeSpike(False); // 거래량 급증 여부 // 계산 MAv = ma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (std(close, Period) * MultiD); BBdn = MAv - (std(close, Period) * MultiD); BBup1 = MAv + (std(close, Period) * 1); BBdn1 = MAv - (std(close, Period) * 1); BBup1_5 = MAv + (std(close, Period) * 1.5); BBdn1_5 = MAv - (std(close, Period) * 1.5); BBup2 = MAv + (std(close, Period) * 2); BBdn2 = MAv - (std(close, Period) * 2); BBup2_5 = MAv + (std(close, Period) * 2.5); BBdn2_5 = MAv - (std(close, Period) * 2.5); BBup3 = MAv + (std(close, Period) * 3); BBdn3 = MAv - (std(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (ma(volume, 5) * 2); // 매매 신호 조건 var : LongEntry(False); // 롱 진입 신호 var : PartialExit(False); // 일부 청산 신호 var : FullExit(False); // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and CrossUp(MACDLine,SignalLine)); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot1(MAv, "이평", blue); plot2(BBup, "0.5", gray); plot3(BBdn, "0.5", gray); plot4(BBup1, "1", gray); plot5(BBdn1, "1", gray); plot6(BBup1_5, "1.5", orange); plot7(BBdn1_5, "1.5", orange); plot8(BBup2, "2", red); plot9(BBdn2, "2", red); plot10(BBup2_5, "2.5", purple); plot11(BBdn2_5, "2.5", purple); plot12(BBup3, "3", black); plot13(BBdn3, "3", black); // 매매 신호 시각화 var : tx1(0),tx2(0),tx3(0); if LongEntry Then { tx1 = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx1,2,0); Text_SetColor(tx1,Green); } if PartialExit Then { tx2 = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx2,2,1); Text_SetColor(tx2,yellow); } if FullExit Then { tx3 = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx3,2,1); Text_SetColor(tx3,red); } 2 // 입력값 설정 input : Period(18); // 이동평균 주기 input : MultiD(0.5); // 초기 표준편차 배수 input : RSILength(14); // RSI 주기 input : MACDFast(12); // MACD 빠른 선 input : MACDSlow(26); // MACD 느린 선 input : MACDSignal(9); // MACD 신호선 // 변수 선언 var : MAv(0); // 이동평균선 var : BBup(0); var : BBdn(0); // 볼밴 0.5σ var : BBup1(0); var : BBdn1(0); // 볼밴 1σ var : BBup1_5(0); var : BBdn1_5(0); // 볼밴 1.5σ var : BBup2(0); var : BBdn2(0); // 볼밴 2σ var : BBup2_5(0); var : BBdn2_5(0); // 볼밴 2.5σ var : BBup3(0); var : BBdn3(0); // 볼밴 3σ var : BBWidth(0); // 볼밴 폭 (스퀴즈 감지용) var : MACDLine(0); var : SignalLine(0); var : MACDHist(0); // MACD 변수 var : RSIVal(0); // RSI 값 var : OBVVal(0); // OBV 값 var : VolumeSpike(False); // 거래량 급증 여부 // 계산 MAv = ma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (std(close, Period) * MultiD); BBdn = MAv - (std(close, Period) * MultiD); BBup1 = MAv + (std(close, Period) * 1); BBdn1 = MAv - (std(close, Period) * 1); BBup1_5 = MAv + (std(close, Period) * 1.5); BBdn1_5 = MAv - (std(close, Period) * 1.5); BBup2 = MAv + (std(close, Period) * 2); BBdn2 = MAv - (std(close, Period) * 2); BBup2_5 = MAv + (std(close, Period) * 2.5); BBdn2_5 = MAv - (std(close, Period) * 2.5); BBup3 = MAv + (std(close, Period) * 3); BBdn3 = MAv - (std(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (ma(volume, 5) * 2); // 매매 신호 조건 var : LongEntry(False); // 롱 진입 신호 var : PartialExit(False); // 일부 청산 신호 var : FullExit(False); // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and CrossUp(MACDLine,SignalLine)); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); plot1(MACDLine, "MACD", blue); plot2(SignalLine, "Signal", red); plot3(RSIVal, "RSI", purple); plot4(OBVVal, "OBV", teal); 즐거운 하루되세요 > feelyen 님이 쓴 글입니다. > 제목 : 식을 예스랭귀지로 변환 부탁드립니다. > 아래식을 예스랭귀지로 변환 부탁드립니다. // 입력값 설정 input Period = 18; // 이동평균 주기 input MultiD = 0.5; // 초기 표준편차 배수 input RSILength = 14; // RSI 주기 input MACDFast = 12; // MACD 빠른 선 input MACDSlow = 26; // MACD 느린 선 input MACDSignal = 9; // MACD 신호선 // 변수 선언 var MAv = 0; // 이동평균선 var BBup = 0; var BBdn = 0; // 볼밴 0.5σ var BBup1 = 0; var BBdn1 = 0; // 볼밴 1σ var BBup1_5 = 0; var BBdn1_5 = 0; // 볼밴 1.5σ var BBup2 = 0; var BBdn2 = 0; // 볼밴 2σ var BBup2_5 = 0; var BBdn2_5 = 0; // 볼밴 2.5σ var BBup3 = 0; var BBdn3 = 0; // 볼밴 3σ var BBWidth = 0; // 볼밴 폭 (스퀴즈 감지용) var MACDLine = 0; var SignalLine = 0; var MACDHist = 0; // MACD 변수 var RSIVal = 0; // RSI 값 var OBVVal = 0; // OBV 값 var VolumeSpike = 0; // 거래량 급증 여부 // 계산 MAv = sma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (stdev(close, Period) * MultiD); BBdn = MAv - (stdev(close, Period) * MultiD); BBup1 = MAv + (stdev(close, Period) * 1); BBdn1 = MAv - (stdev(close, Period) * 1); BBup1_5 = MAv + (stdev(close, Period) * 1.5); BBdn1_5 = MAv - (stdev(close, Period) * 1.5); BBup2 = MAv + (stdev(close, Period) * 2); BBdn2 = MAv - (stdev(close, Period) * 2); BBup2_5 = MAv + (stdev(close, Period) * 2.5); BBdn2_5 = MAv - (stdev(close, Period) * 2.5); BBup3 = MAv + (stdev(close, Period) * 3); BBdn3 = MAv - (stdev(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(close, RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (sma(volume, 5) * 2); // 매매 신호 조건 var LongEntry = 0; // 롱 진입 신호 var PartialExit = 0; // 일부 청산 신호 var FullExit = 0; // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and MACDLine crosses above SignalLine); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot(MAv, "이평", color.blue); plot(BBup, "0.5", color.gray); plot(BBdn, "0.5", color.gray); plot(BBup1, "1", color.gray); plot(BBdn1, "1", color.gray); plot(BBup1_5, "1.5", color.orange); plot(BBdn1_5, "1.5", color.orange); plot(BBup2, "2", color.red); plot(BBdn2, "2", color.red); plot(BBup2_5, "2.5", color.purple); plot(BBdn2_5, "2.5", color.purple); plot(BBup3, "3", color.black); plot(BBdn3, "3", color.black); // 매매 신호 시각화 plotshape(LongEntry, "롱 진입", shape.triangleup, location.belowbar, color.green, size.small); plotshape(PartialExit, "일부 청산", shape.triangledown, location.abovebar, color.yellow, size.small); plotshape(FullExit, "전량 매도", shape.triangledown, location.abovebar, color.red, size.small); // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal);
프로필 이미지

feelyen

2025-03-19 16:40:24

2번식으로 검증 했을 때 첨부파일처럼 에러가 발생합니다! > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 식을 예스랭귀지로 변환 부탁드립니다. > 안녕하세요 예스스탁입니다. // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal); 위 내용은 봉차트와 괴리가 있는 지표들입니다. 해당 지표도 Y축 범위가 다릅니다. 2번식으로 별도로 작성해 드립니다. 1. // 입력값 설정 input : Period(18); // 이동평균 주기 input : MultiD(0.5); // 초기 표준편차 배수 input : RSILength(14); // RSI 주기 input : MACDFast(12); // MACD 빠른 선 input : MACDSlow(26); // MACD 느린 선 input : MACDSignal(9); // MACD 신호선 // 변수 선언 var : MAv(0); // 이동평균선 var : BBup(0); var : BBdn(0); // 볼밴 0.5σ var : BBup1(0); var : BBdn1(0); // 볼밴 1σ var : BBup1_5(0); var : BBdn1_5(0); // 볼밴 1.5σ var : BBup2(0); var : BBdn2(0); // 볼밴 2σ var : BBup2_5(0); var : BBdn2_5(0); // 볼밴 2.5σ var : BBup3(0); var : BBdn3(0); // 볼밴 3σ var : BBWidth(0); // 볼밴 폭 (스퀴즈 감지용) var : MACDLine(0); var : SignalLine(0); var : MACDHist(0); // MACD 변수 var : RSIVal(0); // RSI 값 var : OBVVal(0); // OBV 값 var : VolumeSpike(False); // 거래량 급증 여부 // 계산 MAv = ma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (std(close, Period) * MultiD); BBdn = MAv - (std(close, Period) * MultiD); BBup1 = MAv + (std(close, Period) * 1); BBdn1 = MAv - (std(close, Period) * 1); BBup1_5 = MAv + (std(close, Period) * 1.5); BBdn1_5 = MAv - (std(close, Period) * 1.5); BBup2 = MAv + (std(close, Period) * 2); BBdn2 = MAv - (std(close, Period) * 2); BBup2_5 = MAv + (std(close, Period) * 2.5); BBdn2_5 = MAv - (std(close, Period) * 2.5); BBup3 = MAv + (std(close, Period) * 3); BBdn3 = MAv - (std(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (ma(volume, 5) * 2); // 매매 신호 조건 var : LongEntry(False); // 롱 진입 신호 var : PartialExit(False); // 일부 청산 신호 var : FullExit(False); // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and CrossUp(MACDLine,SignalLine)); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot1(MAv, "이평", blue); plot2(BBup, "0.5", gray); plot3(BBdn, "0.5", gray); plot4(BBup1, "1", gray); plot5(BBdn1, "1", gray); plot6(BBup1_5, "1.5", orange); plot7(BBdn1_5, "1.5", orange); plot8(BBup2, "2", red); plot9(BBdn2, "2", red); plot10(BBup2_5, "2.5", purple); plot11(BBdn2_5, "2.5", purple); plot12(BBup3, "3", black); plot13(BBdn3, "3", black); // 매매 신호 시각화 var : tx1(0),tx2(0),tx3(0); if LongEntry Then { tx1 = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx1,2,0); Text_SetColor(tx1,Green); } if PartialExit Then { tx2 = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx2,2,1); Text_SetColor(tx2,yellow); } if FullExit Then { tx3 = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx3,2,1); Text_SetColor(tx3,red); } 2 // 입력값 설정 input : Period(18); // 이동평균 주기 input : MultiD(0.5); // 초기 표준편차 배수 input : RSILength(14); // RSI 주기 input : MACDFast(12); // MACD 빠른 선 input : MACDSlow(26); // MACD 느린 선 input : MACDSignal(9); // MACD 신호선 // 변수 선언 var : MAv(0); // 이동평균선 var : BBup(0); var : BBdn(0); // 볼밴 0.5σ var : BBup1(0); var : BBdn1(0); // 볼밴 1σ var : BBup1_5(0); var : BBdn1_5(0); // 볼밴 1.5σ var : BBup2(0); var : BBdn2(0); // 볼밴 2σ var : BBup2_5(0); var : BBdn2_5(0); // 볼밴 2.5σ var : BBup3(0); var : BBdn3(0); // 볼밴 3σ var : BBWidth(0); // 볼밴 폭 (스퀴즈 감지용) var : MACDLine(0); var : SignalLine(0); var : MACDHist(0); // MACD 변수 var : RSIVal(0); // RSI 값 var : OBVVal(0); // OBV 값 var : VolumeSpike(False); // 거래량 급증 여부 // 계산 MAv = ma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (std(close, Period) * MultiD); BBdn = MAv - (std(close, Period) * MultiD); BBup1 = MAv + (std(close, Period) * 1); BBdn1 = MAv - (std(close, Period) * 1); BBup1_5 = MAv + (std(close, Period) * 1.5); BBdn1_5 = MAv - (std(close, Period) * 1.5); BBup2 = MAv + (std(close, Period) * 2); BBdn2 = MAv - (std(close, Period) * 2); BBup2_5 = MAv + (std(close, Period) * 2.5); BBdn2_5 = MAv - (std(close, Period) * 2.5); BBup3 = MAv + (std(close, Period) * 3); BBdn3 = MAv - (std(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (ma(volume, 5) * 2); // 매매 신호 조건 var : LongEntry(False); // 롱 진입 신호 var : PartialExit(False); // 일부 청산 신호 var : FullExit(False); // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and CrossUp(MACDLine,SignalLine)); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); plot1(MACDLine, "MACD", blue); plot2(SignalLine, "Signal", red); plot3(RSIVal, "RSI", purple); plot4(OBVVal, "OBV", teal); 즐거운 하루되세요 > feelyen 님이 쓴 글입니다. > 제목 : 식을 예스랭귀지로 변환 부탁드립니다. > 아래식을 예스랭귀지로 변환 부탁드립니다. // 입력값 설정 input Period = 18; // 이동평균 주기 input MultiD = 0.5; // 초기 표준편차 배수 input RSILength = 14; // RSI 주기 input MACDFast = 12; // MACD 빠른 선 input MACDSlow = 26; // MACD 느린 선 input MACDSignal = 9; // MACD 신호선 // 변수 선언 var MAv = 0; // 이동평균선 var BBup = 0; var BBdn = 0; // 볼밴 0.5σ var BBup1 = 0; var BBdn1 = 0; // 볼밴 1σ var BBup1_5 = 0; var BBdn1_5 = 0; // 볼밴 1.5σ var BBup2 = 0; var BBdn2 = 0; // 볼밴 2σ var BBup2_5 = 0; var BBdn2_5 = 0; // 볼밴 2.5σ var BBup3 = 0; var BBdn3 = 0; // 볼밴 3σ var BBWidth = 0; // 볼밴 폭 (스퀴즈 감지용) var MACDLine = 0; var SignalLine = 0; var MACDHist = 0; // MACD 변수 var RSIVal = 0; // RSI 값 var OBVVal = 0; // OBV 값 var VolumeSpike = 0; // 거래량 급증 여부 // 계산 MAv = sma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (stdev(close, Period) * MultiD); BBdn = MAv - (stdev(close, Period) * MultiD); BBup1 = MAv + (stdev(close, Period) * 1); BBdn1 = MAv - (stdev(close, Period) * 1); BBup1_5 = MAv + (stdev(close, Period) * 1.5); BBdn1_5 = MAv - (stdev(close, Period) * 1.5); BBup2 = MAv + (stdev(close, Period) * 2); BBdn2 = MAv - (stdev(close, Period) * 2); BBup2_5 = MAv + (stdev(close, Period) * 2.5); BBdn2_5 = MAv - (stdev(close, Period) * 2.5); BBup3 = MAv + (stdev(close, Period) * 3); BBdn3 = MAv - (stdev(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(close, RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (sma(volume, 5) * 2); // 매매 신호 조건 var LongEntry = 0; // 롱 진입 신호 var PartialExit = 0; // 일부 청산 신호 var FullExit = 0; // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and MACDLine crosses above SignalLine); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot(MAv, "이평", color.blue); plot(BBup, "0.5", color.gray); plot(BBdn, "0.5", color.gray); plot(BBup1, "1", color.gray); plot(BBdn1, "1", color.gray); plot(BBup1_5, "1.5", color.orange); plot(BBdn1_5, "1.5", color.orange); plot(BBup2, "2", color.red); plot(BBdn2, "2", color.red); plot(BBup2_5, "2.5", color.purple); plot(BBdn2_5, "2.5", color.purple); plot(BBup3, "3", color.black); plot(BBdn3, "3", color.black); // 매매 신호 시각화 plotshape(LongEntry, "롱 진입", shape.triangleup, location.belowbar, color.green, size.small); plotshape(PartialExit, "일부 청산", shape.triangledown, location.abovebar, color.yellow, size.small); plotshape(FullExit, "전량 매도", shape.triangledown, location.abovebar, color.red, size.small); // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal);
프로필 이미지

예스스탁 예스스탁 답변

2025-03-24 14:15:59

안녕하세요 예스스탁입니다. 수식을 EL모드로 작성하신거 같습니다. EL모드로는 작성해 드리지 않으므로 새로작성창에서 EL에 체크하지 않고 작성하셔야 합니다. 즐거운 하루되세요 > feelyen 님이 쓴 글입니다. > 제목 : Re : Re : 식을 예스랭귀지로 변환 부탁드립니다. > 2번식으로 검증 했을 때 첨부파일처럼 에러가 발생합니다! > 예스스탁 님이 쓴 글입니다. > 제목 : Re : 식을 예스랭귀지로 변환 부탁드립니다. > 안녕하세요 예스스탁입니다. // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal); 위 내용은 봉차트와 괴리가 있는 지표들입니다. 해당 지표도 Y축 범위가 다릅니다. 2번식으로 별도로 작성해 드립니다. 1. // 입력값 설정 input : Period(18); // 이동평균 주기 input : MultiD(0.5); // 초기 표준편차 배수 input : RSILength(14); // RSI 주기 input : MACDFast(12); // MACD 빠른 선 input : MACDSlow(26); // MACD 느린 선 input : MACDSignal(9); // MACD 신호선 // 변수 선언 var : MAv(0); // 이동평균선 var : BBup(0); var : BBdn(0); // 볼밴 0.5σ var : BBup1(0); var : BBdn1(0); // 볼밴 1σ var : BBup1_5(0); var : BBdn1_5(0); // 볼밴 1.5σ var : BBup2(0); var : BBdn2(0); // 볼밴 2σ var : BBup2_5(0); var : BBdn2_5(0); // 볼밴 2.5σ var : BBup3(0); var : BBdn3(0); // 볼밴 3σ var : BBWidth(0); // 볼밴 폭 (스퀴즈 감지용) var : MACDLine(0); var : SignalLine(0); var : MACDHist(0); // MACD 변수 var : RSIVal(0); // RSI 값 var : OBVVal(0); // OBV 값 var : VolumeSpike(False); // 거래량 급증 여부 // 계산 MAv = ma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (std(close, Period) * MultiD); BBdn = MAv - (std(close, Period) * MultiD); BBup1 = MAv + (std(close, Period) * 1); BBdn1 = MAv - (std(close, Period) * 1); BBup1_5 = MAv + (std(close, Period) * 1.5); BBdn1_5 = MAv - (std(close, Period) * 1.5); BBup2 = MAv + (std(close, Period) * 2); BBdn2 = MAv - (std(close, Period) * 2); BBup2_5 = MAv + (std(close, Period) * 2.5); BBdn2_5 = MAv - (std(close, Period) * 2.5); BBup3 = MAv + (std(close, Period) * 3); BBdn3 = MAv - (std(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (ma(volume, 5) * 2); // 매매 신호 조건 var : LongEntry(False); // 롱 진입 신호 var : PartialExit(False); // 일부 청산 신호 var : FullExit(False); // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and CrossUp(MACDLine,SignalLine)); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot1(MAv, "이평", blue); plot2(BBup, "0.5", gray); plot3(BBdn, "0.5", gray); plot4(BBup1, "1", gray); plot5(BBdn1, "1", gray); plot6(BBup1_5, "1.5", orange); plot7(BBdn1_5, "1.5", orange); plot8(BBup2, "2", red); plot9(BBdn2, "2", red); plot10(BBup2_5, "2.5", purple); plot11(BBdn2_5, "2.5", purple); plot12(BBup3, "3", black); plot13(BBdn3, "3", black); // 매매 신호 시각화 var : tx1(0),tx2(0),tx3(0); if LongEntry Then { tx1 = Text_New(sDate,sTime,L,"▲"); Text_SetStyle(tx1,2,0); Text_SetColor(tx1,Green); } if PartialExit Then { tx2 = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx2,2,1); Text_SetColor(tx2,yellow); } if FullExit Then { tx3 = Text_New(sDate,sTime,H,"▼"); Text_SetStyle(tx3,2,1); Text_SetColor(tx3,red); } 2 // 입력값 설정 input : Period(18); // 이동평균 주기 input : MultiD(0.5); // 초기 표준편차 배수 input : RSILength(14); // RSI 주기 input : MACDFast(12); // MACD 빠른 선 input : MACDSlow(26); // MACD 느린 선 input : MACDSignal(9); // MACD 신호선 // 변수 선언 var : MAv(0); // 이동평균선 var : BBup(0); var : BBdn(0); // 볼밴 0.5σ var : BBup1(0); var : BBdn1(0); // 볼밴 1σ var : BBup1_5(0); var : BBdn1_5(0); // 볼밴 1.5σ var : BBup2(0); var : BBdn2(0); // 볼밴 2σ var : BBup2_5(0); var : BBdn2_5(0); // 볼밴 2.5σ var : BBup3(0); var : BBdn3(0); // 볼밴 3σ var : BBWidth(0); // 볼밴 폭 (스퀴즈 감지용) var : MACDLine(0); var : SignalLine(0); var : MACDHist(0); // MACD 변수 var : RSIVal(0); // RSI 값 var : OBVVal(0); // OBV 값 var : VolumeSpike(False); // 거래량 급증 여부 // 계산 MAv = ma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (std(close, Period) * MultiD); BBdn = MAv - (std(close, Period) * MultiD); BBup1 = MAv + (std(close, Period) * 1); BBdn1 = MAv - (std(close, Period) * 1); BBup1_5 = MAv + (std(close, Period) * 1.5); BBdn1_5 = MAv - (std(close, Period) * 1.5); BBup2 = MAv + (std(close, Period) * 2); BBdn2 = MAv - (std(close, Period) * 2); BBup2_5 = MAv + (std(close, Period) * 2.5); BBdn2_5 = MAv - (std(close, Period) * 2.5); BBup3 = MAv + (std(close, Period) * 3); BBdn3 = MAv - (std(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (ma(volume, 5) * 2); // 매매 신호 조건 var : LongEntry(False); // 롱 진입 신호 var : PartialExit(False); // 일부 청산 신호 var : FullExit(False); // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and CrossUp(MACDLine,SignalLine)); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); plot1(MACDLine, "MACD", blue); plot2(SignalLine, "Signal", red); plot3(RSIVal, "RSI", purple); plot4(OBVVal, "OBV", teal); 즐거운 하루되세요 > feelyen 님이 쓴 글입니다. > 제목 : 식을 예스랭귀지로 변환 부탁드립니다. > 아래식을 예스랭귀지로 변환 부탁드립니다. // 입력값 설정 input Period = 18; // 이동평균 주기 input MultiD = 0.5; // 초기 표준편차 배수 input RSILength = 14; // RSI 주기 input MACDFast = 12; // MACD 빠른 선 input MACDSlow = 26; // MACD 느린 선 input MACDSignal = 9; // MACD 신호선 // 변수 선언 var MAv = 0; // 이동평균선 var BBup = 0; var BBdn = 0; // 볼밴 0.5σ var BBup1 = 0; var BBdn1 = 0; // 볼밴 1σ var BBup1_5 = 0; var BBdn1_5 = 0; // 볼밴 1.5σ var BBup2 = 0; var BBdn2 = 0; // 볼밴 2σ var BBup2_5 = 0; var BBdn2_5 = 0; // 볼밴 2.5σ var BBup3 = 0; var BBdn3 = 0; // 볼밴 3σ var BBWidth = 0; // 볼밴 폭 (스퀴즈 감지용) var MACDLine = 0; var SignalLine = 0; var MACDHist = 0; // MACD 변수 var RSIVal = 0; // RSI 값 var OBVVal = 0; // OBV 값 var VolumeSpike = 0; // 거래량 급증 여부 // 계산 MAv = sma(close, Period); // 단순 이동평균선 (SMA) // 볼린저밴드 계산 (다양한 표준편차) BBup = MAv + (stdev(close, Period) * MultiD); BBdn = MAv - (stdev(close, Period) * MultiD); BBup1 = MAv + (stdev(close, Period) * 1); BBdn1 = MAv - (stdev(close, Period) * 1); BBup1_5 = MAv + (stdev(close, Period) * 1.5); BBdn1_5 = MAv - (stdev(close, Period) * 1.5); BBup2 = MAv + (stdev(close, Period) * 2); BBdn2 = MAv - (stdev(close, Period) * 2); BBup2_5 = MAv + (stdev(close, Period) * 2.5); BBdn2_5 = MAv - (stdev(close, Period) * 2.5); BBup3 = MAv + (stdev(close, Period) * 3); BBdn3 = MAv - (stdev(close, Period) * 3); // 볼밴 폭 계산 (스퀴즈 감지) BBWidth = BBup2 - BBdn2; // MACD 계산 MACDLine = ema(close, MACDFast) - ema(close, MACDSlow); SignalLine = ema(MACDLine, MACDSignal); MACDHist = MACDLine - SignalLine; // RSI 계산 RSIVal = rsi(close, RSILength); // OBV 계산 OBVVal = obv; // 거래량 급증 체크 (이전 5개 캔들 평균 대비 2배 이상) VolumeSpike = volume > (sma(volume, 5) * 2); // 매매 신호 조건 var LongEntry = 0; // 롱 진입 신호 var PartialExit = 0; // 일부 청산 신호 var FullExit = 0; // 전량 매도 신호 // 롱 진입 조건: 볼밴 스퀴즈 후 상한선 돌파 + 거래량 급증 + MACD 골든 크로스 LongEntry = (BBWidth < BBWidth[1] and close > BBup2 and VolumeSpike and MACDLine crosses above SignalLine); // 일부 청산 조건: RSI 70 초과 PartialExit = (RSIVal > 70); // 전량 매도 조건: OBV 하락 다이버전스 (가격은 상승인데 OBV는 하락) FullExit = (close > close[1] and OBVVal < OBVVal[1]); // 시각화 plot(MAv, "이평", color.blue); plot(BBup, "0.5", color.gray); plot(BBdn, "0.5", color.gray); plot(BBup1, "1", color.gray); plot(BBdn1, "1", color.gray); plot(BBup1_5, "1.5", color.orange); plot(BBdn1_5, "1.5", color.orange); plot(BBup2, "2", color.red); plot(BBdn2, "2", color.red); plot(BBup2_5, "2.5", color.purple); plot(BBdn2_5, "2.5", color.purple); plot(BBup3, "3", color.black); plot(BBdn3, "3", color.black); // 매매 신호 시각화 plotshape(LongEntry, "롱 진입", shape.triangleup, location.belowbar, color.green, size.small); plotshape(PartialExit, "일부 청산", shape.triangledown, location.abovebar, color.yellow, size.small); plotshape(FullExit, "전량 매도", shape.triangledown, location.abovebar, color.red, size.small); // 추가 지표 플롯 (선택적) plot(MACDLine, "MACD", color.blue); plot(SignalLine, "Signal", color.red); plot(RSIVal, "RSI", color.purple); plot(OBVVal, "OBV", color.teal);