커뮤니티
주석요청
2018-09-07 17:43:35
164
글번호 121898
안녕하세요?
바쁘시겠지만 답변주신 아래 스크립트 주석을 요청드립니다.
var :T(0),Year(0);
Year = Floor(sDate / 10000);
Value2 = 15 - dayofweek((10000 * Year) + (100 * 3) + 1); // 3월 두번째 일요일 날짜
value4 = 8 - dayofweek((10000 * Year) + (100 * 11) + 1); // 11월 첫번째 일요일 날짜
If date > (10000 * Year) + (100 * 3) + value2
And date < (10000 * Year) + (100 * 11) + value4 Then
T = 1;
Else
T = 0;
if T == 1 Then
{
if stime == 223000 Then
{
var1 = o;
if C > O Then
buy("b1",AtMarket);
if C < O Then
sell("s1",AtMarket);
}
if stime == 223600 Then
{
if MarketPosition == 1 and C > var1 Then
buy("b2",AtMarket);
if MarketPosition == 1 and C < var1 Then
exitlong("bx");
if MarketPosition == -1 and C < var1 Then
sell("s2",AtMarket);
if MarketPosition == -1 and C > var1 Then
ExitShort("sx");
}
if MarketPosition != 0 and stime == 033000 Then
{
exitlong("bx1");
ExitShort("sx1");
}
}
else
{
if stime == 233000 Then
{
var1 = o;
if C > O Then
buy("b1.",AtMarket);
if C < O Then
sell("s1.",AtMarket);
}
if stime == 233600 Then
{
if MarketPosition == 1 and C > var1 Then
buy("b2.",AtMarket);
if MarketPosition == 1 and C < var1 Then
exitlong("bx.");
if MarketPosition == -1 and C < var1 Then
sell("s2.",AtMarket);
if MarketPosition == -1 and C > var1 Then
ExitShort("sx.");
}
if MarketPosition != 0 and stime == 043000 Then
{
exitlong("bx1.");
ExitShort("sx1.");
}
}
SetStopProfittarget(1,PointStop);
SetStopLoss(1,PointStop);
답변 1
예스스탁 예스스탁 답변
2018-09-10 11:00:36
안녕하세요
예스스탁입니다.
var :T(0),Year(0);
#날짜(YYYYMMDD)값에서 연도(YYYY)만 추출
Year = Floor(sDate / 10000);
#두번째 일요일은 매달1일이 일요일경우 15일 이내이므로 15에서 매달 1일의 요일값을 빼서 계산
Value2 = 15 - dayofweek((10000 * Year) + (100 * 3) + 1); // 3월 두번째 일요일 일자
#첫번째 일요일은 매달1일이 일요일경우 8일 이내이므로 15에서 매달 1일의 요일값을 빼서 계산
value4 = 8 - dayofweek((10000 * Year) + (100 * 11) + 1); // 11월 첫번째 일요일 일자
#매년 3월일요일 이후부터~매년 11월 첫번째 일요일 사이이면 1 아니면 0
If date > (10000 * Year) + (100 * 3) + value2
And date < (10000 * Year) + (100 * 11) + value4 Then
T = 1;
Else
T = 0;
#1이면(썸머타임기간이면)
if T == 1 Then
{
#22시 30분봉이면
if stime == 223000 Then
{
#시가저장
var1 = o;
#양봉이면 다음봉 시가매수
if C > O Then
buy("b1",AtMarket);
#음봉이면 다음봉 시가매도
if C < O Then
sell("s1",AtMarket);
}
#22시36분봉이면
if stime == 223600 Then
{
#매수중이고 종가가 22시30분봉 시가보다 크면 추가매수
if MarketPosition == 1 and C > var1 Then
buy("b2",AtMarket);
#매수중이고 종가가 22시30분봉 시가보다 작으면 청산
if MarketPosition == 1 and C < var1 Then
exitlong("bx");
#매도중이고 종가가 22시30분봉 시가보다 작으면 추가매도
if MarketPosition == -1 and C < var1 Then
sell("s2",AtMarket);
#매도중이고 종가가 22시30분봉 시가보다 크면 청산
if MarketPosition == -1 and C > var1 Then
ExitShort("sx");
}
#진입중임고 3시30분이 되면 청산
if MarketPosition != 0 and stime == 033000 Then
{
exitlong("bx1");
ExitShort("sx1");
}
}
else#썸머타임이 아니면(위와 시간만 다르고 내용 동일)
{
if stime == 233000 Then
{
var1 = o;
if C > O Then
buy("b1.",AtMarket);
if C < O Then
sell("s1.",AtMarket);
}
if stime == 233600 Then
{
if MarketPosition == 1 and C > var1 Then
buy("b2.",AtMarket);
if MarketPosition == 1 and C < var1 Then
exitlong("bx.");
if MarketPosition == -1 and C < var1 Then
sell("s2.",AtMarket);
if MarketPosition == -1 and C > var1 Then
ExitShort("sx.");
}
if MarketPosition != 0 and stime == 043000 Then
{
exitlong("bx1.");
ExitShort("sx1.");
}
}
#1포인트 수익시 청산
SetStopProfittarget(1,PointStop);
#1포인트 손실시 청산
SetStopLoss(1,PointStop);
즐거운 하루되세요
> 흰둥이아빠 님이 쓴 글입니다.
> 제목 : 주석요청
> 안녕하세요?
바쁘시겠지만 답변주신 아래 스크립트 주석을 요청드립니다.
var :T(0),Year(0);
Year = Floor(sDate / 10000);
Value2 = 15 - dayofweek((10000 * Year) + (100 * 3) + 1); // 3월 두번째 일요일 날짜
value4 = 8 - dayofweek((10000 * Year) + (100 * 11) + 1); // 11월 첫번째 일요일 날짜
If date > (10000 * Year) + (100 * 3) + value2
And date < (10000 * Year) + (100 * 11) + value4 Then
T = 1;
Else
T = 0;
if T == 1 Then
{
if stime == 223000 Then
{
var1 = o;
if C > O Then
buy("b1",AtMarket);
if C < O Then
sell("s1",AtMarket);
}
if stime == 223600 Then
{
if MarketPosition == 1 and C > var1 Then
buy("b2",AtMarket);
if MarketPosition == 1 and C < var1 Then
exitlong("bx");
if MarketPosition == -1 and C < var1 Then
sell("s2",AtMarket);
if MarketPosition == -1 and C > var1 Then
ExitShort("sx");
}
if MarketPosition != 0 and stime == 033000 Then
{
exitlong("bx1");
ExitShort("sx1");
}
}
else
{
if stime == 233000 Then
{
var1 = o;
if C > O Then
buy("b1.",AtMarket);
if C < O Then
sell("s1.",AtMarket);
}
if stime == 233600 Then
{
if MarketPosition == 1 and C > var1 Then
buy("b2.",AtMarket);
if MarketPosition == 1 and C < var1 Then
exitlong("bx.");
if MarketPosition == -1 and C < var1 Then
sell("s2.",AtMarket);
if MarketPosition == -1 and C > var1 Then
ExitShort("sx.");
}
if MarketPosition != 0 and stime == 043000 Then
{
exitlong("bx1.");
ExitShort("sx1.");
}
}
SetStopProfittarget(1,PointStop);
SetStopLoss(1,PointStop);
다음글
이전글