예스스탁
예스스탁 답변
2020-03-09 17:44:17
안녕하세요
예스스탁입니다.
1
countif(c > bbup,20)==5은 20봉중 5개봉이라는 의미입니다. 조건만족횟수가 5회 이상이므로
countif(c > bbup,20)>=5로 지정하셔야 합니다.
2
이평 골드/데드의 횟수가 상단/하단 돌파 후 첫번째이면
아래와 같이 조건을 지정하셔야 합니다.
Input : Period(20), MultiD(2),P1(5),P2(20);
var : BBmd(0),BBup(0),BBdn(0),mav1(0),mav2(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if crossup(c,bbup) Then
var1 = 0;
if CrossDown(mav1,mav2) Then
{
var1 = var1+1;
if var1 == 1 and countif(c > bbup,20)>=5 Then
sell();
}
if CrossDown(c,bbdn) Then
var2 = 0;
if CrossUp(mav1,mav2) Then
{
var2 = var2+1;
if var2 == 1 and countif(c < bbdn,20)>=5 Then
buy();
}
즐거운 하루되세요
> 우니야 님이 쓴 글입니다.
> 제목 : 수식문의 드립니다.
> 종가가 최근 20봉중 5회이상 볼린저밴드 하단보다 작고 5일 이평선이 20일 이평선을 첫번째로 상향 돌파할때만 매수하고
종가가 최근 20봉중 5회이상 볼린저밴드 상단보다 크고 5일 이평선이 20일 이평선을 첫번째로 하향 돌파할때만 매도 하려고 합니다.
if countif(c > bbup,20)==5 이게 잘못된것 같은데.. 어떻게 바꿔야 할지 모르겠네요
수정 좀 부탁드립니다.
Input : Period(20), MultiD(2),P1(5),P2(20);
var : BBmd(0),BBup(0),BBdn(0),mav1(0),mav2(0);
BBmd = ma(C,Period);
BBup = BollBandUp(Period,MultiD);
BBdn = BollBandDown(Period,MultiD);
mav1 = ma(C,P1);
mav2 = ma(C,P2);
if crossup(c,bbup) Then
var1 = 0;
if countif(c > bbup,20)==5 and CrossDown(mav1,mav2) Then
{
var1 = var1+1;
if var1 == 1 Then
sell();
}
if CrossDown(c,bbdn) Then
var2 = 0;
if countif(c < bbdn,20)==5 and CrossUp(mav1,mav2) Then
{
var2 = var2+1;
if var2 == 1 Then
buy();
}