예스스탁
예스스탁 답변
2021-03-16 14:56:30
안녕하세요
예스스탁입니다.
1
참조데이타에 대한 이평등을 계산시에 AccumN(data3(v),short)는 잘못된 표현입니다.
data3(AccumN(v,short))로 작성이 되어야 합니다.
AccumN(data3(v),short)으로 작성이 되면 short으로 지정한 봉수가 data3기준으로 몇개봉이 아닌
차트의 모든 데이타를 기준으로 글로벌봉을 만들어 갯수를 세게 됩니다.
참조데이타를 이용하는 식을 작성시
계산식은 위와 같은 data3(AccumN(v,short))과 같이 데이타번호 함수에 모두 넣어 표현하시고
변수도 어떤 데이타를 기준으로 1봉전, 2봉전과 같이 동작할지 지정해 주어야 하므로
sum1(0,data3)과 같이 선언데 데이타번호를 지정해 주셔야 합니다.
2
수식은 완성봉의 값만 사용이 가능합니다.
참조데이타가 일봉이면 당일 장진행중에는 당일봉이 미완성이므로 해당 값을 사용하지 않으므로
당일은 일봉상 전일봉값까지만 사용이 가능합니다.
주봉또한 마찬가지로 이번주는 전주봉까지만 사용이 가능합니다. 이용에 참고하시기 바랍니다.
3
inputs : short(5), Signal(20);
var : long(0,data3), Sum1(0,data3), Sum2(0,data3), VWMA1(0,data3), VWMA2(0,data3);
var : VPC(0,data3), VPR(0,data3), VM(0,data3), VPCI(0,data3), AvgVPCI(0,data3), VPCIosc(0,data3);
long = short * 5;
Sum1 = data3(AccumN(v,short));
if Sum1 > 0 then
VWMA1 = data3(AccumN(C*v,short))/Sum1 ;
Sum2 = data3(AccumN(v,long));
if Sum2 > 0 then
VWMA2 = data3(AccumN(C*v,long))/Sum2;
VPC = VWMA2 - data3(Ma(C,long));
VPR = VWMA1 / data3(Ma(c, short));
VM = data3(Ma(v, short))/data3(ma(v, long));
VPCI = VPC * VPR * VM ;
AvgVPCI = data3(Ma( VPCI, Signal ));
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
즐거운 하루되세요
> 열심청년 님이 쓴 글입니다.
> 제목 : 안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
> 안녕하세요 꾸준히 공부를 하며 실투자를 진행하고 있는 투자자입니다.
책이나 인터넷 등에서 지표를 보고 해당 지표를 실제 트레이딩에 접목하는 것을 통해
여러 지혜를 배우기도 하고 시스템트레이딩역시 배우고 있는데,
이번 지표는 정말 어렵더라구요. 아무리 많은 디버깅을 해도 이해가 안되는 부분이
있습니다. 그래서 이렇게 질문 드리오니 확인 후 답변 꼭 부탁드립니다!
------------------------------------------------------------------------------
VPCI 기반 지표, 시스템 입니다. 코드는 기존 Q&A를 참고하여 작성하였습니다.
1. 지표
inputs : short(5), Signal(25);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0);
long = short * 5;
Sum1 = AccumN(v,short);
if Sum1 > 0 then
VWMA1 = AccumN(C*v,short)/Sum1 ;
Sum2 = AccumN(v,long);
if Sum2 > 0 then
VWMA2 = AccumN(C*v,long)/Sum2;
VPC = VWMA2 - Ma(C,long) ;
VPR = VWMA1 / Ma(c, short) ;
VM = Ma(v, short) / ma(v, long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
Plot1(VPCI, "VPCI" ) ;
Plot2(AvgVPCI, "VPCIsig" ) ;
plot3(0, "Zero");
2. VPCI와 VPCIs 의 크로스를 통한 매매 시스템
inputs : short(5), Signal(20);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0), VPCIosc(0) ;
long = short * 5;
Sum1 = AccumN(data3(v),short);
if Sum1 > 0 then
VWMA1 = AccumN(data3(C)*data3(v),short)/Sum1 ;
Sum2 = AccumN(data3(v),long);
if Sum2 > 0 then
VWMA2 = AccumN(data3(C)*data3(v),long)/Sum2;
VPC = VWMA2 - Ma(data3(C),long) ;
VPR = VWMA1 / Ma(data3(c), short) ;
VM = Ma(data3(v), short) / ma(data3(v), long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
차트창 에는
DATA1 실거래 1분봉
DATA2 지표참조용 주봉
DATA3 지표참조용 일봉
으로 구성되어 있고 지표를 적용후 설정에서 대상을 DATA3인 일봉을 선택함.
문제는 지표와 시스템상의 이격이 계속 발생이 되고 있다는 겁니다.
※ 참고로 해당 거래는 001 코스피주가지수를 참조하여 테스트를 하였습니다.
지표상에서 아무런 움직임이 없는데 데드크로스 발생후 진행되어야 할 매도가
진행되고 또는 골드크로스 발생 후 진행되어야 할 매수가 뜬금없이 진행되고 합니다.
차트를 DATA1 ~ DATA3 으로 구성되어 있는 점 참고 부탁드리고
답변에 대해 미리 감사드립니다.
남겨주신 답글 잘 보았습니다.
보면서 다시한번 예스랭귀지 매뉴얼을 찾아 다시 살펴보았는데
무릎을 탁 치게 하시더라구요! ㅎㅎㅎ
정말 정말 감사합니다!
제가 그동안 알고 있었던 타종목/타주기 활용의 잘못된 점을
바로 알게 해주셨습니다! 다시한번 감사드립니다!
기존 연습 시스템랭귀지를 찾다가 핵갈려 다시한번 남기게 되었습니다.
알려주신데로 적용하면
예로 왼쪽이 기존에 사용한 문법이고 오른쪽으로 변경한건데 맞는지 확인 부탁드려요!
Highest(data2(H), Long) --> data2(Highest(H, Long))
Lowest(Data2(L), Short) --> data2(Lowest(L, Short))
max(abs(Data2(H)-Data2(L)), abs(Data2(H)-Data2(C[1])), abs(Data2(C[1])-Data2(L)))
--> data2(max(abs(H-L), abs(H-C[1]), abs(C[1]-L))
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
>
안녕하세요
예스스탁입니다.
1
참조데이타에 대한 이평등을 계산시에 AccumN(data3(v),short)는 잘못된 표현입니다.
data3(AccumN(v,short))로 작성이 되어야 합니다.
AccumN(data3(v),short)으로 작성이 되면 short으로 지정한 봉수가 data3기준으로 몇개봉이 아닌
차트의 모든 데이타를 기준으로 글로벌봉을 만들어 갯수를 세게 됩니다.
참조데이타를 이용하는 식을 작성시
계산식은 위와 같은 data3(AccumN(v,short))과 같이 데이타번호 함수에 모두 넣어 표현하시고
변수도 어떤 데이타를 기준으로 1봉전, 2봉전과 같이 동작할지 지정해 주어야 하므로
sum1(0,data3)과 같이 선언데 데이타번호를 지정해 주셔야 합니다.
2
수식은 완성봉의 값만 사용이 가능합니다.
참조데이타가 일봉이면 당일 장진행중에는 당일봉이 미완성이므로 해당 값을 사용하지 않으므로
당일은 일봉상 전일봉값까지만 사용이 가능합니다.
주봉또한 마찬가지로 이번주는 전주봉까지만 사용이 가능합니다. 이용에 참고하시기 바랍니다.
3
inputs : short(5), Signal(20);
var : long(0,data3), Sum1(0,data3), Sum2(0,data3), VWMA1(0,data3), VWMA2(0,data3);
var : VPC(0,data3), VPR(0,data3), VM(0,data3), VPCI(0,data3), AvgVPCI(0,data3), VPCIosc(0,data3);
long = short * 5;
Sum1 = data3(AccumN(v,short));
if Sum1 > 0 then
VWMA1 = data3(AccumN(C*v,short))/Sum1 ;
Sum2 = data3(AccumN(v,long));
if Sum2 > 0 then
VWMA2 = data3(AccumN(C*v,long))/Sum2;
VPC = VWMA2 - data3(Ma(C,long));
VPR = VWMA1 / data3(Ma(c, short));
VM = data3(Ma(v, short))/data3(ma(v, long));
VPCI = VPC * VPR * VM ;
AvgVPCI = data3(Ma( VPCI, Signal ));
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
즐거운 하루되세요
> 열심청년 님이 쓴 글입니다.
> 제목 : 안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
> 안녕하세요 꾸준히 공부를 하며 실투자를 진행하고 있는 투자자입니다.
책이나 인터넷 등에서 지표를 보고 해당 지표를 실제 트레이딩에 접목하는 것을 통해
여러 지혜를 배우기도 하고 시스템트레이딩역시 배우고 있는데,
이번 지표는 정말 어렵더라구요. 아무리 많은 디버깅을 해도 이해가 안되는 부분이
있습니다. 그래서 이렇게 질문 드리오니 확인 후 답변 꼭 부탁드립니다!
------------------------------------------------------------------------------
VPCI 기반 지표, 시스템 입니다. 코드는 기존 Q&A를 참고하여 작성하였습니다.
1. 지표
inputs : short(5), Signal(25);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0);
long = short * 5;
Sum1 = AccumN(v,short);
if Sum1 > 0 then
VWMA1 = AccumN(C*v,short)/Sum1 ;
Sum2 = AccumN(v,long);
if Sum2 > 0 then
VWMA2 = AccumN(C*v,long)/Sum2;
VPC = VWMA2 - Ma(C,long) ;
VPR = VWMA1 / Ma(c, short) ;
VM = Ma(v, short) / ma(v, long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
Plot1(VPCI, "VPCI" ) ;
Plot2(AvgVPCI, "VPCIsig" ) ;
plot3(0, "Zero");
2. VPCI와 VPCIs 의 크로스를 통한 매매 시스템
inputs : short(5), Signal(20);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0), VPCIosc(0) ;
long = short * 5;
Sum1 = AccumN(data3(v),short);
if Sum1 > 0 then
VWMA1 = AccumN(data3(C)*data3(v),short)/Sum1 ;
Sum2 = AccumN(data3(v),long);
if Sum2 > 0 then
VWMA2 = AccumN(data3(C)*data3(v),long)/Sum2;
VPC = VWMA2 - Ma(data3(C),long) ;
VPR = VWMA1 / Ma(data3(c), short) ;
VM = Ma(data3(v), short) / ma(data3(v), long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
차트창 에는
DATA1 실거래 1분봉
DATA2 지표참조용 주봉
DATA3 지표참조용 일봉
으로 구성되어 있고 지표를 적용후 설정에서 대상을 DATA3인 일봉을 선택함.
문제는 지표와 시스템상의 이격이 계속 발생이 되고 있다는 겁니다.
※ 참고로 해당 거래는 001 코스피주가지수를 참조하여 테스트를 하였습니다.
지표상에서 아무런 움직임이 없는데 데드크로스 발생후 진행되어야 할 매도가
진행되고 또는 골드크로스 발생 후 진행되어야 할 매수가 뜬금없이 진행되고 합니다.
차트를 DATA1 ~ DATA3 으로 구성되어 있는 점 참고 부탁드리고
답변에 대해 미리 감사드립니다.
예스스탁
예스스탁 답변
2021-03-18 14:56:57
안녕하세요
예스스탁입니다.
예 변경한 내용이 맞습니다.
변경하신 내용과 같이 참조데이타의 값을 계산시에
데이타번호 함수안에 계산식과 조건이 들어가게 하시면 됩니다.
즐거운 하루되세요
> 열심청년 님이 쓴 글입니다.
> 제목 : 한가지만 더 질문 드릴께요~
> 남겨주신 답글 잘 보았습니다.
보면서 다시한번 예스랭귀지 매뉴얼을 찾아 다시 살펴보았는데
무릎을 탁 치게 하시더라구요! ㅎㅎㅎ
정말 정말 감사합니다!
제가 그동안 알고 있었던 타종목/타주기 활용의 잘못된 점을
바로 알게 해주셨습니다! 다시한번 감사드립니다!
기존 연습 시스템랭귀지를 찾다가 핵갈려 다시한번 남기게 되었습니다.
알려주신데로 적용하면
예로 왼쪽이 기존에 사용한 문법이고 오른쪽으로 변경한건데 맞는지 확인 부탁드려요!
Highest(data2(H), Long) --> data2(Highest(H, Long))
Lowest(Data2(L), Short) --> data2(Lowest(L, Short))
max(abs(Data2(H)-Data2(L)), abs(Data2(H)-Data2(C[1])), abs(Data2(C[1])-Data2(L)))
--> data2(max(abs(H-L), abs(H-C[1]), abs(C[1]-L))
> 예스스탁 님이 쓴 글입니다.
> 제목 : Re : 안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
>
안녕하세요
예스스탁입니다.
1
참조데이타에 대한 이평등을 계산시에 AccumN(data3(v),short)는 잘못된 표현입니다.
data3(AccumN(v,short))로 작성이 되어야 합니다.
AccumN(data3(v),short)으로 작성이 되면 short으로 지정한 봉수가 data3기준으로 몇개봉이 아닌
차트의 모든 데이타를 기준으로 글로벌봉을 만들어 갯수를 세게 됩니다.
참조데이타를 이용하는 식을 작성시
계산식은 위와 같은 data3(AccumN(v,short))과 같이 데이타번호 함수에 모두 넣어 표현하시고
변수도 어떤 데이타를 기준으로 1봉전, 2봉전과 같이 동작할지 지정해 주어야 하므로
sum1(0,data3)과 같이 선언데 데이타번호를 지정해 주셔야 합니다.
2
수식은 완성봉의 값만 사용이 가능합니다.
참조데이타가 일봉이면 당일 장진행중에는 당일봉이 미완성이므로 해당 값을 사용하지 않으므로
당일은 일봉상 전일봉값까지만 사용이 가능합니다.
주봉또한 마찬가지로 이번주는 전주봉까지만 사용이 가능합니다. 이용에 참고하시기 바랍니다.
3
inputs : short(5), Signal(20);
var : long(0,data3), Sum1(0,data3), Sum2(0,data3), VWMA1(0,data3), VWMA2(0,data3);
var : VPC(0,data3), VPR(0,data3), VM(0,data3), VPCI(0,data3), AvgVPCI(0,data3), VPCIosc(0,data3);
long = short * 5;
Sum1 = data3(AccumN(v,short));
if Sum1 > 0 then
VWMA1 = data3(AccumN(C*v,short))/Sum1 ;
Sum2 = data3(AccumN(v,long));
if Sum2 > 0 then
VWMA2 = data3(AccumN(C*v,long))/Sum2;
VPC = VWMA2 - data3(Ma(C,long));
VPR = VWMA1 / data3(Ma(c, short));
VM = data3(Ma(v, short))/data3(ma(v, long));
VPCI = VPC * VPR * VM ;
AvgVPCI = data3(Ma( VPCI, Signal ));
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
즐거운 하루되세요
> 열심청년 님이 쓴 글입니다.
> 제목 : 안녕하세요! 문의드립니다~ 꼭좀 답변 부탁드립니다~
> 안녕하세요 꾸준히 공부를 하며 실투자를 진행하고 있는 투자자입니다.
책이나 인터넷 등에서 지표를 보고 해당 지표를 실제 트레이딩에 접목하는 것을 통해
여러 지혜를 배우기도 하고 시스템트레이딩역시 배우고 있는데,
이번 지표는 정말 어렵더라구요. 아무리 많은 디버깅을 해도 이해가 안되는 부분이
있습니다. 그래서 이렇게 질문 드리오니 확인 후 답변 꼭 부탁드립니다!
------------------------------------------------------------------------------
VPCI 기반 지표, 시스템 입니다. 코드는 기존 Q&A를 참고하여 작성하였습니다.
1. 지표
inputs : short(5), Signal(25);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0);
long = short * 5;
Sum1 = AccumN(v,short);
if Sum1 > 0 then
VWMA1 = AccumN(C*v,short)/Sum1 ;
Sum2 = AccumN(v,long);
if Sum2 > 0 then
VWMA2 = AccumN(C*v,long)/Sum2;
VPC = VWMA2 - Ma(C,long) ;
VPR = VWMA1 / Ma(c, short) ;
VM = Ma(v, short) / ma(v, long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
Plot1(VPCI, "VPCI" ) ;
Plot2(AvgVPCI, "VPCIsig" ) ;
plot3(0, "Zero");
2. VPCI와 VPCIs 의 크로스를 통한 매매 시스템
inputs : short(5), Signal(20);
var : long(0), Sum1(0), Sum2(0), VWMA1(0), VWMA2(0), VPC(0), VPR(0), VM(0), VPCI(0), AvgVPCI(0), VPCIosc(0) ;
long = short * 5;
Sum1 = AccumN(data3(v),short);
if Sum1 > 0 then
VWMA1 = AccumN(data3(C)*data3(v),short)/Sum1 ;
Sum2 = AccumN(data3(v),long);
if Sum2 > 0 then
VWMA2 = AccumN(data3(C)*data3(v),long)/Sum2;
VPC = VWMA2 - Ma(data3(C),long) ;
VPR = VWMA1 / Ma(data3(c), short) ;
VM = Ma(data3(v), short) / ma(data3(v), long) ;
VPCI = VPC * VPR * VM ;
AvgVPCI = Ma( VPCI, Signal ) ;
VPCIosc = VPCI-AvgVPCI;
if CrossUp(VPCI, AvgVPCI) then
{
Buy("B",AtMarket);
}
if MarketPosition == 1 and VPCI < AvgVPCI then
{
ExitLong("S",AtMarket);
}
차트창 에는
DATA1 실거래 1분봉
DATA2 지표참조용 주봉
DATA3 지표참조용 일봉
으로 구성되어 있고 지표를 적용후 설정에서 대상을 DATA3인 일봉을 선택함.
문제는 지표와 시스템상의 이격이 계속 발생이 되고 있다는 겁니다.
※ 참고로 해당 거래는 001 코스피주가지수를 참조하여 테스트를 하였습니다.
지표상에서 아무런 움직임이 없는데 데드크로스 발생후 진행되어야 할 매도가
진행되고 또는 골드크로스 발생 후 진행되어야 할 매수가 뜬금없이 진행되고 합니다.
차트를 DATA1 ~ DATA3 으로 구성되어 있는 점 참고 부탁드리고
답변에 대해 미리 감사드립니다.