커뮤니티
문의드립니다.
2017-12-26 15:58:07
195
글번호 115252
덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
- n개봉 표준편차를 늘린 방향같은 것을 코딩으로 짤 수 있을까요?
가령 가격이 올라서 표준편차를 넓히는 방향(이 경우라면 매수방향)을 코딩으로 짤 수 있을까요?
2. 기타
그리고 dayindex값의 비교가 참 설명을 들어도 어렵습니다.
c[dayindex] - l[dayindex]
만약 5번째 봉과 첫째봉을 비교하려면 이런 식으로 if문과 변수 설정을 다 한 다음에 변수끼리 비교를 해줘야 하는 건가요?
if dayindex() == 0 then
var1 = C
var2 = O
var3 = L
var4 = H - L
if dayindex() == 4 then
var5 = C
var1 > var5
3. 시스템
buysetup 조건
-종가가 볼린저밴드 표준편차2(외부변수) 상단선 상향돌파
-buysetup조건 만족시 buybase에 해당봉 고가 저장
매수
-진입봉에서 n개(외부변수)봉 지난 봉이 buybase보다 크면 진입(atstop)
-or buybase보다 해당봉 종가가 n틱 이상 크면 앞선 조건 만족하지 않더라도 즉시 진입(atstop)
매수청산
-기준 1 볼린저밴드 안에서 만들어진 고가가 n개봉전 고가보다 더 높거나
-기준 2 표준편차 1(외부변수)의 볼린저밴드 상단선을 하향돌파하면
매도는 반대
4. 시스템
5분봉차트
당일 종가에 매수진입, 매도진입 수량 1씩 동시
개장후 10분뒤 가격이 볼린저밴드 상단 위이면 매도진입 청산
볼린저밴드 하단 아래이면 매수진입 청산
볼린저밴드폭이 sig널선 하향돌파하면 나머지(매수진입 남아 있으면 매수진입 청산, 매도진입 남아 있으면 매도진입청산)
5. 기타
당일봉 표준편차 폭을 만들어 보려고 이렇게 짜봤는데요. 결과를 봤더니 당일을 한 것이나 이전 것까지 포함한 것이나 별 차이가 없는 것 같습니다. 당일봉의 표준편차폭만 지표로 나타낼 수 있을까요? 아니면 당일 변수만 해도 원래 저렇게 나오는 것인가요?
input : P(10);
if bdate != bdate[1] then
var4 = 0;
var1 = STD(C,P);
var2 = C+ var1*2;
var3 = C- Var1*2;
var4 = var2-var3;
plot1(var4);
답변 3
예스스탁 예스스탁 답변
2017-12-27 14:49:13
안녕하세요
예스스탁입니다.
1.
문의하신 내용은 작성방법을 모르겠습니다.
2
예 작성하신 내용과 같이
if 조건문으로 봉번호를 지정해 값 저장하셔야 합니다
[]만으로는 당일 n번쨰봉의 값을 가져오게 지정할수가 없습니다.
3
Input : Period(20), dv1(1),dv2(2);
input : n1(5),n2(10),n3(5);
var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0);
var : buybase(0),buysetup(false),Buyindex(0);
var : Sellbase(0),Sellsetup(false),Sellindex(0);
BBup1 = BollBandUp(Period,dv1);
BBdn1 = BollBandDown(Period,dv1);
BBup2 = BollBandUp(Period,Dv2);
BBdn2 = BollBandDown(Period,Dv2);
if crossup(c,BBup2) Then{
buysetup = true;
buybase = H;
Buyindex = index;
}
if C < BBup2 Then
buySetup = false;
if buysetup == true and MarketPosition == 0 then{
if index >= Buyindex+n1 Then{
buy("b1",AtStop,buybase);
}
buy("b2",AtStop,buybase+PriceScale*n2);
}
if MarketPosition == 1 then{
if H < BBup2 and H > BBdn2 and H > H[n3] Then
exitlong();
if C < bbup1 Then
exitlong();
}
if CrossDown(c,BBdn2) Then{
Sellsetup = true;
Sellbase = L;
Sellindex = index;
}
if C > BBdn2 Then
SellSetup = false;
if Sellsetup == true and MarketPosition == 0 then{
if index >= Sellindex+n1 Then{
sell("s1",AtStop,Sellbase);
}
Sell("s2",AtStop,buybase-PriceScale*n2);
}
if MarketPosition == -1 then{
if L > BBdn2 and L < BBup2 and L < L[n3] Then
ExitShort();
if C > bbdn1 Then
ExitShort();
}
4
문의하신 내용 가능하지 않습니다.
양포지션에 대한 동시진입이 가능하지 않습니다
5
var : avgv(0),SumSqrt(0),Counter(0),stdv(0);
If bdate != bdate[1] then{
var1 = 0;
var2 = 0;
}
var1 = var1+C;
var2 = var2+1;
avgv = var1/var2;
SumSqrt = 0;
For Counter = 0 To var1-1 Begin
SumSqrt = SumSqrt + (c[Counter] - Avgv) * (c[Counter] - Avgv);
End;
Stdv = SquareRoot(SumSqrt / var2);
plot1(stdv);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
- n개봉 표준편차를 늘린 방향같은 것을 코딩으로 짤 수 있을까요?
가령 가격이 올라서 표준편차를 넓히는 방향(이 경우라면 매수방향)을 코딩으로 짤 수 있을까요?
2. 기타
그리고 dayindex값의 비교가 참 설명을 들어도 어렵습니다.
c[dayindex] - l[dayindex]
만약 5번째 봉과 첫째봉을 비교하려면 이런 식으로 if문과 변수 설정을 다 한 다음에 변수끼리 비교를 해줘야 하는 건가요?
if dayindex() == 0 then
var1 = C
var2 = O
var3 = L
var4 = H - L
if dayindex() == 4 then
var5 = C
var1 > var5
3. 시스템
buysetup 조건
-종가가 볼린저밴드 표준편차2(외부변수) 상단선 상향돌파
-buysetup조건 만족시 buybase에 해당봉 고가 저장
매수
-진입봉에서 n개(외부변수)봉 지난 봉이 buybase보다 크면 진입(atstop)
-or buybase보다 해당봉 종가가 n틱 이상 크면 앞선 조건 만족하지 않더라도 즉시 진입(atstop)
매수청산
-기준 1 볼린저밴드 안에서 만들어진 고가가 n개봉전 고가보다 더 높거나
-기준 2 표준편차 1(외부변수)의 볼린저밴드 상단선을 하향돌파하면
매도는 반대
4. 시스템
5분봉차트
당일 종가에 매수진입, 매도진입 수량 1씩 동시
개장후 10분뒤 가격이 볼린저밴드 상단 위이면 매도진입 청산
볼린저밴드 하단 아래이면 매수진입 청산
볼린저밴드폭이 sig널선 하향돌파하면 나머지(매수진입 남아 있으면 매수진입 청산, 매도진입 남아 있으면 매도진입청산)
5. 기타
당일봉 표준편차 폭을 만들어 보려고 이렇게 짜봤는데요. 결과를 봤더니 당일을 한 것이나 이전 것까지 포함한 것이나 별 차이가 없는 것 같습니다. 당일봉의 표준편차폭만 지표로 나타낼 수 있을까요? 아니면 당일 변수만 해도 원래 저렇게 나오는 것인가요?
input : P(10);
if bdate != bdate[1] then
var4 = 0;
var1 = STD(C,P);
var2 = C+ var1*2;
var3 = C- Var1*2;
var4 = var2-var3;
plot1(var4);
잡다백수
2017-12-27 15:28:58
코딩감사합니다. 5번 재질문입니다.
코드를 실행해보니 저렇게 장초반만 넓게 나온 뒤 계속 줄어드는데요. 가격이 장후반 더 커져서 편차가 더 커졌는데도 지표는 똑같이 나옵니다. 가격 변화가 커지면 편차가 커지는 걸로 알고 있었는데 제가 착각을 하는 건지요.
그리고 당일봉의 표준편차 폭을 만들려면 어떻게 해야 하나요? 뭔가 STD함수 쓴 거랑 달라서 다시 질문드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
문의하신 내용은 작성방법을 모르겠습니다.
2
예 작성하신 내용과 같이
if 조건문으로 봉번호를 지정해 값 저장하셔야 합니다
[]만으로는 당일 n번쨰봉의 값을 가져오게 지정할수가 없습니다.
3
Input : Period(20), dv1(1),dv2(2);
input : n1(5),n2(10),n3(5);
var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0);
var : buybase(0),buysetup(false),Buyindex(0);
var : Sellbase(0),Sellsetup(false),Sellindex(0);
BBup1 = BollBandUp(Period,dv1);
BBdn1 = BollBandDown(Period,dv1);
BBup2 = BollBandUp(Period,Dv2);
BBdn2 = BollBandDown(Period,Dv2);
if crossup(c,BBup2) Then{
buysetup = true;
buybase = H;
Buyindex = index;
}
if C < BBup2 Then
buySetup = false;
if buysetup == true and MarketPosition == 0 then{
if index >= Buyindex+n1 Then{
buy("b1",AtStop,buybase);
}
buy("b2",AtStop,buybase+PriceScale*n2);
}
if MarketPosition == 1 then{
if H < BBup2 and H > BBdn2 and H > H[n3] Then
exitlong();
if C < bbup1 Then
exitlong();
}
if CrossDown(c,BBdn2) Then{
Sellsetup = true;
Sellbase = L;
Sellindex = index;
}
if C > BBdn2 Then
SellSetup = false;
if Sellsetup == true and MarketPosition == 0 then{
if index >= Sellindex+n1 Then{
sell("s1",AtStop,Sellbase);
}
Sell("s2",AtStop,buybase-PriceScale*n2);
}
if MarketPosition == -1 then{
if L > BBdn2 and L < BBup2 and L < L[n3] Then
ExitShort();
if C > bbdn1 Then
ExitShort();
}
4
문의하신 내용 가능하지 않습니다.
양포지션에 대한 동시진입이 가능하지 않습니다
5
var : avgv(0),SumSqrt(0),Counter(0),stdv(0);
If bdate != bdate[1] then{
var1 = 0;
var2 = 0;
}
var1 = var1+C;
var2 = var2+1;
avgv = var1/var2;
SumSqrt = 0;
For Counter = 0 To var1-1 Begin
SumSqrt = SumSqrt + (c[Counter] - Avgv) * (c[Counter] - Avgv);
End;
Stdv = SquareRoot(SumSqrt / var2);
plot1(stdv);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
- n개봉 표준편차를 늘린 방향같은 것을 코딩으로 짤 수 있을까요?
가령 가격이 올라서 표준편차를 넓히는 방향(이 경우라면 매수방향)을 코딩으로 짤 수 있을까요?
2. 기타
그리고 dayindex값의 비교가 참 설명을 들어도 어렵습니다.
c[dayindex] - l[dayindex]
만약 5번째 봉과 첫째봉을 비교하려면 이런 식으로 if문과 변수 설정을 다 한 다음에 변수끼리 비교를 해줘야 하는 건가요?
if dayindex() == 0 then
var1 = C
var2 = O
var3 = L
var4 = H - L
if dayindex() == 4 then
var5 = C
var1 > var5
3. 시스템
buysetup 조건
-종가가 볼린저밴드 표준편차2(외부변수) 상단선 상향돌파
-buysetup조건 만족시 buybase에 해당봉 고가 저장
매수
-진입봉에서 n개(외부변수)봉 지난 봉이 buybase보다 크면 진입(atstop)
-or buybase보다 해당봉 종가가 n틱 이상 크면 앞선 조건 만족하지 않더라도 즉시 진입(atstop)
매수청산
-기준 1 볼린저밴드 안에서 만들어진 고가가 n개봉전 고가보다 더 높거나
-기준 2 표준편차 1(외부변수)의 볼린저밴드 상단선을 하향돌파하면
매도는 반대
4. 시스템
5분봉차트
당일 종가에 매수진입, 매도진입 수량 1씩 동시
개장후 10분뒤 가격이 볼린저밴드 상단 위이면 매도진입 청산
볼린저밴드 하단 아래이면 매수진입 청산
볼린저밴드폭이 sig널선 하향돌파하면 나머지(매수진입 남아 있으면 매수진입 청산, 매도진입 남아 있으면 매도진입청산)
5. 기타
당일봉 표준편차 폭을 만들어 보려고 이렇게 짜봤는데요. 결과를 봤더니 당일을 한 것이나 이전 것까지 포함한 것이나 별 차이가 없는 것 같습니다. 당일봉의 표준편차폭만 지표로 나타낼 수 있을까요? 아니면 당일 변수만 해도 원래 저렇게 나오는 것인가요?
input : P(10);
if bdate != bdate[1] then
var4 = 0;
var1 = STD(C,P);
var2 = C+ var1*2;
var3 = C- Var1*2;
var4 = var2-var3;
plot1(var4);
예스스탁 예스스탁 답변
2017-12-28 13:28:25
안녕하세요
예스스탁입니다.
5번수식의 for문을 잘못지정했습니다.
수정한 식입니다.
var : avgv(0),SumSqrt(0),Counter(0),stdv(0);
If bdate != bdate[1] then{
var1 = 0;
var2 = 0;
}
var1 = var1+C;
var2 = var2+1;
avgv = var1/var2;
SumSqrt = 0;
For Counter = 0 To var2-1 Begin
SumSqrt = SumSqrt + (c[Counter] - Avgv) * (c[Counter] - Avgv);
End;
Stdv = SquareRoot(SumSqrt / var2);
plot1(stdv);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다.
> 코딩감사합니다. 5번 재질문입니다.
코드를 실행해보니 저렇게 장초반만 넓게 나온 뒤 계속 줄어드는데요. 가격이 장후반 더 커져서 편차가 더 커졌는데도 지표는 똑같이 나옵니다. 가격 변화가 커지면 편차가 커지는 걸로 알고 있었는데 제가 착각을 하는 건지요.
그리고 당일봉의 표준편차 폭을 만들려면 어떻게 해야 하나요? 뭔가 STD함수 쓴 거랑 달라서 다시 질문드립니다.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
문의하신 내용은 작성방법을 모르겠습니다.
2
예 작성하신 내용과 같이
if 조건문으로 봉번호를 지정해 값 저장하셔야 합니다
[]만으로는 당일 n번쨰봉의 값을 가져오게 지정할수가 없습니다.
3
Input : Period(20), dv1(1),dv2(2);
input : n1(5),n2(10),n3(5);
var : BBup1(0),BBdn1(0),BBup2(0),BBdn2(0);
var : buybase(0),buysetup(false),Buyindex(0);
var : Sellbase(0),Sellsetup(false),Sellindex(0);
BBup1 = BollBandUp(Period,dv1);
BBdn1 = BollBandDown(Period,dv1);
BBup2 = BollBandUp(Period,Dv2);
BBdn2 = BollBandDown(Period,Dv2);
if crossup(c,BBup2) Then{
buysetup = true;
buybase = H;
Buyindex = index;
}
if C < BBup2 Then
buySetup = false;
if buysetup == true and MarketPosition == 0 then{
if index >= Buyindex+n1 Then{
buy("b1",AtStop,buybase);
}
buy("b2",AtStop,buybase+PriceScale*n2);
}
if MarketPosition == 1 then{
if H < BBup2 and H > BBdn2 and H > H[n3] Then
exitlong();
if C < bbup1 Then
exitlong();
}
if CrossDown(c,BBdn2) Then{
Sellsetup = true;
Sellbase = L;
Sellindex = index;
}
if C > BBdn2 Then
SellSetup = false;
if Sellsetup == true and MarketPosition == 0 then{
if index >= Sellindex+n1 Then{
sell("s1",AtStop,Sellbase);
}
Sell("s2",AtStop,buybase-PriceScale*n2);
}
if MarketPosition == -1 then{
if L > BBdn2 and L < BBup2 and L < L[n3] Then
ExitShort();
if C > bbdn1 Then
ExitShort();
}
4
문의하신 내용 가능하지 않습니다.
양포지션에 대한 동시진입이 가능하지 않습니다
5
var : avgv(0),SumSqrt(0),Counter(0),stdv(0);
If bdate != bdate[1] then{
var1 = 0;
var2 = 0;
}
var1 = var1+C;
var2 = var2+1;
avgv = var1/var2;
SumSqrt = 0;
For Counter = 0 To var1-1 Begin
SumSqrt = SumSqrt + (c[Counter] - Avgv) * (c[Counter] - Avgv);
End;
Stdv = SquareRoot(SumSqrt / var2);
plot1(stdv);
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 기타
- n개봉 표준편차를 늘린 방향같은 것을 코딩으로 짤 수 있을까요?
가령 가격이 올라서 표준편차를 넓히는 방향(이 경우라면 매수방향)을 코딩으로 짤 수 있을까요?
2. 기타
그리고 dayindex값의 비교가 참 설명을 들어도 어렵습니다.
c[dayindex] - l[dayindex]
만약 5번째 봉과 첫째봉을 비교하려면 이런 식으로 if문과 변수 설정을 다 한 다음에 변수끼리 비교를 해줘야 하는 건가요?
if dayindex() == 0 then
var1 = C
var2 = O
var3 = L
var4 = H - L
if dayindex() == 4 then
var5 = C
var1 > var5
3. 시스템
buysetup 조건
-종가가 볼린저밴드 표준편차2(외부변수) 상단선 상향돌파
-buysetup조건 만족시 buybase에 해당봉 고가 저장
매수
-진입봉에서 n개(외부변수)봉 지난 봉이 buybase보다 크면 진입(atstop)
-or buybase보다 해당봉 종가가 n틱 이상 크면 앞선 조건 만족하지 않더라도 즉시 진입(atstop)
매수청산
-기준 1 볼린저밴드 안에서 만들어진 고가가 n개봉전 고가보다 더 높거나
-기준 2 표준편차 1(외부변수)의 볼린저밴드 상단선을 하향돌파하면
매도는 반대
4. 시스템
5분봉차트
당일 종가에 매수진입, 매도진입 수량 1씩 동시
개장후 10분뒤 가격이 볼린저밴드 상단 위이면 매도진입 청산
볼린저밴드 하단 아래이면 매수진입 청산
볼린저밴드폭이 sig널선 하향돌파하면 나머지(매수진입 남아 있으면 매수진입 청산, 매도진입 남아 있으면 매도진입청산)
5. 기타
당일봉 표준편차 폭을 만들어 보려고 이렇게 짜봤는데요. 결과를 봤더니 당일을 한 것이나 이전 것까지 포함한 것이나 별 차이가 없는 것 같습니다. 당일봉의 표준편차폭만 지표로 나타낼 수 있을까요? 아니면 당일 변수만 해도 원래 저렇게 나오는 것인가요?
input : P(10);
if bdate != bdate[1] then
var4 = 0;
var1 = STD(C,P);
var2 = C+ var1*2;
var3 = C- Var1*2;
var4 = var2-var3;
plot1(var4);