첨부 이미지
그림1
그림2
현재 시뮬창 모습입니다.
그림1은
var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
으로 문제가 없습니다.
그림2가 9:30 되면 희안하게 sell 진입이 나오는데 고칠수있을까요?
신규신호만 진입하고 싶습니다.
input : StartTime(93000),EndTime(153000);
var : Tcond(false,Data1);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if Tcond == true Then
{
var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
}
SetStopEndofday(EndTime);
감사합니다 !!
답변 1
예스스탁
예스스탁 답변
2021-02-02 10:01:18
안녕하세요
예스스탁입니다.
변수선언과 값저장이 if문 안에 있으면
해당 조건이 최초 충족된 이후부터 값을 저장합니다.
그전에는 변수값이 0이므로 9시 30분에 -값이면 바로 진입하게 됩니다.
input : StartTime(93000),EndTime(153000);
var : Tcond(false,Data1);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if Tcond == true Then
{
var : C2(0,Data2);
C2 = Data2(c);
}
Plot1(c2);
위 지표 적용해 보시면 C2값의 변화를 보실수 있습니다.
아래와 같이 변수선언이나 할당은 특별한 경우가 아니면 if문에 포함하지 않아야 합니다.
input : StartTime(93000),EndTime(153000);
var : Tcond(false,Data1);
var : C2(0,Data2);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
C2 = Data2(c);
if Tcond == true Then
{
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
}
SetStopEndofday(EndTime);
즐거운 하루되세요
> 캣피쉬 님이 쓴 글입니다.
> 제목 : 9:30부터 매매 시작시
> 현재 시뮬창 모습입니다.
그림1은
var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
으로 문제가 없습니다.
그림2가 9:30 되면 희안하게 sell 진입이 나오는데 고칠수있을까요?
신규신호만 진입하고 싶습니다.
input : StartTime(93000),EndTime(153000);
var : Tcond(false,Data1);
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
Tcond = true;
if Tcond == true Then
{
var : C2(0,Data2);
C2 = Data2(c);
if crossup(C2,0) then
buy();
if crossdown(C2,0) then
sell();
}
SetStopEndofday(EndTime);
감사합니다 !!