커뮤니티
문의드립니다.
2018-01-05 15:22:39
217
글번호 115484
정말 인베스트라 수록전략부터 별 전략 다 해본 것 같은데 답이 잘 안나오네요. ㅠ 그래도 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
첫봉이 볼린저밴드 상단이나 하단에 있으면 고가 저가 각각 셋업
이후 봉이 첫봉 고가를 n틱이상 상향 돌파하면 매수진입
봉이 첫봉 저가를 n틱이상 하향돌파하면 매도진입
30분까지의 변동폭이 n이상이면 볼린저밴드 상단(매수진입시) 혹은 하단(매도진입시)에서 청산
아니면 중앙선(이평선)에서 청산.
2. 기타
-'이평선 아래 있는 봉이 2개이면'
-'이평선을 하향돌파한 뒤 이평선 아래있는 봉이 2개이면'
-'당일시가 - 당일 고가를 n개봉이 n%이상 되돌리면'
-셋업 뒤 고가를 저장한 뒤 저장봉에서 n봉이 지난봉의 종가
비고
만약 첫봉 고가보다 n개봉 지난뒤의 봉이 고가를 돌파했을 때로 하려면 어떻게 해야 할까요? 이렇게 해봤더니 딱 세번째 봉이 첫봉고가보다 클때만 진입합니다.
input: n봉(1)
If dayindex == 0 then
var1 = H;
if dayindex == 0+n봉 then
var2 = C;
If var2 > var1 then
buy();
코딩 부탁드립니다.
3. 시스템
진입
-스토케스틱이 period2선 상향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 하면 매수진입
-스토케스틱이 Period2선 하향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 매도진입
당일청산
비고
-첫 진입이 매수이면 매도진입은 n개봉이 지난 후에 진입, 매도는 반대로
-스토케스틱이 과열권 혹은 침체권에 있으면 청산 혹은 리버스는 침체 과열에서 벗어나는 순간으로
-당일 3회 진입
4. 시스템
변동성이 이렇게 급격하게 오른 것이랑 완만하게 점점 오른 것을 구분해보려고 하는데요. 구분할 수 있는 방법이 있을까요? 아래 지표는 밴드폭-sig인데요. 일단 제가 생각한 방법입니다.
-밴드폭-sig선이 일정폭(변수) 오른 시점에
당일시가보다 현재가 높으면 매수진입
반대면 매도진입.
필터
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
청산
밴드폭 -sig값이 0이되거나 당일마지막봉되면 청산.
5. 시스템
전일종가+ n틱 위에 있거나
전일종가- n틱 아래에 있으면 고가 저가 셋업
고가보다 n틱이상 큰 봉이 2개일 때 매수진입
저가보다 n틱 이상 작은 봉이 2개일 때 매도진입
n틱이상 큰 되돌림이 발생하면 매수, 매도 청산
- 1. 116070_캡처1.PNG (0.04 MB)
- 2. 116070_캡처2.PNG (0.04 MB)
답변 5
예스스탁 예스스탁 답변
2018-01-08 10:51:59
안녕하세요
예스스탁입니다.
1.
Inputs: P(20),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
2
input: n봉(1);
If dayindex == 0 then
var1 = H;
if dayindex >= 0+n봉 then{
var2 = C;
If var2 > var1 then
buy();
}
3
내용판단이 되지 않습니다.
4내용판단이 되지 않습니다.
5
input : n1(5),n2(10);
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if var1 == 0 and C >= DayClose(1)+PriceScale*n1 Then
var1 = h;
if var2 == 0 and C <= DayClose(1)-PriceScale*n1 Then
var2 = l;
if bdate == bdate[1] and var1 > 0 and
C >= var1+PriceScale*n1 and
C[1] >= var1+PriceScale*n1 Then
buy();
if bdate == bdate[1] and var2 > 0 and
C <= var2-PriceScale*n1 and
C[1] <= var2-PriceScale*n1 Then
sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-n2);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+n2);
6
오후에 편한시간에 전화주시기 바랍니다.
02-3453-1060
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 정말 인베스트라 수록전략부터 별 전략 다 해본 것 같은데 답이 잘 안나오네요. ㅠ 그래도 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
첫봉이 볼린저밴드 상단이나 하단에 있으면 고가 저가 각각 셋업
이후 봉이 첫봉 고가를 n틱이상 상향 돌파하면 매수진입
봉이 첫봉 저가를 n틱이상 하향돌파하면 매도진입
30분까지의 변동폭이 n이상이면 볼린저밴드 상단(매수진입시) 혹은 하단(매도진입시)에서 청산
아니면 중앙선(이평선)에서 청산.
2. 기타
-'이평선 아래 있는 봉이 2개이면'
-'이평선을 하향돌파한 뒤 이평선 아래있는 봉이 2개이면'
-'당일시가 - 당일 고가를 n개봉이 n%이상 되돌리면'
-셋업 뒤 고가를 저장한 뒤 저장봉에서 n봉이 지난봉의 종가
비고
만약 첫봉 고가보다 n개봉 지난뒤의 봉이 고가를 돌파했을 때로 하려면 어떻게 해야 할까요? 이렇게 해봤더니 딱 세번째 봉이 첫봉고가보다 클때만 진입합니다.
input: n봉(1)
If dayindex == 0 then
var1 = H;
if dayindex == 0+n봉 then
var2 = C;
If var2 > var1 then
buy();
코딩 부탁드립니다.
3. 시스템
진입
-스토케스틱이 period2선 상향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 하면 매수진입
-스토케스틱이 Period2선 하향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 매도진입
당일청산
비고
-첫 진입이 매수이면 매도진입은 n개봉이 지난 후에 진입, 매도는 반대로
-스토케스틱이 과열권 혹은 침체권에 있으면 청산 혹은 리버스는 침체 과열에서 벗어나는 순간으로
-당일 3회 진입
4. 시스템
변동성이 이렇게 급격하게 오른 것이랑 완만하게 점점 오른 것을 구분해보려고 하는데요. 구분할 수 있는 방법이 있을까요? 아래 지표는 밴드폭-sig인데요. 일단 제가 생각한 방법입니다.
-밴드폭-sig선이 일정폭(변수) 오른 시점에
당일시가보다 현재가 높으면 매수진입
반대면 매도진입.
필터
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
청산
밴드폭 -sig값이 0이되거나 당일마지막봉되면 청산.
5. 시스템
전일종가+ n틱 위에 있거나
전일종가- n틱 아래에 있으면 고가 저가 셋업
고가보다 n틱이상 큰 봉이 2개일 때 매수진입
저가보다 n틱 이상 작은 봉이 2개일 때 매도진입
n틱이상 큰 되돌림이 발생하면 매수, 매도 청산
잡다백수
2018-01-08 12:28:31
코딩감사합니다.
1번 수식 재질문드립니다.
본래 만들고 싶었던 것은 위로 돌파하든 아래로 돌파하든 고가 저가 저장 후 그걸 돌파하면
이런 식이어서요. 이렇게 수정을 해봤습니다. 그런데 차트에 돌려보니 그림과 같이 신호가 나와야 할 곳에서 신호가 나지 않았습니다. 뭐가 문제일까요. 변수는 아래 코딩과 같이 해서 틱수가 너무 많아 신호가 나오지 않는 것은 아닌 것 같습니다.
Inputs: P(45),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if var1 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
SetStopEndofday();
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
Inputs: P(20),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
2
input: n봉(1);
If dayindex == 0 then
var1 = H;
if dayindex >= 0+n봉 then{
var2 = C;
If var2 > var1 then
buy();
}
3
내용판단이 되지 않습니다.
4내용판단이 되지 않습니다.
5
input : n1(5),n2(10);
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if var1 == 0 and C >= DayClose(1)+PriceScale*n1 Then
var1 = h;
if var2 == 0 and C <= DayClose(1)-PriceScale*n1 Then
var2 = l;
if bdate == bdate[1] and var1 > 0 and
C >= var1+PriceScale*n1 and
C[1] >= var1+PriceScale*n1 Then
buy();
if bdate == bdate[1] and var2 > 0 and
C <= var2-PriceScale*n1 and
C[1] <= var2-PriceScale*n1 Then
sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-n2);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+n2);
6
오후에 편한시간에 전화주시기 바랍니다.
02-3453-1060
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 정말 인베스트라 수록전략부터 별 전략 다 해본 것 같은데 답이 잘 안나오네요. ㅠ 그래도 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
첫봉이 볼린저밴드 상단이나 하단에 있으면 고가 저가 각각 셋업
이후 봉이 첫봉 고가를 n틱이상 상향 돌파하면 매수진입
봉이 첫봉 저가를 n틱이상 하향돌파하면 매도진입
30분까지의 변동폭이 n이상이면 볼린저밴드 상단(매수진입시) 혹은 하단(매도진입시)에서 청산
아니면 중앙선(이평선)에서 청산.
2. 기타
-'이평선 아래 있는 봉이 2개이면'
-'이평선을 하향돌파한 뒤 이평선 아래있는 봉이 2개이면'
-'당일시가 - 당일 고가를 n개봉이 n%이상 되돌리면'
-셋업 뒤 고가를 저장한 뒤 저장봉에서 n봉이 지난봉의 종가
비고
만약 첫봉 고가보다 n개봉 지난뒤의 봉이 고가를 돌파했을 때로 하려면 어떻게 해야 할까요? 이렇게 해봤더니 딱 세번째 봉이 첫봉고가보다 클때만 진입합니다.
input: n봉(1)
If dayindex == 0 then
var1 = H;
if dayindex == 0+n봉 then
var2 = C;
If var2 > var1 then
buy();
코딩 부탁드립니다.
3. 시스템
진입
-스토케스틱이 period2선 상향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 하면 매수진입
-스토케스틱이 Period2선 하향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 매도진입
당일청산
비고
-첫 진입이 매수이면 매도진입은 n개봉이 지난 후에 진입, 매도는 반대로
-스토케스틱이 과열권 혹은 침체권에 있으면 청산 혹은 리버스는 침체 과열에서 벗어나는 순간으로
-당일 3회 진입
4. 시스템
변동성이 이렇게 급격하게 오른 것이랑 완만하게 점점 오른 것을 구분해보려고 하는데요. 구분할 수 있는 방법이 있을까요? 아래 지표는 밴드폭-sig인데요. 일단 제가 생각한 방법입니다.
-밴드폭-sig선이 일정폭(변수) 오른 시점에
당일시가보다 현재가 높으면 매수진입
반대면 매도진입.
필터
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
청산
밴드폭 -sig값이 0이되거나 당일마지막봉되면 청산.
5. 시스템
전일종가+ n틱 위에 있거나
전일종가- n틱 아래에 있으면 고가 저가 셋업
고가보다 n틱이상 큰 봉이 2개일 때 매수진입
저가보다 n틱 이상 작은 봉이 2개일 때 매도진입
n틱이상 큰 되돌림이 발생하면 매수, 매도 청산
잡다백수
2018-01-08 14:05:56
답변감사합니다. 다음부턴 질문도 좀 꼼꼼히 하겠습니다. 시스템트레이딩 카페에 계신 분들 상당수가 왜 IT계열인 지 알듯합니다. 노력부족인 지 모르겠으나 진입장벽이 저에겐 생각보다 높네요.
3번 재질문입니다.
'스토케스틱 모멘텀 인덱스'라는 지표 관찰하고 올린 글이었는데 그걸 빼먹었나 봅니다.
input : Period1(13),Period2(25),Period3(2),Length1(26),Length2(50),Length3(2);
var : StMomentum1(0),StMomentum2(0);
StMomentum1 = SMI(Period1,Period2,Period3);
StMomentum2 = SMI(Length1,Length2,Length3);
plot1(StMomentum1);
plot2(StMomentum2);
PlotBaseLine1(40,"과열");
PlotBaseLine2(-40,"침체");
여기 보면 StMomentum2선이라는 게 있는데요. 1선이 이걸 상향 하향돌파할 때입니다.
'스토케스틱-Period2선' 이라고 표현한 건 상향돌파후 1선이 빨라서 두 값의 폭의 차를 이야기한 것이었습니다.
4번 재질문
전화드린대로 밴드폭과 밴드폭을 평활한 값을 비교해서 기본 진입입니다.
필터는 진입하기 전 5개봉전부터 진입시점까지 밴드폭 변화율이 n이상일 정도로 너무 크게 오른 경우(밴드가 몇봉만으로 너무 커진 경우) 진입을 방지하려는 셋업입니다.
-두번째는 밴드를 위로 돌파했지만 빠르게 반대 방향으로(매수면 매도방향) 가버리는 경우 셋업으로 진입을 막으려는 것이었습니다. 첫봉부터 돌파한 뒤 반대방향으로만 시장이 움직일 때를 대비한 것이었습니다.
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
Inputs: P(20),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
2
input: n봉(1);
If dayindex == 0 then
var1 = H;
if dayindex >= 0+n봉 then{
var2 = C;
If var2 > var1 then
buy();
}
3
내용판단이 되지 않습니다.
4내용판단이 되지 않습니다.
5
input : n1(5),n2(10);
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if var1 == 0 and C >= DayClose(1)+PriceScale*n1 Then
var1 = h;
if var2 == 0 and C <= DayClose(1)-PriceScale*n1 Then
var2 = l;
if bdate == bdate[1] and var1 > 0 and
C >= var1+PriceScale*n1 and
C[1] >= var1+PriceScale*n1 Then
buy();
if bdate == bdate[1] and var2 > 0 and
C <= var2-PriceScale*n1 and
C[1] <= var2-PriceScale*n1 Then
sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-n2);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+n2);
6
오후에 편한시간에 전화주시기 바랍니다.
02-3453-1060
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 정말 인베스트라 수록전략부터 별 전략 다 해본 것 같은데 답이 잘 안나오네요. ㅠ 그래도 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
첫봉이 볼린저밴드 상단이나 하단에 있으면 고가 저가 각각 셋업
이후 봉이 첫봉 고가를 n틱이상 상향 돌파하면 매수진입
봉이 첫봉 저가를 n틱이상 하향돌파하면 매도진입
30분까지의 변동폭이 n이상이면 볼린저밴드 상단(매수진입시) 혹은 하단(매도진입시)에서 청산
아니면 중앙선(이평선)에서 청산.
2. 기타
-'이평선 아래 있는 봉이 2개이면'
-'이평선을 하향돌파한 뒤 이평선 아래있는 봉이 2개이면'
-'당일시가 - 당일 고가를 n개봉이 n%이상 되돌리면'
-셋업 뒤 고가를 저장한 뒤 저장봉에서 n봉이 지난봉의 종가
비고
만약 첫봉 고가보다 n개봉 지난뒤의 봉이 고가를 돌파했을 때로 하려면 어떻게 해야 할까요? 이렇게 해봤더니 딱 세번째 봉이 첫봉고가보다 클때만 진입합니다.
input: n봉(1)
If dayindex == 0 then
var1 = H;
if dayindex == 0+n봉 then
var2 = C;
If var2 > var1 then
buy();
코딩 부탁드립니다.
3. 시스템
진입
-스토케스틱이 period2선 상향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 하면 매수진입
-스토케스틱이 Period2선 하향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 매도진입
당일청산
비고
-첫 진입이 매수이면 매도진입은 n개봉이 지난 후에 진입, 매도는 반대로
-스토케스틱이 과열권 혹은 침체권에 있으면 청산 혹은 리버스는 침체 과열에서 벗어나는 순간으로
-당일 3회 진입
4. 시스템
변동성이 이렇게 급격하게 오른 것이랑 완만하게 점점 오른 것을 구분해보려고 하는데요. 구분할 수 있는 방법이 있을까요? 아래 지표는 밴드폭-sig인데요. 일단 제가 생각한 방법입니다.
-밴드폭-sig선이 일정폭(변수) 오른 시점에
당일시가보다 현재가 높으면 매수진입
반대면 매도진입.
필터
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
청산
밴드폭 -sig값이 0이되거나 당일마지막봉되면 청산.
5. 시스템
전일종가+ n틱 위에 있거나
전일종가- n틱 아래에 있으면 고가 저가 셋업
고가보다 n틱이상 큰 봉이 2개일 때 매수진입
저가보다 n틱 이상 작은 봉이 2개일 때 매도진입
n틱이상 큰 되돌림이 발생하면 매수, 매도 청산
예스스탁 예스스탁 답변
2018-01-08 13:57:02
안녕하세요
예스스탁입니다.
1번수식은
첫봉에서
상단 위이면 고가를 저장하고 매수만 대응
하단 아래이면 저가 저장후 매도만 대응합니다.
상위 위이거나 아래이면 양방향 모두 대응하게 하고자 하시면 아래와 같이 수정하시면 됩니다,
Inputs: P(45),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then{
var1 = H;
var2 = L;
}
if C < BBdn Then{
var1 = H;
var2 = L;
}
}
if var1 > 0 and var2 > 0 Then{
if crossup(C,var1+PriceScale*n1) Then
buy();
if CrossDown(c,var2-PriceScale*n1) Then
sell();
}
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
SetStopEndofday();
새해 복 많이 받으세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다.
> 코딩감사합니다.
1번 수식 재질문드립니다.
본래 만들고 싶었던 것은 위로 돌파하든 아래로 돌파하든 고가 저가 저장 후 그걸 돌파하면
이런 식이어서요. 이렇게 수정을 해봤습니다. 그런데 차트에 돌려보니 그림과 같이 신호가 나와야 할 곳에서 신호가 나지 않았습니다. 뭐가 문제일까요. 변수는 아래 코딩과 같이 해서 틱수가 너무 많아 신호가 나오지 않는 것은 아닌 것 같습니다.
Inputs: P(45),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if var1 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
SetStopEndofday();
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
Inputs: P(20),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
2
input: n봉(1);
If dayindex == 0 then
var1 = H;
if dayindex >= 0+n봉 then{
var2 = C;
If var2 > var1 then
buy();
}
3
내용판단이 되지 않습니다.
4내용판단이 되지 않습니다.
5
input : n1(5),n2(10);
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if var1 == 0 and C >= DayClose(1)+PriceScale*n1 Then
var1 = h;
if var2 == 0 and C <= DayClose(1)-PriceScale*n1 Then
var2 = l;
if bdate == bdate[1] and var1 > 0 and
C >= var1+PriceScale*n1 and
C[1] >= var1+PriceScale*n1 Then
buy();
if bdate == bdate[1] and var2 > 0 and
C <= var2-PriceScale*n1 and
C[1] <= var2-PriceScale*n1 Then
sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-n2);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+n2);
6
오후에 편한시간에 전화주시기 바랍니다.
02-3453-1060
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 정말 인베스트라 수록전략부터 별 전략 다 해본 것 같은데 답이 잘 안나오네요. ㅠ 그래도 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
첫봉이 볼린저밴드 상단이나 하단에 있으면 고가 저가 각각 셋업
이후 봉이 첫봉 고가를 n틱이상 상향 돌파하면 매수진입
봉이 첫봉 저가를 n틱이상 하향돌파하면 매도진입
30분까지의 변동폭이 n이상이면 볼린저밴드 상단(매수진입시) 혹은 하단(매도진입시)에서 청산
아니면 중앙선(이평선)에서 청산.
2. 기타
-'이평선 아래 있는 봉이 2개이면'
-'이평선을 하향돌파한 뒤 이평선 아래있는 봉이 2개이면'
-'당일시가 - 당일 고가를 n개봉이 n%이상 되돌리면'
-셋업 뒤 고가를 저장한 뒤 저장봉에서 n봉이 지난봉의 종가
비고
만약 첫봉 고가보다 n개봉 지난뒤의 봉이 고가를 돌파했을 때로 하려면 어떻게 해야 할까요? 이렇게 해봤더니 딱 세번째 봉이 첫봉고가보다 클때만 진입합니다.
input: n봉(1)
If dayindex == 0 then
var1 = H;
if dayindex == 0+n봉 then
var2 = C;
If var2 > var1 then
buy();
코딩 부탁드립니다.
3. 시스템
진입
-스토케스틱이 period2선 상향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 하면 매수진입
-스토케스틱이 Period2선 하향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 매도진입
당일청산
비고
-첫 진입이 매수이면 매도진입은 n개봉이 지난 후에 진입, 매도는 반대로
-스토케스틱이 과열권 혹은 침체권에 있으면 청산 혹은 리버스는 침체 과열에서 벗어나는 순간으로
-당일 3회 진입
4. 시스템
변동성이 이렇게 급격하게 오른 것이랑 완만하게 점점 오른 것을 구분해보려고 하는데요. 구분할 수 있는 방법이 있을까요? 아래 지표는 밴드폭-sig인데요. 일단 제가 생각한 방법입니다.
-밴드폭-sig선이 일정폭(변수) 오른 시점에
당일시가보다 현재가 높으면 매수진입
반대면 매도진입.
필터
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
청산
밴드폭 -sig값이 0이되거나 당일마지막봉되면 청산.
5. 시스템
전일종가+ n틱 위에 있거나
전일종가- n틱 아래에 있으면 고가 저가 셋업
고가보다 n틱이상 큰 봉이 2개일 때 매수진입
저가보다 n틱 이상 작은 봉이 2개일 때 매도진입
n틱이상 큰 되돌림이 발생하면 매수, 매도 청산
예스스탁 예스스탁 답변
2018-01-08 14:13:34
안녕하세요
예스스탁입니다.
3
Stochastics Momentum Index 지표는
Period1(13),Period2(25),Period3(2)가
하나의 스토케스틱모멘텀인덱스를 그릴때 사용되는 기간값입니다.
Period1선, Period2선은 따로 존재하지 않습니다.
Period1(13),Period2(25),Period3(2)
Length1(26),Length2(50),Length3(2)
위와 같이 지정해 2개의 장단기 스토케스틱 모멘컴 인덱스를 계산합니다.
올려주신 내용은 단기-장기 크로스로 수식올려드립니다.
input : Period1(13),Period2(25),Period3(2);
input : Length1(26),Length2(50),Length3(2);
input : n(5);
var : StMomentum1(0),StMomentum2(0);
StMomentum1 = SMI(Period1,Period2,Period3);
StMomentum2 = SMI(Length1,Length2,Length3);
if crossup(StMomentum1,StMomentum2) Then{
if MarketPosition == 0 or (MarketPosition == -1 and BarsSinceEntry >= n) Then
buy();
}
if CrossDown(StMomentum1,StMomentum2) Then{
if MarketPosition == 0 or (MarketPosition == 1 and BarsSinceEntry >= n) Then
sell();
}
SetStopEndofday(152000);
4
4번 내용은 정확한 내용이 판단되지 않습니다.
죄송하집만 해당 내용은 좀더 정확한 내용으로 새글로 다시 올려주시기 바랍니다.
새해 복 많이 받으세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : Re : Re : 문의드립니다. 2번 3번 재질문
> 답변감사합니다. 다음부턴 질문도 좀 꼼꼼히 하겠습니다. 시스템트레이딩 카페에 계신 분들 상당수가 왜 IT계열인 지 알듯합니다. 노력부족인 지 모르겠으나 진입장벽이 저에겐 생각보다 높네요.
3번 재질문입니다.
'스토케스틱 모멘텀 인덱스'라는 지표 관찰하고 올린 글이었는데 그걸 빼먹었나 봅니다.
input : Period1(13),Period2(25),Period3(2),Length1(26),Length2(50),Length3(2);
var : StMomentum1(0),StMomentum2(0);
StMomentum1 = SMI(Period1,Period2,Period3);
StMomentum2 = SMI(Length1,Length2,Length3);
plot1(StMomentum1);
plot2(StMomentum2);
PlotBaseLine1(40,"과열");
PlotBaseLine2(-40,"침체");
여기 보면 StMomentum2선이라는 게 있는데요. 1선이 이걸 상향 하향돌파할 때입니다.
'스토케스틱-Period2선' 이라고 표현한 건 상향돌파후 1선이 빨라서 두 값의 폭의 차를 이야기한 것이었습니다.
4번 재질문
전화드린대로 밴드폭과 밴드폭을 평활한 값을 비교해서 기본 진입입니다.
필터는 진입하기 전 5개봉전부터 진입시점까지 밴드폭 변화율이 n이상일 정도로 너무 크게 오른 경우(밴드가 몇봉만으로 너무 커진 경우) 진입을 방지하려는 셋업입니다.
-두번째는 밴드를 위로 돌파했지만 빠르게 반대 방향으로(매수면 매도방향) 가버리는 경우 셋업으로 진입을 막으려는 것이었습니다. 첫봉부터 돌파한 뒤 반대방향으로만 시장이 움직일 때를 대비한 것이었습니다.
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 문의드립니다.
> 안녕하세요
예스스탁입니다.
1.
Inputs: P(20),Dv(2),n1(5),n2(3);
var : Bbup(0),BBdn(0),BBmd(0);
BBup = BollBandUp(P,dv);
BBdn = BollBandDown(P,dv);
BBmd = ma(C,P);
if bdate != bdate[1] Then{
var1 = 0;
var2 = 0;
Condition1 = false;
if C > BBup Then
var1 = H;
if C < BBdn Then
var2 = L;
}
if var1 > 0 and crossup(C,var1+PriceScale*n1) Then
buy();
if var2 > 0 and CrossDown(C,var2-PriceScale*n1) Then
sell();
if stime < 93000 and dayhigh-daylow > n2 Then
Condition1 = true;
if MarketPosition == 1 Then{
if Condition1 == true and CrossDown(c,bbup) Then
exitlong();
if CrossDown(c,bbmd) Then
exitlong();
}
if MarketPosition == -1 then{
if Condition1 == true and Crossup(c,bbdn) Then
ExitShort();
if CrossUp(c,bbmd) Then
ExitShort();
}
2
input: n봉(1);
If dayindex == 0 then
var1 = H;
if dayindex >= 0+n봉 then{
var2 = C;
If var2 > var1 then
buy();
}
3
내용판단이 되지 않습니다.
4내용판단이 되지 않습니다.
5
input : n1(5),n2(10);
if bdate != bdate[1] Then
{
var1 = 0;
var2 = 0;
}
if var1 == 0 and C >= DayClose(1)+PriceScale*n1 Then
var1 = h;
if var2 == 0 and C <= DayClose(1)-PriceScale*n1 Then
var2 = l;
if bdate == bdate[1] and var1 > 0 and
C >= var1+PriceScale*n1 and
C[1] >= var1+PriceScale*n1 Then
buy();
if bdate == bdate[1] and var2 > 0 and
C <= var2-PriceScale*n1 and
C[1] <= var2-PriceScale*n1 Then
sell();
if MarketPosition == 1 Then
ExitLong("bx",AtStop,highest(H,BarsSinceEntry)-n2);
if MarketPosition == -1 Then
ExitShort("sx",AtStop,Lowest(L,BarsSinceEntry)+n2);
6
오후에 편한시간에 전화주시기 바랍니다.
02-3453-1060
즐거운 하루되세요
> 잡다백수 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 정말 인베스트라 수록전략부터 별 전략 다 해본 것 같은데 답이 잘 안나오네요. ㅠ 그래도 도움주시는 덕분에 도전하고 있습니다. 매번 감사합니다.
1. 시스템
첫봉이 볼린저밴드 상단이나 하단에 있으면 고가 저가 각각 셋업
이후 봉이 첫봉 고가를 n틱이상 상향 돌파하면 매수진입
봉이 첫봉 저가를 n틱이상 하향돌파하면 매도진입
30분까지의 변동폭이 n이상이면 볼린저밴드 상단(매수진입시) 혹은 하단(매도진입시)에서 청산
아니면 중앙선(이평선)에서 청산.
2. 기타
-'이평선 아래 있는 봉이 2개이면'
-'이평선을 하향돌파한 뒤 이평선 아래있는 봉이 2개이면'
-'당일시가 - 당일 고가를 n개봉이 n%이상 되돌리면'
-셋업 뒤 고가를 저장한 뒤 저장봉에서 n봉이 지난봉의 종가
비고
만약 첫봉 고가보다 n개봉 지난뒤의 봉이 고가를 돌파했을 때로 하려면 어떻게 해야 할까요? 이렇게 해봤더니 딱 세번째 봉이 첫봉고가보다 클때만 진입합니다.
input: n봉(1)
If dayindex == 0 then
var1 = H;
if dayindex == 0+n봉 then
var2 = C;
If var2 > var1 then
buy();
코딩 부탁드립니다.
3. 시스템
진입
-스토케스틱이 period2선 상향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 하면 매수진입
-스토케스틱이 Period2선 하향돌파하거나 스토케스틱-Period2선 절대값이 n이상이면 매도진입
당일청산
비고
-첫 진입이 매수이면 매도진입은 n개봉이 지난 후에 진입, 매도는 반대로
-스토케스틱이 과열권 혹은 침체권에 있으면 청산 혹은 리버스는 침체 과열에서 벗어나는 순간으로
-당일 3회 진입
4. 시스템
변동성이 이렇게 급격하게 오른 것이랑 완만하게 점점 오른 것을 구분해보려고 하는데요. 구분할 수 있는 방법이 있을까요? 아래 지표는 밴드폭-sig인데요. 일단 제가 생각한 방법입니다.
-밴드폭-sig선이 일정폭(변수) 오른 시점에
당일시가보다 현재가 높으면 매수진입
반대면 매도진입.
필터
-진입시점 5봉전부터 진입시점까지의 밴드폭 변화율이 n이상이면 셋업 false, 진입안함.
-당일시가부터 진입시점전봉까지의 '당일고가-당일시가'를 n% 이상 되돌리면(매수라면) 셋업 false(급격한 반대방향 필터), 매도도 마찬가지.
청산
밴드폭 -sig값이 0이되거나 당일마지막봉되면 청산.
5. 시스템
전일종가+ n틱 위에 있거나
전일종가- n틱 아래에 있으면 고가 저가 셋업
고가보다 n틱이상 큰 봉이 2개일 때 매수진입
저가보다 n틱 이상 작은 봉이 2개일 때 매도진입
n틱이상 큰 되돌림이 발생하면 매수, 매도 청산