커뮤니티
함수수정요청
2019-04-05 15:29:41
142
글번호 127663
안녕하세요?
아래 글번호62019번 재질문드립니다.
-주종목: 크루드오일
-참조종목: 천연가스
-주기: 1분봉
-전략: 참조종목 당일 시가(O)와 참조종목 16:00분(써머타임 해지시 17:00) (C) 완성봉을 기준으로
O > C 인 경우 상방으로 O 를 터치한 경우 주종목 매도
O < C 인 경우 하방으로 O 를 터치한 경우 주종목 매수
참조종목의 당일 시초가와 특정시간(16시)의 가격을 비교하여 진입하고자 합니다.
따라서 특정시간의 가격이 돌파되는 시점에 1번(일중) 나오게 하고자 합니다.
그리고 다시 익일에 시초가와 특정시간(16시)을 비교하여 전일 신호와 동일하면 오버나이트
다르면 리버스하고자 합니다.
아래 작성주신 스크립트를 적용해보면 신호가 생성되지 않습니다.
검증 좀 부탁드립니다.
Var : Summer(False,data2),Year(0,data2);
var : v1(0,data2),v2(0,data2),v3(0,data2),v4(0,data2);
var : T(0,data2),O2(0,data2),ST(0,data2);
Year = data2(Floor(sdate/10000));
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = data2(15 - dayofweek(v1)); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = data2(8 - dayofweek(v3)); // 11월 첫번째 일요일 날짜
Summer = data2(sdate > (10000 * Year) + (100 * 3) + v2
And sdate < (10000 * Year) + (100 * 11) + v4);
if data2(bdate != bdate[1]) Then
{
T = 0;
O2 = data2(O);
if summer == true Then
ST = 160000;
Else
ST = 170000;
}
if Summer == true then
{
if data2((sdate != sdate[1] and stime >= 160000) or
(sdate == sdate[1] and stime >= 160000 and stime[1] < 160000)) Then
{
if data2(C) > O2 Then
T = 1;
if data2(C) < O2 Then
T = -1;
}
}
if T == 1 and CrossDown(L,O2) Then
{
T = 2;
buy("b");
}
if T == -1 and crossup(H,O2) Then
{
T = -1;
sell("s");
}
답변 1
예스스탁 예스스탁 답변
2019-04-05 16:44:18
안녕하세요
예스스탁입니다.
식을 수정했습니다.
Var : Summer(False,data2),Year(0,data2);
var : v1(0,data2),v2(0,data2),v3(0,data2),v4(0,data2);
var : T(0,data2),O2(0,data2),ST(0,data2);
Year = data2(Floor(sdate/10000));
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = data2(15 - dayofweek(v1)); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = data2(8 - dayofweek(v3)); // 11월 첫번째 일요일 날짜
Summer = data2(sdate > (10000 * Year) + (100 * 3) + v2
And sdate < (10000 * Year) + (100 * 11) + v4);
if data2(bdate != bdate[1]) Then
{
T = 0;
O2 = data2(O);
if summer == true Then
ST = 160000;
Else
ST = 170000;
}
if Summer == true then
{
if data2((sdate != sdate[1] and stime >= ST) or
(sdate == sdate[1] and stime >= ST and stime[1] < ST)) Then
{
if data2(C) > O2 Then
T = 1;
if data2(C) < O2 Then
T = -1;
}
}
if T == 1 and data2(CrossDown(L,O2)) Then
{
T = 2;
buy("b");
}
if T == -1 and data2(crossup(H,O2)) Then
{
T = -1;
sell("s");
}
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수수정요청
> 안녕하세요?
아래 글번호62019번 재질문드립니다.
-주종목: 크루드오일
-참조종목: 천연가스
-주기: 1분봉
-전략: 참조종목 당일 시가(O)와 참조종목 16:00분(써머타임 해지시 17:00) (C) 완성봉을 기준으로
O > C 인 경우 상방으로 O 를 터치한 경우 주종목 매도
O < C 인 경우 하방으로 O 를 터치한 경우 주종목 매수
참조종목의 당일 시초가와 특정시간(16시)의 가격을 비교하여 진입하고자 합니다.
따라서 특정시간의 가격이 돌파되는 시점에 1번(일중) 나오게 하고자 합니다.
그리고 다시 익일에 시초가와 특정시간(16시)을 비교하여 전일 신호와 동일하면 오버나이트
다르면 리버스하고자 합니다.
아래 작성주신 스크립트를 적용해보면 신호가 생성되지 않습니다.
검증 좀 부탁드립니다.
Var : Summer(False,data2),Year(0,data2);
var : v1(0,data2),v2(0,data2),v3(0,data2),v4(0,data2);
var : T(0,data2),O2(0,data2),ST(0,data2);
Year = data2(Floor(sdate/10000));
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = data2(15 - dayofweek(v1)); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = data2(8 - dayofweek(v3)); // 11월 첫번째 일요일 날짜
Summer = data2(sdate > (10000 * Year) + (100 * 3) + v2
And sdate < (10000 * Year) + (100 * 11) + v4);
if data2(bdate != bdate[1]) Then
{
T = 0;
O2 = data2(O);
if summer == true Then
ST = 160000;
Else
ST = 170000;
}
if Summer == true then
{
if data2((sdate != sdate[1] and stime >= 160000) or
(sdate == sdate[1] and stime >= 160000 and stime[1] < 160000)) Then
{
if data2(C) > O2 Then
T = 1;
if data2(C) < O2 Then
T = -1;
}
}
if T == 1 and CrossDown(L,O2) Then
{
T = 2;
buy("b");
}
if T == -1 and crossup(H,O2) Then
{
T = -1;
sell("s");
}
이전글