예스스탁
예스스탁 답변
2016-04-15 10:05:23
안녕하세요
예스스탁입니다.
# 분봉에서 일봉 볼린져밴드 계산 시작
input : dayPeriod(20),dayDv(2);
var : daysum(0),daycnt(0),dayma(0),daySumSqrt(0),dayStdv(0);
var : dayBBup(0),dayBBdn(0),dayCounter(0);
input : Ntime(30),P(20),Dv(2);
var : cnt(0),count(0),sum(0),MiBBup(0),MiBBdn(0);
var : Avgv(0),SumSqrt(0),Counter(0),Stdv(0),TF(0);
var : TT(0),T1(0),entry(0);
Array : CC[120](0);
TT = TotalTrades;
if Bdate != Bdate[1] Then
T1 = TT;
if MarketPosition == 0 Then
entry = TT-T1;
Else
entry = TT-T1+1;
If DayClose(dayPeriod-1) != 0 Then {
#일봉 이동평균 계산
daysum = 0;
for daycnt = 0 to dayPeriod-1{
daysum = daysum + DayClose(daycnt);
}
dayma = daysum/dayPeriod;
#표준편차 계산
daySumSqrt = 0;
For dayCounter = 0 To dayPeriod - 1 {
daySumSqrt = daySumSqrt + (DayClose(dayCounter) - dayma)^2;
}
dayStdv = SquareRoot(daySumSqrt / dayPeriod);
dayBBup = dayma + (dayDv * dayStdv);
dayBBdn = dayma - (dayDv * dayStdv);
}
TF = TimeToMinutes(stime)%Ntime;
if Bdate != Bdate[1] or (TF < TF[1] and Bdate == Bdate[1]) Then{
for cnt = 1 to P-1{
CC[cnt] = CC[cnt-1][1];
}
}
CC[0] = C;
If CC[P-1] > 0 Then{
sum = 0;
for count = 0 to P-1{
sum = sum+CC[count];
}
Avgv = sum/P;
SumSqrt = 0;
For Counter = 0 To P - 1 {
SumSqrt = SumSqrt + (CC[Counter] - Avgv) * (CC[Counter] - Avgv);
}
Stdv = SquareRoot(SumSqrt / P);
MiBBup = Avgv + (Dv * Stdv);
MiBBdn = Avgv - (Dv * Stdv);
}
if entry < 2 and
C > DAyBBup and
C > MiBBup and
V > V[1] and
crossup(C,highest(H,72)[1]) Then
buy();
if entry < 2 and
C < DAyBBdn and
C < MiBBdn and
V > V[1] and
CrossDown(C,Lowest(L,72)[1]) Then
sell();
SetStopLoss(PriceScale*3,PointStop);
SetStopProfittarget(PriceScale*3,PointStop);
즐거운 하루되세요
> 돌핀 님이 쓴 글입니다.
> 제목 : 초보입니다..
> 초보입니다
1.일봉이 볼린져 밴드 상단에 머물때
2.30분봉이 볼린져 밴드 상단에 머물때
3.5분봉 72봉중에 (고점)를 돌파할때 진입
4.5분봉중 거래량은 신고가
4.익절 3틱 손절 3틱
하루에 2번만 진입하는 조건입니다
매도할때는 이것을 반대로하는 식을 부탁드립니다