첫봉 시가기준으로 첫봉부터 진입하여
첫봉 c>o면 매수, 첫봉 c<o면 매도
이후는 첫봉시가기준 cross업 다운 수식입니다
1번 2번 사진에서 보시는거와 같이 잘되다가
중간중간 3번 그림처럼
첫봉에 진입을 안하네요
나스닥 1분봉입니다
수정 부탁드려요~
//써머타임 변수
var : Summer(False),Year(0);
var : V1(0),V2(0),V3(0),V4(0);
var: Tcond(False);
//써머타임 변수
var: fo(0),fc(0);
// 써머타임
if sdate != sdate[1] Then
{
Year = Floor(sdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = (sdate > (10000 * Year) + (100 * 3) + v2) And (sdate < (10000 * Year) + (100 * 11) + v4);
}
// 써머타임
// 써머타임 3월~11월
if Summer == true then
{
if sdate == 20190419 then //써머 휴일청산
{
if (sdate != sdate[1] and stime >= 054500) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("써머휴일매도청");
}
}
else if sdate == 20190528 or sdate == 20190704 or sdate == 20190705 or sdate == 20190903 then //써머 조기장
{
if (sdate != sdate[1] and stime >= 014500) or
(sdate == sdate[1] and stime >= 014500 and stime[1] < 014500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 054500 ) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머매수청");
if MarketPosition == -1 Then
ExitShort("써머매도청");
}
}
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and stime >= 070000 and stime[1] < 070000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
}
}
Else //11월~3월까지
{
if sdate == 20190101 or sdate == 20200101 then //노써머 휴일청산
{
if (sdate != sdate[1] and stime >= 064500) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("노써머휴일매도청");
}
}
else if sdate == 20190122 or sdate == 20190219 or sdate == 20191129 or sdate == 20191130 or sdate == 20191225
or sdate == 20200121 or sdate == 20200218 then //노써머 조기장
{
if (sdate != sdate[1] and stime >= 024500) or
(sdate == sdate[1] and stime >= 024500 and stime[1] < 024500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("노써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 064500 ) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머매수청");
if MarketPosition == -1 Then
ExitShort("노써머매도청");
}
}
if (sdate != sdate[1] and stime >= 080000) or
(sdate == sdate[1] and stime >= 080000 and stime[1] < 080000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
}
}
// 써머타임
//--------- 진입 로직 ---------//
If Tcond == true Then
{
if CrossUp(c,fo) Then
buy();
if Crossdown(c,fo) Then
sell();
}
답변 1
예스스탁
예스스탁 답변
2020-02-27 14:42:03
안녕하세요
예스스탁입니다.
cross는 전봉과 현재봉 조건이 충족해야 합니다.
첫봉에서는
전일종가는 전일시가보다 작고 오늘은 종가가 시가보다 클때만 매수진입
전일종가는 전일시가보다 크고 오늘은 종가가 시가보다 작을때만 매도진입하게 됩니다.
수정한 식입니다.
//써머타임 변수
var : Summer(False),Year(0);
var : V1(0),V2(0),V3(0),V4(0);
var: Tcond(False);
//써머타임 변수
var: fo(0),fc(0),T(0);
// 써머타임
if sdate != sdate[1] Then
{
Year = Floor(sdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = (sdate > (10000 * Year) + (100 * 3) + v2) And (sdate < (10000 * Year) + (100 * 11) + v4);
}
// 써머타임
// 써머타임 3월~11월
if Summer == true then
{
if sdate == 20190419 then //써머 휴일청산
{
if (sdate != sdate[1] and stime >= 054500) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("써머휴일매도청");
}
}
else if sdate == 20190528 or sdate == 20190704 or sdate == 20190705 or sdate == 20190903 then //써머 조기장
{
if (sdate != sdate[1] and stime >= 014500) or
(sdate == sdate[1] and stime >= 014500 and stime[1] < 014500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 054500 ) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머매수청");
if MarketPosition == -1 Then
ExitShort("써머매도청");
}
}
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and stime >= 070000 and stime[1] < 070000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
T = 0;
}
}
Else //11월~3월까지
{
if sdate == 20190101 or sdate == 20200101 then //노써머 휴일청산
{
if (sdate != sdate[1] and stime >= 064500) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("노써머휴일매도청");
}
}
else if sdate == 20190122 or sdate == 20190219 or sdate == 20191129 or sdate == 20191130 or sdate == 20191225
or sdate == 20200121 or sdate == 20200218 then //노써머 조기장
{
if (sdate != sdate[1] and stime >= 024500) or
(sdate == sdate[1] and stime >= 024500 and stime[1] < 024500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("노써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 064500 ) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머매수청");
if MarketPosition == -1 Then
ExitShort("노써머매도청");
}
}
if (sdate != sdate[1] and stime >= 080000) or
(sdate == sdate[1] and stime >= 080000 and stime[1] < 080000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
T = 0;
}
}
// 써머타임
//--------- 진입 로직 ---------//
If Tcond == true Then
{
if T <= 0 and c > fo Then
buy();
if T >= 0 and c < fo Then
sell();
}
즐거운 하루되세요
> 추우세추우종 님이 쓴 글입니다.
> 제목 : 수식 부탁드립니다
> 첫봉 시가기준으로 첫봉부터 진입하여
첫봉 c>o면 매수, 첫봉 c<o면 매도
이후는 첫봉시가기준 cross업 다운 수식입니다
1번 2번 사진에서 보시는거와 같이 잘되다가
중간중간 3번 그림처럼
첫봉에 진입을 안하네요
나스닥 1분봉입니다
수정 부탁드려요~
//써머타임 변수
var : Summer(False),Year(0);
var : V1(0),V2(0),V3(0),V4(0);
var: Tcond(False);
//써머타임 변수
var: fo(0),fc(0);
// 써머타임
if sdate != sdate[1] Then
{
Year = Floor(sdate/10000);
V1 = (10000 * Year) + (100 * 3) + 1;
V2 = 15 - dayofweek(v1); // 3월 두번째 일요일 날짜
v3 = (10000 * Year) + (100 * 11) + 1;
v4 = 8 - dayofweek(v3); // 11월 첫번째 일요일 날짜
Summer = (sdate > (10000 * Year) + (100 * 3) + v2) And (sdate < (10000 * Year) + (100 * 11) + v4);
}
// 써머타임
// 써머타임 3월~11월
if Summer == true then
{
if sdate == 20190419 then //써머 휴일청산
{
if (sdate != sdate[1] and stime >= 054500) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("써머휴일매도청");
}
}
else if sdate == 20190528 or sdate == 20190704 or sdate == 20190705 or sdate == 20190903 then //써머 조기장
{
if (sdate != sdate[1] and stime >= 014500) or
(sdate == sdate[1] and stime >= 014500 and stime[1] < 014500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 054500 ) or
(sdate == sdate[1] and stime >= 054500 and stime[1] < 054500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("써머매수청");
if MarketPosition == -1 Then
ExitShort("써머매도청");
}
}
if (sdate != sdate[1] and stime >= 070000) or
(sdate == sdate[1] and stime >= 070000 and stime[1] < 070000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
}
}
Else //11월~3월까지
{
if sdate == 20190101 or sdate == 20200101 then //노써머 휴일청산
{
if (sdate != sdate[1] and stime >= 064500) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머휴일매수청");
if MarketPosition == -1 Then
ExitShort("노써머휴일매도청");
}
}
else if sdate == 20190122 or sdate == 20190219 or sdate == 20191129 or sdate == 20191130 or sdate == 20191225
or sdate == 20200121 or sdate == 20200218 then //노써머 조기장
{
if (sdate != sdate[1] and stime >= 024500) or
(sdate == sdate[1] and stime >= 024500 and stime[1] < 024500) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머조기장매수청");
if MarketPosition == -1 Then
ExitShort("노써머조기장매도청");
}
}
else
{
if (sdate != sdate[1] and stime >= 064500 ) or
(sdate == sdate[1] and stime >= 064500 and stime[1] < 064500 ) then
{
Tcond = false;
if MarketPosition == 1 Then
ExitLong("노써머매수청");
if MarketPosition == -1 Then
ExitShort("노써머매도청");
}
}
if (sdate != sdate[1] and stime >= 080000) or
(sdate == sdate[1] and stime >= 080000 and stime[1] < 080000) then
{
fo=O; //당일첫봉의시가
fc=C; //당일첫봉의종가
Tcond = true;
}
}
// 써머타임
//--------- 진입 로직 ---------//
If Tcond == true Then
{
if CrossUp(c,fo) Then
buy();
if Crossdown(c,fo) Then
sell();
}