예스스탁
예스스탁 답변
2020-07-27 15:54:32
안녕하세요
예스스탁입니다.
dayopen,dayhigh,daylow,dayclose은
data1의 일간 시고저종가를 가져오는 함수입니다.
참조데이타는 openD,highD,lowD,closeD함수를 이용하셔야 합니다.
1
input : k(0.5);
#IBS지표
Input : highline(0.8),lowline(0.2);
var : IBS(0);
IBS= data2((closeD(1)-lowD(1))/(highD(1)-lowD(1)));
#1일 1회 매수
input: N(1);
var: cnt(0), count(0);
Count = 0;
for cnt = 0 to 10
{
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
#Range
var: rng(0);
rng = dayhigh(1)-daylow(1);
#매수 조건
if IBS >= 0.8
and C > dayopen +rng*k
and count < N
then
{
MessageLog("IBS %.2f", IBS);
buy("매수");
}
#매도 조건
if stime >= 151600
and stime <151800
Then
{
ExitLong("시초매도",AtMarket,DEF,"");
}
2
Input : highline(0.8),lowline(0.2);
var : IBS(0);
IBS=data2((closeD(1)-lowD(1))/(highD(1)-lowD(1)));
Plot1(IBS, "IBS");
PlotBaseLine1(highline, "기준선1");
PlotBaseLine2(lowline, "기준선2");
즐거운 하루되세요
> 기사단장 님이 쓴 글입니다.
> 제목 : 참조 데이터(data2)관련 문제 문의
> 안녕하세요.
항상 도와주셔서 큰 도움이 되고 있습니다.
다름이아니라 참조데이터를 수식에 사용하는데 문제가 있어서 문의드립니다.
1. 코스닥 150 레버리지 ETF (data2) 의 '전일' 시종고저 기준으로 IBS라는 지표를 도출하고,
2. IBS가 0.8 이상일 경우 코스닥 150 인버스를 매수하는 로직을 작성하였으나,
3. data2가 아닌 코스닥 150 인버스(data1) 자체의 봉만을 참조하는 결과가 발생하고 있습니다.
- 그림1에서 IBS로그를 확인한 결과 0.8이상인 것을 확인할 수 있으며,
- 그림2에서 IBS값은 data2가 아닌, data1의 전일 IBS 값임을 확인할 수 있습니다.
(참고로 지표는 data2의 IBS값을 표기하고 있으며 정상적으로 보여주는 것을 알 수 있습니다. 아래 수식 공유드립니다.)
[시스템 수식]
Input : k(0.5);
#IBS지표
Input : highline(0.8),lowline(0.2);
var : IBS(0);
IBS= data2((dayclose(1)-daylow(1))/(dayhigh(1)-daylow(1)));
#1일 1회 매수
input: N(1);
var: cnt(0), count(0);
Count = 0;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
#Range
var: rng(0);
rng = dayhigh(1)-daylow(1);
#매수 조건
if IBS >= 0.8
and C > dayopen +rng*k
and count < N
then {
MessageLog("IBS %.2f", IBS);
buy("매수");
}
#매도 조건
if stime >= 151600
and stime <151800
Then
{
ExitLong("시초매도",AtMarket,DEF,"");
}
[지표 수식]
Input : highline(0.8),lowline(0.2);
var : IBS(0);
IBS=(data2(dayclose(1))-data2(daylow(1)))/(data2(dayhigh(1))-data2(daylow(1)));
Plot1(IBS, "IBS");
PlotBaseLine1(highline, "기준선1");
PlotBaseLine2(lowline, "기준선2");