예스스탁
예스스탁 답변
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번만 거래하는식이 가능할까요?
감사합니다.