커뮤니티
문의드려요 ~
2011-05-03 13:11:33
646
글번호 38248
안녕하세여 ~
항상수고하십니다.
이 시스템지표를 당일로만 나오게끔 부탁드립니다 !
연결해서말고 항상 당일로
수정부탁드립니다. 수고하세여
input:단위호가(14),
단위호가2(14),
타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4)
분봉구분(60), //타주기가 분봉일 때
시작일(20090101);
var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4),
벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0);
array:고[10](0),저[10](0),고2[10](0),저2[10](0);
If 단위호가 <= 단위호가2 Then
{
#==========================================#
# 초기 처리
#==========================================#
If Index == 0 || Date <= 시작일 Then
{
벽돌크기 = PriceScale * 단위호가;
벽돌크기2 = PriceScale * 단위호가2;
고[0] = C;
저[0] = C;
고2[0] = C;
저2[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
Else If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
}
If 저[0] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/벽돌크기,9));
For j = 8 DownTo 0
{
저[j+1] = 저[j];
}
고[0] = 저[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
}
If 고[0] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9));
For j = 8 DownTo 0
{
고[j+1] = 고[j];
}
저[0] = 고[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
}
#==========================================#
# 렌코2 계산
#==========================================#
If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) ||
(타주기구분 == 일봉 && Date[1] < Date) ||
(타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) ||
(타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then
{
If 방향2 == 0 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
Else If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 하락 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
}
If 저2[0] + 2*벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9));
For j = 8 DownTo 0
{
저2[j+1] = 저2[j];
}
고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 상승 Then
{
If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
}
If 고2[0] - 2*벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9));
For j = 8 DownTo 0
{
고2[j+1] = 고2[j];
}
저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
}
}
#==========================================#
# 시스템식
#==========================================#
If 방향 == 상승 && 방향2 == 상승 Then Buy();
If 방향 == 하락 && 방향2 == 하락 Then Sell();
If 방향 != 방향2 Then
{
ExitLong();
ExitShort();
}
답변 2
예스스탁 예스스탁 답변
2011-05-03 15:53:01
안녕하세요
에스스탁입니다.
해당식 시스템식입니다.
신호가 당일만 발생하도록 처리했습니다.
input:단위호가(14),
단위호가2(14),
타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4)
분봉구분(60), //타주기가 분봉일 때
시작일(20090101);
var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4),
벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0);
array:고[10](0),저[10](0),고2[10](0),저2[10](0);
If 단위호가 <= 단위호가2 Then
{
#==========================================#
# 초기 처리
#==========================================#
If Index == 0 || Date <= 시작일 Then
{
벽돌크기 = PriceScale * 단위호가;
벽돌크기2 = PriceScale * 단위호가2;
고[0] = C;
저[0] = C;
고2[0] = C;
저2[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
Else If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
}
If 저[0] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/벽돌크기,9));
For j = 8 DownTo 0
{
저[j+1] = 저[j];
}
고[0] = 저[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
}
If 고[0] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9));
For j = 8 DownTo 0
{
고[j+1] = 고[j];
}
저[0] = 고[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
}
#==========================================#
# 렌코2 계산
#==========================================#
If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) ||
(타주기구분 == 일봉 && Date[1] < Date) ||
(타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) ||
(타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then
{
If 방향2 == 0 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
Else If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 하락 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
}
If 저2[0] + 2*벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9));
For j = 8 DownTo 0
{
저2[j+1] = 저2[j];
}
고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 상승 Then
{
If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
}
If 고2[0] - 2*벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9));
For j = 8 DownTo 0
{
고2[j+1] = 고2[j];
}
저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
}
}
#==========================================#
# 시스템식
#==========================================#
if sdate == CurrentDate then{
If 방향 == 상승 && 방향2 == 상승 Then Buy();
If 방향 == 하락 && 방향2 == 하락 Then Sell();
If 방향 != 방향2 Then
{
ExitLong();
ExitShort();
}
}
}
즐거운 하루되세요
> 하루우유 님이 쓴 글입니다.
> 제목 : 문의드려요 ~
> 안녕하세여 ~
항상수고하십니다.
이 시스템지표를 당일로만 나오게끔 부탁드립니다 !
연결해서말고 항상 당일로
수정부탁드립니다. 수고하세여
input:단위호가(14),
단위호가2(14),
타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4)
분봉구분(60), //타주기가 분봉일 때
시작일(20090101);
var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4),
벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0);
array:고[10](0),저[10](0),고2[10](0),저2[10](0);
If 단위호가 <= 단위호가2 Then
{
#==========================================#
# 초기 처리
#==========================================#
If Index == 0 || Date <= 시작일 Then
{
벽돌크기 = PriceScale * 단위호가;
벽돌크기2 = PriceScale * 단위호가2;
고[0] = C;
저[0] = C;
고2[0] = C;
저2[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
Else If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
}
If 저[0] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/벽돌크기,9));
For j = 8 DownTo 0
{
저[j+1] = 저[j];
}
고[0] = 저[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
}
If 고[0] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9));
For j = 8 DownTo 0
{
고[j+1] = 고[j];
}
저[0] = 고[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
}
#==========================================#
# 렌코2 계산
#==========================================#
If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) ||
(타주기구분 == 일봉 && Date[1] < Date) ||
(타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) ||
(타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then
{
If 방향2 == 0 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
Else If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 하락 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
}
If 저2[0] + 2*벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9));
For j = 8 DownTo 0
{
저2[j+1] = 저2[j];
}
고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 상승 Then
{
If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
}
If 고2[0] - 2*벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9));
For j = 8 DownTo 0
{
고2[j+1] = 고2[j];
}
저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
}
}
#==========================================#
# 시스템식
#==========================================#
If 방향 == 상승 && 방향2 == 상승 Then Buy();
If 방향 == 하락 && 방향2 == 하락 Then Sell();
If 방향 != 방향2 Then
{
ExitLong();
ExitShort();
}
하루우유
2011-05-03 17:11:59
안녕하세여
당일로만 시스템이
오늘 당일 계산해서 나온건가여?
매일 당일만 계산해서 나오게 해주십시요 !
input:단위호가(14),
단위호가2(14),
타주기구분(1), //분봉(1),일봉(2),주봉(3),월봉(4)
분봉구분(60), //타주기가 분봉일 때
시작일(20090101);
var:j(0),상승(100),하락(-100),분봉(1),일봉(2),주봉(3),월봉(4),
벽돌크기(0),벽돌크기2(0),벽돌개수(0),방향(0),방향2(0);
array:고[10](0),저[10](0),고2[10](0),저2[10](0);
If 단위호가 <= 단위호가2 Then
{
#==========================================#
# 초기 처리
#==========================================#
If Index == 0 || Date <= 시작일 Then
{
벽돌크기 = PriceScale * 단위호가;
벽돌크기2 = PriceScale * 단위호가2;
고[0] = C;
저[0] = C;
고2[0] = C;
저2[0] = C;
}
#==========================================#
# 렌코 계산
#==========================================#
If 방향 == 0 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
Else If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 하락 Then
{
If 저[0] - 벽돌크기 >= C Then
{
벽돌개수 = Int(Round((저[0]-C)/벽돌크기,9));
저[0] = 저[0] - (벽돌크기 * 벽돌개수);
}
If 저[0] + 2*벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-저[0])/벽돌크기,9));
For j = 8 DownTo 0
{
저[j+1] = 저[j];
}
고[0] = 저[0] + (벽돌크기 * 벽돌개수);
방향 = 상승;
}
}
Else If 방향 == 상승 Then
{
If 고[0] + 벽돌크기 <= C Then
{
벽돌개수 = Int(Round((C-고[0])/벽돌크기,9));
고[0] = 고[0] + (벽돌크기 * 벽돌개수);
}
If 고[0] - 2*벽돌크기 >= C Then
{
벽돌개수 = Int(Round((고[0]-C)/벽돌크기,9));
For j = 8 DownTo 0
{
고[j+1] = 고[j];
}
저[0] = 고[0] - (벽돌크기 * 벽돌개수);
방향 = 하락;
}
}
#==========================================#
# 렌코2 계산
#==========================================#
If (타주기구분 == 분봉 && Mod(DayIndex(),(분봉구분/BarInterval)) == 0 && C[1] > 0) ||
(타주기구분 == 일봉 && Date[1] < Date) ||
(타주기구분 == 주봉 && Date[1] < Date && DayOfWeek(Date[1]) >= DayOfWeek(Date)) ||
(타주기구분 == 월봉 && Int(Date/100)[1] < Int(Date/100)) Then
{
If 방향2 == 0 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
Else If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 하락 Then
{
If 저2[0] - 벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((저2[0]-C[1])/벽돌크기2,9));
저2[0] = 저2[0] - (벽돌크기2 * 벽돌개수);
}
If 저2[0] + 2*벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-저2[0])/벽돌크기2,9));
For j = 8 DownTo 0
{
저2[j+1] = 저2[j];
}
고2[0] = 저2[0] + (벽돌크기2 * 벽돌개수);
방향2 = 상승;
}
}
Else If 방향2 == 상승 Then
{
If 고2[0] + 벽돌크기2 <= C[1] Then
{
벽돌개수 = Int(Round((C[1]-고2[0])/벽돌크기2,9));
고2[0] = 고2[0] + (벽돌크기2 * 벽돌개수);
}
If 고2[0] - 2*벽돌크기2 >= C[1] Then
{
벽돌개수 = Int(Round((고2[0]-C[1])/벽돌크기2,9));
For j = 8 DownTo 0
{
고2[j+1] = 고2[j];
}
저2[0] = 고2[0] - (벽돌크기2 * 벽돌개수);
방향2 = 하락;
}
}
}
#==========================================#
# 시스템식
#==========================================#
if sdate == CurrentDate then{
If 방향 == 상승 && 방향2 == 상승 Then Buy();
If 방향 == 하락 && 방향2 == 하락 Then Sell();
If 방향 != 방향2 Then
{
ExitLong();
ExitShort();
}
}
}
이전글