커뮤니티

수식 문의드립니다.

프로필 이미지
필명이요
2021-11-30 11:53:39
728
글번호 154039
답변완료
수고하십니다. 저번 수식에 수정을 조금 하고 싶습니다. 매수조건은 볼린저밴드 하단에 있을때, rsi지표가 30이하, 주가이동평균선이 5일선이 120일 이하일때, macd선이 macd시그널선 아래에 있을때 분할매수하고 매도조건은 볼린저밴드 상단에 있을때, rsi지표가 70이상, 주가이동평균선이 5일선이 120일 이상일때, macd선이 macd시그널선 위에 있을때 분할매도하는 input : BBPeriod(20),dv(5),RSIPeriod(10),maPeriod1(5),maPeriod2(20),short(12),long(26),sig(9); input : 매수금액(100000),매도금액(100000); var : BBup(0),BBdn(0),RSIV(0),mav1(0),mav2(0),macdv(0),macds(0);; BBup = BollBandUp(BBPeriod,dv); BBdn = BollBandDown(BBPeriod,dv); RSIV = RSI(RSIPeriod); mav1 = ma(C,maPeriod1); mav2 = ma(C,maPeriod2); macdv = macd(short,long); macds = Ema(macdv,sig); if C < bbdn and RSIV <= 30 and mav1 < mav2 and macdv < macds Then Buy("b",OnClose,DEF,Floor(매수금액/C)); if MarketPosition == 1 and C > AvgEntryPrice and C > bbup and RSIV >= 70 and mav1 > mav2 and macdv > macds Then ExitLong("bx",OnClose,DEF,"",Floor(매도금액/C),2); 이렇게 작성해주셨는데 1시간봉으로 볼때 볼린저밴드랑 주가이평선은 일봉기준으로 하고 rsi, macd는 1시간봉기준으로요. 그리고 당일 거래 횟수를 제한하고 싶은데 하루 3번만 거래하는식이 가능할까요? 감사합니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-11-30 16:01:31

안녕하세요 예스스탁입니다. input : BBPeriod(20),dv(5),RSIPeriod(10),maPeriod1(5),maPeriod2(20),short(12),long(26),sig(9); input : 매수금액(100000),매도금액(100000),진입횟수(4); var : RSIV(0),macdv(0),macds(0); var : cnt(0),sum(0),mav(0),SumSqrt(0),Stdv(0),BBup(0),BBdn(0); var : sum1(0),sum2(0),mav1(0),mav2(0),entry(0); If DayClose(BBPeriod-1) > 0 Then { #일봉 이동평균 계산 sum = 0; for cnt = 0 to BBPeriod-1 { sum = sum + DayClose(cnt); } mav = sum/BBPeriod; SumSqrt = 0; For cnt = 0 To BBPeriod - 1 { SumSqrt = SumSqrt + (DayClose(cnt) - mav)^2; } Stdv = SquareRoot(SumSqrt / BBPeriod); BBup = mav + (Dv * Stdv); BBdn = mav - (Dv * Stdv); } If DayClose(BBPeriod-1) > 0 Then { sum1 = 0; sum2 = 0; for cnt = 0 to max(maPeriod1,maPeriod2) { if cnt < maPeriod2 Then sum1 = sum1 + DayClose(cnt); if cnt < maPeriod2 Then sum2 = sum2 + DayClose(cnt); } mav1 = sum1/maPeriod1; mav2 = sum2/maPeriod2; } RSIV = RSI(RSIPeriod); macdv = macd(short,long); macds = Ema(macdv,sig); if Bdate != Bdate[1] Then entry = 0; if CurrentContracts > CurrentContracts[1] Then entry = entry+1; if BBdn > 0 and C < bbdn and RSIV <= 30 and mav1 > 0 and mav2 > 0 and mav1 < mav2 and macdv < macds and entry < 진입횟수 Then Buy("b",OnClose,DEF,Floor(매수금액/C)); if MarketPosition == 1 and C > AvgEntryPrice and BBup > 0 and C > bbup and RSIV >= 70 and mav1 > 0 and mav2 > 0 and mav1 > mav2 and macdv > macds Then ExitLong("bx",OnClose,DEF,"",Floor(매도금액/C),2); 즐거운 하루되세요 > 필명이요 님이 쓴 글입니다. > 제목 : 수식 문의드립니다. > 수고하십니다. 저번 수식에 수정을 조금 하고 싶습니다. 매수조건은 볼린저밴드 하단에 있을때, rsi지표가 30이하, 주가이동평균선이 5일선이 120일 이하일때, macd선이 macd시그널선 아래에 있을때 분할매수하고 매도조건은 볼린저밴드 상단에 있을때, rsi지표가 70이상, 주가이동평균선이 5일선이 120일 이상일때, macd선이 macd시그널선 위에 있을때 분할매도하는 input : BBPeriod(20),dv(5),RSIPeriod(10),maPeriod1(5),maPeriod2(20),short(12),long(26),sig(9); input : 매수금액(100000),매도금액(100000); var : BBup(0),BBdn(0),RSIV(0),mav1(0),mav2(0),macdv(0),macds(0);; BBup = BollBandUp(BBPeriod,dv); BBdn = BollBandDown(BBPeriod,dv); RSIV = RSI(RSIPeriod); mav1 = ma(C,maPeriod1); mav2 = ma(C,maPeriod2); macdv = macd(short,long); macds = Ema(macdv,sig); if C < bbdn and RSIV <= 30 and mav1 < mav2 and macdv < macds Then Buy("b",OnClose,DEF,Floor(매수금액/C)); if MarketPosition == 1 and C > AvgEntryPrice and C > bbup and RSIV >= 70 and mav1 > mav2 and macdv > macds Then ExitLong("bx",OnClose,DEF,"",Floor(매도금액/C),2); 이렇게 작성해주셨는데 1시간봉으로 볼때 볼린저밴드랑 주가이평선은 일봉기준으로 하고 rsi, macd는 1시간봉기준으로요. 그리고 당일 거래 횟수를 제한하고 싶은데 하루 3번만 거래하는식이 가능할까요? 감사합니다.