커뮤니티
함수요청
2019-03-15 15:55:15
314
글번호 127120
안녕하세요?
아래의 두 스크립트를 수정요청드립니다.
참조종목을 월물만 달리하여 매매하고자 합니다.
참조종목과 동일한 신호 발생시 기본종목에 신호를 생성하게 하고자 합니다.
월물만 다르게 하고 주기 및 장운영시간을 동일합니다.
[전략A]
if sdate != sdate[1] Then
SetStopEndofday(053000);
if bdate != bdate[1] then
{
SetStopEndofday(0);
if O > C[1] Then
buy("b",AtMarket);
if O < C[1] Then
sell("s",AtMarket);
}
[전략B]
Var : st(0), et(0),year(0);
var : V1(0),V2(0),v99(0);
Year = Floor(sDate / 10000)*10000;
V1 = Dayofweek((10000 * Year) + (100 * 3) + 1);
If V1 == 0 Then
Value2 = 8;
Else
Value2 = 15 - V1; // 3월 두번째 일요일 날짜
V2 = Dayofweek((10000 * Year) + (100 * 11) + 1);
If V2 == 0 Then
Value4 = 1;
Else
value4 = 8 - V2; // 11월 첫번째 일요일 날짜
If sdate > (10000 * Year) + (100 * 3) + value2
And sdate < (10000 * Year) + (100 * 11) + value4 Then
Begin
st = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
st = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
condition1 = (IntPortion(stime/10000) > IntPortion(et/10000)
And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1];
/////////////////////////////////////////////////////////////////
If condition1 Then
v99 = 0;
Vars : SP(0);
SP = MarketPosition;
If SP[1] <> SP And SP <> 0 Then
v99 = v99 + 1;
Vars : pDayClose(0), vDayOpen(0);
pDayClose = DayClose(1);
vDayOpen = DayOpen(0);
If v99 == 0 Then
Begin
If pDayClose < vDayOpen Then Buy("B", atmarket);
Else IF pDayClose > vDayOpen Then Sell("S", atmarket);
End;
SetStopEndofday(153000);
답변 1
예스스탁 예스스탁 답변
2019-03-18 13:20:44
안녕하세요
예스스탁입니다.
1
if sdate != sdate[1] Then
SetStopEndofday(053000);
if bdate != bdate[1] then
{
SetStopEndofday(0);
if data2(O > C[1]) Then
buy("b",AtMarket);
if data2(O < C[1]) Then
sell("s",AtMarket);
}
2
Var : st(0,data2),et(0,data2),year(0,data2);
var : V1(0,data2),V2(0,data2),v99(0,data2);
var : val2(0,data2),val4(0,data2),cond1(false);
Year = data2(Floor(sDate / 10000)*10000);
V1 = data2(Dayofweek((10000 * Year) + (100 * 3) + 1));
If V1 == 0 Then
Val2 = 8;
Else
Val2 = 15 - V1; // 3월 두번째 일요일 날짜
V2 = data2(Dayofweek((10000 * Year) + (100 * 11) + 1));
If V2 == 0 Then
Val4 = 1;
Else
Val4 = 8 - V2; // 11월 첫번째 일요일 날짜
If data2(sdate > (10000 * Year) + (100 * 3) + Val2
And sdate < (10000 * Year) + (100 * 11) + Val4) Then
Begin
st = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
st = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
cond1 = data2((IntPortion(stime/10000) > IntPortion(et/10000)
And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1]);
/////////////////////////////////////////////////////////////////
If cond1 Then
v99 = 0;
Vars : SP(0);
SP = MarketPosition;
If SP[1] <> SP And SP <> 0 Then
v99 = v99 + 1;
Vars : pDayClose(0), vDayOpen(0);
pDayClose = data2(CloseD(1));
vDayOpen = data2(OpenD(0));
If v99 == 0 Then
Begin
If pDayClose < vDayOpen Then Buy("B", atmarket);
Else IF pDayClose > vDayOpen Then Sell("S", atmarket);
End;
SetStopEndofday(153000);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 함수요청
> 안녕하세요?
아래의 두 스크립트를 수정요청드립니다.
참조종목을 월물만 달리하여 매매하고자 합니다.
참조종목과 동일한 신호 발생시 기본종목에 신호를 생성하게 하고자 합니다.
월물만 다르게 하고 주기 및 장운영시간을 동일합니다.
[전략A]
if sdate != sdate[1] Then
SetStopEndofday(053000);
if bdate != bdate[1] then
{
SetStopEndofday(0);
if O > C[1] Then
buy("b",AtMarket);
if O < C[1] Then
sell("s",AtMarket);
}
[전략B]
Var : st(0), et(0),year(0);
var : V1(0),V2(0),v99(0);
Year = Floor(sDate / 10000)*10000;
V1 = Dayofweek((10000 * Year) + (100 * 3) + 1);
If V1 == 0 Then
Value2 = 8;
Else
Value2 = 15 - V1; // 3월 두번째 일요일 날짜
V2 = Dayofweek((10000 * Year) + (100 * 11) + 1);
If V2 == 0 Then
Value4 = 1;
Else
value4 = 8 - V2; // 11월 첫번째 일요일 날짜
If sdate > (10000 * Year) + (100 * 3) + value2
And sdate < (10000 * Year) + (100 * 11) + value4 Then
Begin
st = 070000; // 써머타임 적용 시, 장시작 시간
et = 060000; // 써머타임 적용 시, 장종료 시간
End
Else
Begin
st = 080000; // 장 시작 시간
et = 070000; // 장 종료 시간
End;
condition1 = (IntPortion(stime/10000) > IntPortion(et/10000)
And IntPortion(stime[1]/10000) <= IntPortion(et/10000)) Or st <> st[1];
/////////////////////////////////////////////////////////////////
If condition1 Then
v99 = 0;
Vars : SP(0);
SP = MarketPosition;
If SP[1] <> SP And SP <> 0 Then
v99 = v99 + 1;
Vars : pDayClose(0), vDayOpen(0);
pDayClose = DayClose(1);
vDayOpen = DayOpen(0);
If v99 == 0 Then
Begin
If pDayClose < vDayOpen Then Buy("B", atmarket);
Else IF pDayClose > vDayOpen Then Sell("S", atmarket);
End;
SetStopEndofday(153000);
이전글