커뮤니티
문의드립니다.
2012-09-18 10:42:39
472
글번호 54804
- 시스템식을 적용한 챠트를 첨부하였습니다.
<시스템식>
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0);
StoK = data2(StochasticsK(Period,Period1));
StoD = data2(StochasticsD(Period,Period1,Period2));
if StoK < 50 and crossup(StoK,StoD) Then
buy();
if StoK >= 75 and CrossDown(StoK,StoD) Then
ExitLong();
질문1:주종목 1분 기준이 아닌 (data2 : 선물10분봉을 불러 내었을 때) 10분봉 스토캐스틱 기준 매매식이 맞는지요?
그리고 우리가 일반적으로 스토캐스틱이 75 이상이라는 것이 스토캐스틱k 값이 이상이라는 의미라 생각하고 식을 위와 같이 작성했는데 제가 알고 있는 것이 맞는지 궁금합니다.
질문 2: 예스스탁에서 알려주신 1분봉 주종목을 참조하여 10분봉 스토캐스틱을 그리는 식인데 여기에서 기간만 20, 12,12 를 5,3,3,으로 수정하였는데 2군데 수정하는 것이 맞는지요. 위 1번 수식으로 만든 10분선물을 참조데이터로 만든 스토캐스틱 챠트와 같지 않은 것 처럼 보여집니다.(적어도 20이하 또는 80이상 부분은 비슷해야 하는데 차이가 있습니다) 제가 1번식을 잘못 작성하였는지 2번 식(아래)을 수정을 잘 못 한건지 궁금합니다. 챠트 첨부
input : Atime(10),StoPeriod(5), StoPeriod1(3), StoPeriod2(3); <-20,12,12 를 5,5,5 으로수정
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
Array : HH[20](0),LL[20](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (stime > stime[1] and var1 < var1[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 4{ <- 19에서 4로 수정
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
}
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
Ep1 = 2/(StoPeriod2+1);
if dayindex == 0 or (stime > stime[1] and var1 < var1[1]) Then{
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1); //Slow StochasticsD ==> ema(Slow StochasticsK, StoPeriod2)
plot1(StoK);
plot2(StoD);
PlotBaseLine1(25);
PlotBaseLine2(75);
질문 3 :1번식을 사용하지 않고 (10분봉을 데이터로 사용하지 않고) 2번식으로 (1분봉 주종목만 조회 한후) 처음 작성한 매매신호를 똑같이 나타내고 싶은데 수식 작성 좀 부탁드립니다.
질문 4 : 열 지표를 작성할 때 plot1, plot2, plot3,,,, 여러 지표를 사용하고 각각 지표명을 정하였는데 순서를 바꾸어도 되는지 즉 plot1 지표는 참조데이터 data2, data3 를 활용한 지표인데 지표를 불러올 때 plot2(data4, data5 참조데이터 활용한 지표) 다음에 불러와도 문제가 없는지요. 아니면 순서에 따라 plot 번호를 바꾸어 주어야 하는지요?
무엇 때문인지 모르지만 지표를 더블클릭하여 불러오면 "수식에서 참조할 첫 번째 종목데이터가 없습니다." 라는 메세지 창이 뜹니다. "확인"을 클릭 하면 지표는 그려지긴 합니다.
<사용하고 있는 지표식 예1>
var : value(0,data1);
value = (data2(c)+data3(c));
if dayindex >= 4 and stime < 150000 Then
Plot1(value-value[1],"연습1");
<사용하고 있는 지표식 예2>
var : value1(0,data1);
value1 = (Data6(c)+data7(c));
if stime >= 090500 and stime < 145000 Then
Plot2(value1-value1[1],"연습2");
즉 참조데이터를 4개 불러온 상태에서 지표를 불러올 때 지표2를 지표1 보다 먼저 불러오면 식에 들어가서 plot2를 -> plot1로 수정해야 하는지?
그리고 변수 설정에서 지표1에서 value 변수를 사용하였으니 제가 작성한 것처럼 지표2에서는 value 는 사용 할 수 없고 value1 형태로 다른 변수를 사용하여야 하는지 궁금합니다.
부탁드립니다.
- 1. 55175_챠트.jpg (0.38 MB)
답변 1
예스스탁 예스스탁 답변
2012-09-18 11:51:18
안녕하세요
예스스탁입니다.
1.
수식에서 참조데이터를 사용하는 것은 주종목 봉이 완성했을때
그때의 완성된 참조데이터의 값을 사용한다는 의미입니다.
참조데이터 완성시에 주종목에서 주문내는 것이 아닙니다.
기준은 항상 주종목입니다.
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0);
StoK = data2(StochasticsK(Period,Period1));
StoD = data2(StochasticsD(Period,Period1,Period2));
if StoK < 50 and crossup(StoK,StoD) Then
buy();
if StoK >= 75 and CrossDown(StoK,StoD) Then
ExitLong();
위식은 주종목 완성시에
참조데이터(10분) 완성봉을 기준으로 최근 완성봉이
k가 50이상이고 상향돌파가 발생했으면 매수
k가 50이하이고 하향이탈이 발생했으면 매수청산하는 식입니다.
2.
참조데이터가 항상 완성된 봉에서만 값을 사용하므로
현재 미완성인 봉값을 사용하지 않으므로
2번과 같이 수식을 1분봉에서 직접 계산해서 사용하기도 합니다.
값이 달라보이는 것은 2번과 같이 풀어서 작성한 식은
현재 종가로 값을 보여주지만 참조데이터를 사용한 것은
최근 완성봉의 값을 찍기 때문입니다.
3.
input : Atime(10),StoPeriod(5), StoPeriod1(3), StoPeriod2(3);
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
Array : HH[20](0),LL[20](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (stime > stime[1] and var1 < var1[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 4{
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
}
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
Ep1 = 2/(StoPeriod2+1);
if dayindex == 0 or (stime > stime[1] and var1 < var1[1]) Then{
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1); //Slow StochasticsD ==> ema(Slow StochasticsK, StoPeriod2)
if StoK < 50 and crossup(StoK,StoD) Then
buy();
if StoK >= 75 and CrossDown(StoK,StoD) Then
ExitLong();
4.
하나의 식안에 plot명령어의 사용은 자유롭게 하시면 됩니다.
해당 부분에 따라 규제가 있거나 하지 않습니다.
다만 "수식에서 참조할 첫 번째 종목데이터가 없습니다"
와 같은 메세지는 수식에서 참조데이터를 사용하는데
차트에는 해당 참조데이터가 없다는 의미입니다.
수식에서 data2,data3을 사용하면
차트에 data2,data3이 있어야 하며
수식에서 data5,data6,data7을 사용하면 차트에도 해당 번호의
데이터가 있어야 합니다.
즐거운 하루되세요
> 테이머 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> - 시스템식을 적용한 챠트를 첨부하였습니다.
<시스템식>
Input : Period(5), Period1(3), Period2(3);
var : StoK(0),StoD(0);
StoK = data2(StochasticsK(Period,Period1));
StoD = data2(StochasticsD(Period,Period1,Period2));
if StoK < 50 and crossup(StoK,StoD) Then
buy();
if StoK >= 75 and CrossDown(StoK,StoD) Then
ExitLong();
질문1:주종목 1분 기준이 아닌 (data2 : 선물10분봉을 불러 내었을 때) 10분봉 스토캐스틱 기준 매매식이 맞는지요?
그리고 우리가 일반적으로 스토캐스틱이 75 이상이라는 것이 스토캐스틱k 값이 이상이라는 의미라 생각하고 식을 위와 같이 작성했는데 제가 알고 있는 것이 맞는지 궁금합니다.
질문 2: 예스스탁에서 알려주신 1분봉 주종목을 참조하여 10분봉 스토캐스틱을 그리는 식인데 여기에서 기간만 20, 12,12 를 5,3,3,으로 수정하였는데 2군데 수정하는 것이 맞는지요. 위 1번 수식으로 만든 10분선물을 참조데이터로 만든 스토캐스틱 챠트와 같지 않은 것 처럼 보여집니다.(적어도 20이하 또는 80이상 부분은 비슷해야 하는데 차이가 있습니다) 제가 1번식을 잘못 작성하였는지 2번 식(아래)을 수정을 잘 못 한건지 궁금합니다. 챠트 첨부
input : Atime(10),StoPeriod(5), StoPeriod1(3), StoPeriod2(3); <-20,12,12 를 5,5,5 으로수정
var : count(0), highVal(0), lowVal(0), StoFastK(0), StoK(0), StoD(0);
var : Ep(0), EP1(0), JISU(0), DINDEX(0), PreStoK(0), PreStoD(0),cnt(0);
Array : HH[20](0),LL[20](0);
var1 = TimeToMinutes(stime)%Atime;
if dayindex == 0 or (stime > stime[1] and var1 < var1[1]) Then{
HH[0] = H;
LL[0] = L;
for cnt = 1 to 4{ <- 19에서 4로 수정
HH[cnt] = HH[cnt-1][1];
LL[cnt] = LL[cnt-1][1];
}
}
if H > HH[0] Then
HH[0] = H;
if L < LL[0] Then
LL[0] = L;
highVal = HH[0];
for count = 0 to StoPeriod-1 {
if HH[count] > highVal then
highVal = HH[count];
}
lowVal = LL[0];
for count = 0 to StoPeriod-1 {
if LL[count] < lowVal then
lowVal = LL[count];
}
StoFastK = (C-lowVal)/(highVal-lowVal)*100;
Ep = 2/(StoPeriod1+1);
if DINDEX >= StoPeriod and (date != date[1] or var1 < var1[1]) then {
DINDEX = DINDEX + 1;
PreStoK = StoK[1];
}
if DINDEX <= 1 then
StoK = StoFastK ;
else
StoK = StoFastK * EP + PreStoK * (1-EP);
Ep1 = 2/(StoPeriod2+1);
if dayindex == 0 or (stime > stime[1] and var1 < var1[1]) Then{
DINDEX = DINDEX + 1;
PreStoD = StoD[1];
}
if DINDEX <= 1 then
StoD = StoK ;
else
StoD = StoK * EP1 + PreStoD * (1-EP1); //Slow StochasticsD ==> ema(Slow StochasticsK, StoPeriod2)
plot1(StoK);
plot2(StoD);
PlotBaseLine1(25);
PlotBaseLine2(75);
질문 3 :1번식을 사용하지 않고 (10분봉을 데이터로 사용하지 않고) 2번식으로 (1분봉 주종목만 조회 한후) 처음 작성한 매매신호를 똑같이 나타내고 싶은데 수식 작성 좀 부탁드립니다.
질문 4 : 열 지표를 작성할 때 plot1, plot2, plot3,,,, 여러 지표를 사용하고 각각 지표명을 정하였는데 순서를 바꾸어도 되는지 즉 plot1 지표는 참조데이터 data2, data3 를 활용한 지표인데 지표를 불러올 때 plot2(data4, data5 참조데이터 활용한 지표) 다음에 불러와도 문제가 없는지요. 아니면 순서에 따라 plot 번호를 바꾸어 주어야 하는지요?
무엇 때문인지 모르지만 지표를 더블클릭하여 불러오면 "수식에서 참조할 첫 번째 종목데이터가 없습니다." 라는 메세지 창이 뜹니다. "확인"을 클릭 하면 지표는 그려지긴 합니다.
<사용하고 있는 지표식 예1>
var : value(0,data1);
value = (data2(c)+data3(c));
if dayindex >= 4 and stime < 150000 Then
Plot1(value-value[1],"연습1");
<사용하고 있는 지표식 예2>
var : value1(0,data1);
value1 = (Data6(c)+data7(c));
if stime >= 090500 and stime < 145000 Then
Plot2(value1-value1[1],"연습2");
즉 참조데이터를 4개 불러온 상태에서 지표를 불러올 때 지표2를 지표1 보다 먼저 불러오면 식에 들어가서 plot2를 -> plot1로 수정해야 하는지?
그리고 변수 설정에서 지표1에서 value 변수를 사용하였으니 제가 작성한 것처럼 지표2에서는 value 는 사용 할 수 없고 value1 형태로 다른 변수를 사용하여야 하는지 궁금합니다.
부탁드립니다.
다음글
이전글