커뮤니티

수정부탁드립니다 감사합니다

프로필 이미지
윤호석
2025-05-30 07:52:03
241
글번호 191282
답변완료
1.// === 사용자 입력 === Input : 기준거래량배율(1.5), 체결강도EMA(20), OI_EMA단기(10), OI_EMA장기(60); // === 변수 선언 === Var: 매수체결량(0), 매도체결량(0), 순매수체결량(0), 순매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 거래량필터패스(False), tx(0); // === 거래량 필터 === 기준거래량 = Average(Volume, 20); If Volume < 기준거래량 * 기준거래량배율 Then Return; // === 체결강도 계산 === 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순매수체결량 = ACCUM(매수체결량); 순매도체결량 = ACCUM(매도체결량); 순체결강도 = ACCUM(매수체결량 - 매도체결량); // === 체결강도 EMA === 체결EMA = EMA(순체결강도, 체결강도EMA); // === 체결강도 급증 알림 === If CrossUp(순체결강도, 체결EMA) Then Begin tx = Text_New_Self(Date, Time, Close, "체결강도↑"); Text_SetColor(tx, Red); Text_SetStyle(tx, 2, 0); End; // === OI 변화 누적 및 이동평균 === OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // === OI 교차 알림 === If CrossUp(OI_EMA1, OI_EMA2) Then Begin tx = Text_New_Self(Date, Time, Close, "OI↑"); Text_SetColor(tx, Green); End; If CrossDown(OI_EMA1, OI_EMA2) Then Begin tx = Text_New_Self(Date, Time, Close, "OI↓"); Text_SetColor(tx, Blue); End; // === 차트 출력 === Plot1(순매수체결량, "순매수"); Plot2(순매도체결량, "순매도"); Plot3(순체결강도, "순체결강도"); Plot4(체결EMA, "체결EMA"); Plot5(누적OI, "누적OI"); Plot6(OI_EMA1, "OI EMA10"); Plot7(OI_EMA2, "OI EMA60"); PlotBaseLine1(0); 2.// =================== 입력값 =================== Input: 기준거래량배율(1.5), 체결EMA기간(20), OI_EMA단기(10), OI_EMA장기(60), 익절률(1.02), 손절률(0.985), 박스색(RGB(220,220,220)); // =================== 변수 =================== Var: 매수체결량(0), 매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(False), 박스ID(0); // =================== 거래량 필터 =================== 기준거래량 = Average(Volume, 20); If Volume < 기준거래량 * 기준거래량배율 Then Return; // =================== 체결강도 =================== 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순체결강도 = ACCUM(매수체결량 - 매도체결량); 체결EMA = EMA(순체결강도, 체결EMA기간); // =================== OI 누적 및 이동평균 =================== OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // =================== 진입 조건 =================== If 진입중 = False AND 순체결강도 > 체결EMA AND CrossUp(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 익절률; 손절가 = 진입가 * 손절률; 진입중 = True; // 박스 출력 박스ID = Rectangle_New(Date, Time, 익절가, Date, Time, 손절가); Rectangle_SetColor(박스ID, 박스색); Rectangle_SetStyle(박스ID, 1); Rectangle_SetSize(박스ID, 2); // 진입 텍스트 Text_New(Date, Time, Close, "진입 ▶"); End; // =================== 청산 조건 =================== If 진입중 Then Begin If Close >= 익절가 Then Begin Text_New(Date, Time, Close, "익절 &#9989;"); 진입중 = False; End Else If Close <= 손절가 Then Begin Text_New(Date, Time, Close, "손절 &#10060;"); 진입중 = False; End; End; 3.// =================== 입력값 =================== Input: 기준거래량배율(1.5), 체결EMA기간(20), OI_EMA단기(10), OI_EMA장기(60), 익절률(1.02), 손절률(0.985), 숏익절률(0.98), 숏손절률(1.015), 박스색_롱(RGB(220,220,220)), 박스색_숏(RGB(200,230,255)); // =================== 변수 =================== Var: 매수체결량(0), 매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(False), 숏진입(False); Var: 박스ID(0); // =================== 거래량 필터 =================== 기준거래량 = Average(Volume, 20); If Volume < 기준거래량 * 기준거래량배율 Then Return; // =================== 체결강도 계산 =================== 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순체결강도 = ACCUM(매수체결량 - 매도체결량); 체결EMA = EMA(순체결강도, 체결EMA기간); // =================== OI 이동평균 =================== OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // =================== 롱 진입 =================== If 진입중 = False AND 순체결강도 > 체결EMA AND CrossUp(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 익절률; 손절가 = 진입가 * 손절률; 진입중 = True; 숏진입 = False; 박스ID = Rectangle_New(Date, Time, 익절가, Date, Time, 손절가); Rectangle_SetColor(박스ID, 박스색_롱); Rectangle_SetStyle(박스ID, 1); Rectangle_SetSize(박스ID, 2); Text_New(Date, Time, Close, "롱 진입 ▶"); End; // =================== 숏 진입 =================== If 진입중 = False AND 순체결강도 < 체결EMA AND CrossDown(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 숏익절률; 손절가 = 진입가 * 숏손절률; 진입중 = True; 숏진입 = True; 박스ID = Rectangle_New(Date, Time, 익절가, Date, Time, 손절가); Rectangle_SetColor(박스ID, 박스색_숏); Rectangle_SetStyle(박스ID, 1); Rectangle_SetSize(박스ID, 2); Text_New(Date, Time, Close, "숏 진입 ▼"); End; // =================== 청산 조건 =================== If 진입중 Then Begin If 숏진입 = False Then // 롱 Begin If Close >= 익절가 Then Begin Text_New(Date, Time, Close, "롱 익절 &#9989;"); 진입중 = False; End Else If Close <= 손절가 Then Begin Text_New(Date, Time, Close, "롱 손절 &#10060;"); 진입중 = False; End; End Else // 숏 Begin If Close <= 익절가 Then Begin Text_New(Date, Time, Close, "숏 익절 &#9989;"); 진입중 = False; End Else If Close >= 손절가 Then Begin Text_New(Date, Time, Close, "숏 손절 &#10060;"); 진입중 = False; End; End; End; 4.// 기본 입력값 Input: 진입가(0), 손절비율(0.985), 익절비율(1.015), 박스색상(Green), 손절색상(Red); // 진입, 손절, 익절가 계산 Var: 익절가(0), 손절가(0), 손익비(0); 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 손익비 = Round((익절가 - 진입가) / (진입가 - 손절가), 2); // 박스 출력 (익절) Var: 익절박스(0); 익절박스 = Box_New(Date, Time, 진입가, Date+1, Time, 익절가); Box_SetColor(익절박스, 박스색상); Box_SetFill(익절박스, true); // 박스 출력 (손절) Var: 손절박스(0); 손절박스 = Box_New(Date, Time, 손절가, Date+1, Time, 진입가); Box_SetColor(손절박스, 손절색상); Box_SetFill(손절박스, true); // 텍스트 출력: 손익비 Var: tx(0); tx = Text_New(Date, Time, 손절가 - (진입가 - 손절가)/2, "손익비: " + NumToStr(손익비, 2)); Text_SetStyle(tx, 1, 0); Text_SetColor(tx, Black); Text_SetSize(tx, 10); 5.// === 사용자 입력 === Input: 진입가(0), 손절비율(1.015), 익절비율(0.985), 박스색상(Red), 손절색상(Green); // === 익절/손절가 계산 === Var: 익절가(0), 손절가(0), 손익비(0); 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 손익비 = Round((진입가 - 익절가) / (손절가 - 진입가), 2); // === 익절 박스 생성 === Var: 익절박스(0); 익절박스 = Box_New(Date, Time, 익절가, Date + 1, Time, 진입가); Box_SetColor(익절박스, 박스색상); Box_SetFill(익절박스, true); // === 손절 박스 생성 === Var: 손절박스(0); 손절박스 = Box_New(Date, Time, 진입가, Date + 1, Time, 손절가); Box_SetColor(손절박스, 손절색상); Box_SetFill(손절박스, true); // === 손익비 텍스트 출력 === Var: tx(0); tx = Text_New(Date, Time, 손절가 + (손절가 - 진입가)/2, "손익비: " + NumToStr(손익비, 2)); Text_SetStyle(tx, 1, 1); Text_SetColor(tx, Black); Text_SetSize(tx, 10); 수정부탁드립니다 감사합니다
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2025-06-02 08:54:58

안녕하세요 예스스탁입니다. 1 // === 사용자 입력 === Input : 기준거래량배율(1.5), 체결강도EMA(20), OI_EMA단기(10), OI_EMA장기(60); // === 변수 선언 === Var: 매수체결량(0), 매도체결량(0), 순매수체결량(0), 순매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 거래량필터패스(False), tx(0); // === 거래량 필터 === 기준거래량 = Average(Volume, 20); #If Volume < 기준거래량 * 기준거래량배율 Then Return; // === 체결강도 계산 === 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순매수체결량 = ACCUM(매수체결량); 순매도체결량 = ACCUM(매도체결량); 순체결강도 = ACCUM(매수체결량 - 매도체결량); // === 체결강도 EMA === 체결EMA = EMA(순체결강도, 체결강도EMA); // === 체결강도 급증 알림 === If CrossUp(순체결강도, 체결EMA) Then Begin tx = Text_New_Self(Date, Time, Close, "체결강도↑"); Text_SetColor(tx, Red); Text_SetStyle(tx, 2, 0); End; // === OI 변화 누적 및 이동평균 === OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // === OI 교차 알림 === If CrossUp(OI_EMA1, OI_EMA2) Then Begin tx = Text_New_Self(Date, Time, Close, "OI↑"); Text_SetColor(tx, Green); End; If CrossDown(OI_EMA1, OI_EMA2) Then Begin tx = Text_New_Self(Date, Time, Close, "OI↓"); Text_SetColor(tx, Blue); End; // === 차트 출력 === Plot1(순매수체결량, "순매수"); Plot2(순매도체결량, "순매도"); Plot3(순체결강도, "순체결강도"); Plot4(체결EMA, "체결EMA"); Plot5(누적OI, "누적OI"); Plot6(OI_EMA1, "OI EMA10"); Plot7(OI_EMA2, "OI EMA60"); PlotBaseLine1(0); 2 // =================== 입력값 =================== Input: 기준거래량배율(1.5), 체결EMA기간(20), OI_EMA단기(10), OI_EMA장기(60), 익절률(1.02), 손절률(0.985), 박스색(RGB(220,220,220)); // =================== 변수 =================== Var: 매수체결량(0), 매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(False), 박스ID(0); // =================== 거래량 필터 =================== 기준거래량 = Average(Volume, 20); #If Volume < 기준거래량 * 기준거래량배율 Then Return; // =================== 체결강도 =================== 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순체결강도 = ACCUM(매수체결량 - 매도체결량); 체결EMA = EMA(순체결강도, 체결EMA기간); // =================== OI 누적 및 이동평균 =================== OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // =================== 진입 조건 =================== If 진입중 == False AND 순체결강도 > 체결EMA AND CrossUp(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 익절률; 손절가 = 진입가 * 손절률; 진입중 = True; // 박스 출력 박스ID = Box_New(Date, Time, 익절가, NextBarSdate, NextBarStime, 손절가); Box_SetColor(박스ID, 박스색); Box_SetStyle(박스ID, 1); Box_SetSize(박스ID, 2); // 진입 텍스트 Text_New(Date, Time, Close, "진입 ▶"); End; // =================== 청산 조건 =================== If 진입중 Then Begin Box_SetEnd(박스ID,NextBarSdate,NextBarStime,손절가); If Close >= 익절가 Then Begin Text_New(Date, Time, Close, "익절"); 진입중 = False; End Else If Close <= 손절가 Then Begin Text_New(Date, Time, Close, "손절"); 진입중 = False; End; End; 3 // =================== 입력값 =================== Input: 기준거래량배율(1.5), 체결EMA기간(20), OI_EMA단기(10), OI_EMA장기(60), 익절률(1.02), 손절률(0.985), 숏익절률(0.98), 숏손절률(1.015), 박스색_롱(RGB(220,220,220)), 박스색_숏(RGB(200,230,255)); // =================== 변수 =================== Var: 매수체결량(0), 매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(False), 숏진입(False); Var: 박스ID(0); // =================== 거래량 필터 =================== 기준거래량 = Average(Volume, 20); #If Volume < 기준거래량 * 기준거래량배율 Then Return; // =================== 체결강도 계산 =================== 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순체결강도 = ACCUM(매수체결량 - 매도체결량); 체결EMA = EMA(순체결강도, 체결EMA기간); // =================== OI 이동평균 =================== OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // =================== 롱 진입 =================== If 진입중 == False AND 순체결강도 > 체결EMA AND CrossUp(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 익절률; 손절가 = 진입가 * 손절률; 진입중 = True; 숏진입 = False; 박스ID = Box_New(Date, Time, 익절가, NextBarSdate, NextBarStime, 손절가); Box_SetColor(박스ID, 박스색_롱); Box_SetStyle(박스ID, 1); Box_SetSize(박스ID, 2); Text_New(Date, Time, Close, "롱 진입 ▶"); End; // =================== 숏 진입 =================== If 진입중 == False AND 순체결강도 < 체결EMA AND CrossDown(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 숏익절률; 손절가 = 진입가 * 숏손절률; 진입중 = True; 숏진입 = True; 박스ID = Box_New(Date, Time, 익절가, NextBarSdate, NextBarStime, 손절가); Box_SetColor(박스ID, 박스색_숏); Box_SetStyle(박스ID, 1); Box_SetSize(박스ID, 2); Text_New(Date, Time, Close, "숏 진입 ▼"); End; // =================== 청산 조건 =================== If 진입중 Then Begin Box_SetEnd(박스ID,NextBarSdate,NextBarStime,손절가); If 숏진입 == False Then // 롱 Begin If Close >= 익절가 Then Begin Text_New(Date, Time, Close, "롱 익절 &#9989;"); 진입중 = False; End Else If Close <= 손절가 Then Begin Text_New(Date, Time, Close, "롱 손절 &#10060;"); 진입중 = False; End; End Else // 숏 Begin If Close <= 익절가 Then Begin Text_New(Date, Time, Close, "숏 익절 &#9989;"); 진입중 = False; End Else If Close >= 손절가 Then Begin Text_New(Date, Time, Close, "숏 손절 &#10060;"); 진입중 = False; End; End; End; 4 Input: 진입가(350), 손절비율(0.985), 익절비율(1.015), 박스색상(Green), 손절색상(Red); // 진입, 손절, 익절가 계산 Var: 익절가(0), 손절가(0), 손익비(0); 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 손익비 = Round((익절가 - 진입가) / (진입가 - 손절가), 2); // 박스 출력 (익절) Var: 익절박스(0); // 박스 출력 (손절) Var: 손절박스(0); // 텍스트 출력: 손익비 Var: tx(0); if Index == 1 Then { 익절박스 = Box_New(Date, Time, 진입가, NextBarSdate, NextBarStime, 익절가); Box_SetColor(익절박스, 박스색상); Box_SetFill(익절박스, true); 손절박스 = Box_New(Date, Time, 손절가, NextBarSdate, NextBarStime, 진입가); Box_SetColor(손절박스, 손절색상); Box_SetFill(손절박스, true); tx = Text_New(Date, Time, 손절가 - (진입가 - 손절가)/2, "손익비: " + NumToStr(손익비, 2)); Text_SetStyle(tx, 1, 0); Text_SetColor(tx, Black); Text_SetSize(tx, 10); } Else { Box_SetEnd(익절박스,NextBarSdate,NextBarStime,익절가); Box_SetEnd(손절박스,NextBarSdate,NextBarStime,익절가); Text_SetLocation(tx,NextBarSdate,NextBarStime, 손절가 - (진입가 - 손절가)/2); } 5 Input: 진입가(0), 손절비율(1.015), 익절비율(0.985), 박스색상(Red), 손절색상(Green); // === 익절/손절가 계산 === Var: 익절가(0), 손절가(0), 손익비(0); 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 손익비 = Round((진입가 - 익절가) / (손절가 - 진입가), 2); // === 익절 박스 생성 === Var: 익절박스(0); // === 손절 박스 생성 === Var: 손절박스(0); // === 손익비 텍스트 출력 === Var: tx(0); if Index == 1 Then { 익절박스 = Box_New(Date, Time, 익절가, NextBarSdate, NextBarStime, 진입가); Box_SetColor(익절박스, 박스색상); Box_SetFill(익절박스, true); 손절박스 = Box_New(Date, Time, 진입가, NextBarSdate, NextBarStime, 손절가); Box_SetColor(손절박스, 손절색상); Box_SetFill(손절박스, true); tx = Text_New(Date, Time, 손절가 + (손절가 - 진입가)/2, "손익비: " + NumToStr(손익비, 2)); Text_SetStyle(tx, 1, 1); Text_SetColor(tx, Black); Text_SetSize(tx, 10); } Else { Box_SetEnd(익절박스,NextBarSdate,NextBarStime,진입가); Box_SetEnd(손절박스,NextBarSdate,NextBarStime,손절가); Text_SetLocation(tx,NextBarSdate,NextBarStime,손절가 + (손절가 - 진입가)/2); } 즐거운 하루되세요 > 윤호석 님이 쓴 글입니다. > 제목 : 수정부탁드립니다 감사합니다 > 1.// === 사용자 입력 === Input : 기준거래량배율(1.5), 체결강도EMA(20), OI_EMA단기(10), OI_EMA장기(60); // === 변수 선언 === Var: 매수체결량(0), 매도체결량(0), 순매수체결량(0), 순매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 거래량필터패스(False), tx(0); // === 거래량 필터 === 기준거래량 = Average(Volume, 20); If Volume < 기준거래량 * 기준거래량배율 Then Return; // === 체결강도 계산 === 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순매수체결량 = ACCUM(매수체결량); 순매도체결량 = ACCUM(매도체결량); 순체결강도 = ACCUM(매수체결량 - 매도체결량); // === 체결강도 EMA === 체결EMA = EMA(순체결강도, 체결강도EMA); // === 체결강도 급증 알림 === If CrossUp(순체결강도, 체결EMA) Then Begin tx = Text_New_Self(Date, Time, Close, "체결강도↑"); Text_SetColor(tx, Red); Text_SetStyle(tx, 2, 0); End; // === OI 변화 누적 및 이동평균 === OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // === OI 교차 알림 === If CrossUp(OI_EMA1, OI_EMA2) Then Begin tx = Text_New_Self(Date, Time, Close, "OI↑"); Text_SetColor(tx, Green); End; If CrossDown(OI_EMA1, OI_EMA2) Then Begin tx = Text_New_Self(Date, Time, Close, "OI↓"); Text_SetColor(tx, Blue); End; // === 차트 출력 === Plot1(순매수체결량, "순매수"); Plot2(순매도체결량, "순매도"); Plot3(순체결강도, "순체결강도"); Plot4(체결EMA, "체결EMA"); Plot5(누적OI, "누적OI"); Plot6(OI_EMA1, "OI EMA10"); Plot7(OI_EMA2, "OI EMA60"); PlotBaseLine1(0); 2.// =================== 입력값 =================== Input: 기준거래량배율(1.5), 체결EMA기간(20), OI_EMA단기(10), OI_EMA장기(60), 익절률(1.02), 손절률(0.985), 박스색(RGB(220,220,220)); // =================== 변수 =================== Var: 매수체결량(0), 매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(False), 박스ID(0); // =================== 거래량 필터 =================== 기준거래량 = Average(Volume, 20); If Volume < 기준거래량 * 기준거래량배율 Then Return; // =================== 체결강도 =================== 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순체결강도 = ACCUM(매수체결량 - 매도체결량); 체결EMA = EMA(순체결강도, 체결EMA기간); // =================== OI 누적 및 이동평균 =================== OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // =================== 진입 조건 =================== If 진입중 = False AND 순체결강도 > 체결EMA AND CrossUp(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 익절률; 손절가 = 진입가 * 손절률; 진입중 = True; // 박스 출력 박스ID = Rectangle_New(Date, Time, 익절가, Date, Time, 손절가); Rectangle_SetColor(박스ID, 박스색); Rectangle_SetStyle(박스ID, 1); Rectangle_SetSize(박스ID, 2); // 진입 텍스트 Text_New(Date, Time, Close, "진입 ▶"); End; // =================== 청산 조건 =================== If 진입중 Then Begin If Close >= 익절가 Then Begin Text_New(Date, Time, Close, "익절 &#9989;"); 진입중 = False; End Else If Close <= 손절가 Then Begin Text_New(Date, Time, Close, "손절 &#10060;"); 진입중 = False; End; End; 3.// =================== 입력값 =================== Input: 기준거래량배율(1.5), 체결EMA기간(20), OI_EMA단기(10), OI_EMA장기(60), 익절률(1.02), 손절률(0.985), 숏익절률(0.98), 숏손절률(1.015), 박스색_롱(RGB(220,220,220)), 박스색_숏(RGB(200,230,255)); // =================== 변수 =================== Var: 매수체결량(0), 매도체결량(0), 순체결강도(0), 체결EMA(0); Var: OI변화(0), 누적OI(0), OI_EMA1(0), OI_EMA2(0); Var: 기준거래량(0), 진입가(0), 익절가(0), 손절가(0), 진입중(False), 숏진입(False); Var: 박스ID(0); // =================== 거래량 필터 =================== 기준거래량 = Average(Volume, 20); If Volume < 기준거래량 * 기준거래량배율 Then Return; // =================== 체결강도 계산 =================== 매수체결량 = IFF(Close > Close[1], Volume, 0); 매도체결량 = IFF(Close < Close[1], Volume, 0); 순체결강도 = ACCUM(매수체결량 - 매도체결량); 체결EMA = EMA(순체결강도, 체결EMA기간); // =================== OI 이동평균 =================== OI변화 = OI - OI[1]; 누적OI = ACCUMN(OI변화, DayIndex()); OI_EMA1 = EMA(누적OI, OI_EMA단기); OI_EMA2 = EMA(누적OI, OI_EMA장기); // =================== 롱 진입 =================== If 진입중 = False AND 순체결강도 > 체결EMA AND CrossUp(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 익절률; 손절가 = 진입가 * 손절률; 진입중 = True; 숏진입 = False; 박스ID = Rectangle_New(Date, Time, 익절가, Date, Time, 손절가); Rectangle_SetColor(박스ID, 박스색_롱); Rectangle_SetStyle(박스ID, 1); Rectangle_SetSize(박스ID, 2); Text_New(Date, Time, Close, "롱 진입 ▶"); End; // =================== 숏 진입 =================== If 진입중 = False AND 순체결강도 < 체결EMA AND CrossDown(OI_EMA1, OI_EMA2) Then Begin 진입가 = Close; 익절가 = 진입가 * 숏익절률; 손절가 = 진입가 * 숏손절률; 진입중 = True; 숏진입 = True; 박스ID = Rectangle_New(Date, Time, 익절가, Date, Time, 손절가); Rectangle_SetColor(박스ID, 박스색_숏); Rectangle_SetStyle(박스ID, 1); Rectangle_SetSize(박스ID, 2); Text_New(Date, Time, Close, "숏 진입 ▼"); End; // =================== 청산 조건 =================== If 진입중 Then Begin If 숏진입 = False Then // 롱 Begin If Close >= 익절가 Then Begin Text_New(Date, Time, Close, "롱 익절 &#9989;"); 진입중 = False; End Else If Close <= 손절가 Then Begin Text_New(Date, Time, Close, "롱 손절 &#10060;"); 진입중 = False; End; End Else // 숏 Begin If Close <= 익절가 Then Begin Text_New(Date, Time, Close, "숏 익절 &#9989;"); 진입중 = False; End Else If Close >= 손절가 Then Begin Text_New(Date, Time, Close, "숏 손절 &#10060;"); 진입중 = False; End; End; End; 4.// 기본 입력값 Input: 진입가(0), 손절비율(0.985), 익절비율(1.015), 박스색상(Green), 손절색상(Red); // 진입, 손절, 익절가 계산 Var: 익절가(0), 손절가(0), 손익비(0); 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 손익비 = Round((익절가 - 진입가) / (진입가 - 손절가), 2); // 박스 출력 (익절) Var: 익절박스(0); 익절박스 = Box_New(Date, Time, 진입가, Date+1, Time, 익절가); Box_SetColor(익절박스, 박스색상); Box_SetFill(익절박스, true); // 박스 출력 (손절) Var: 손절박스(0); 손절박스 = Box_New(Date, Time, 손절가, Date+1, Time, 진입가); Box_SetColor(손절박스, 손절색상); Box_SetFill(손절박스, true); // 텍스트 출력: 손익비 Var: tx(0); tx = Text_New(Date, Time, 손절가 - (진입가 - 손절가)/2, "손익비: " + NumToStr(손익비, 2)); Text_SetStyle(tx, 1, 0); Text_SetColor(tx, Black); Text_SetSize(tx, 10); 5.// === 사용자 입력 === Input: 진입가(0), 손절비율(1.015), 익절비율(0.985), 박스색상(Red), 손절색상(Green); // === 익절/손절가 계산 === Var: 익절가(0), 손절가(0), 손익비(0); 익절가 = 진입가 * 익절비율; 손절가 = 진입가 * 손절비율; 손익비 = Round((진입가 - 익절가) / (손절가 - 진입가), 2); // === 익절 박스 생성 === Var: 익절박스(0); 익절박스 = Box_New(Date, Time, 익절가, Date + 1, Time, 진입가); Box_SetColor(익절박스, 박스색상); Box_SetFill(익절박스, true); // === 손절 박스 생성 === Var: 손절박스(0); 손절박스 = Box_New(Date, Time, 진입가, Date + 1, Time, 손절가); Box_SetColor(손절박스, 손절색상); Box_SetFill(손절박스, true); // === 손익비 텍스트 출력 === Var: tx(0); tx = Text_New(Date, Time, 손절가 + (손절가 - 진입가)/2, "손익비: " + NumToStr(손익비, 2)); Text_SetStyle(tx, 1, 1); Text_SetColor(tx, Black); Text_SetSize(tx, 10); 수정부탁드립니다 감사합니다